今天是2020年1月19日,放假已经十天了,今天才刚刚开始学习。还有不到25天就开学了,忍着痛苦也要学完Java,因此写个博客来记录一下我这个痛苦的寒假
我太难了!!!
eclipse快捷键:
Alt + /: 快速敲出代码
Ctrl + s: 保存
shift + 向下 :光标移动到下一行
Ctrl + / :注释
shift + end : 把光标定位到一行的最后
shift + home :选中光标所在处前面所有内容
主函数定义在类里面:
public static void main(String[] args):
输出:
System.out.println() :自动换行的输出
System.out.print(): 不换行的输出
输入:
在类外面定义:import java.util.Scanner
主函数内:Scanner in=new Scanner(System.in),然后可以用in去读入东西。
in.nextLine(): 读取一行字符串
in.next():读入一个单词
in.nextInt():读取一个整型常量
in.nextDouble():
in.nextFloat():
字符串的连接:
+:连接字符串,比如“sss” + “ ddf” ,“2+3” + 5
变量的赋值:
int price =in.nextInt();//用户输入进行赋值
运算符的优先级
算术运算 > 关系运算符 > 赋值运算 > (== ,!=)
浮点数的比较
不能直接比较a和b,应该当满足(a-b)小于一定的范围才行,比如Math.abs(a-b)<1e-6(表示1*e^-6)
一些库函数
取平方根:Math.sqrt()
生成随机数:Math.random()//随机数范围[0,1)
eclipse的使用常见技巧:
程序的调试和跟踪
1.首先设置 断点
2.程序运行
先点击这个萤火虫的图标
这一块区域表明当前的布局是debug界面还是Java代码程序的界面
3.程序的调试
将光标移动程序运行的地方可以看到各个变量的当前的值
Java与c和c++不一样的地方
1.定义常量
java:final
c/c++:const
2.布尔类型:
c/c++: bool ,非零即是true
java: boolean,true就是true,和1没有任何代换关系,false同样的道理
3.数组的定义和声明
一维数组: c/c++: int a[100]={0};
java: int [] a= new int[100];可以使用a.length来获取数组的元素的个数,而不用100.
使得代码具有可扩展性.
二维数组: c/c++:int a[100][100]={0};
java:int[][]=new int[3][5];
4.数组的使用
c/c++:int a[100];
int b[]=a;
java: int [] a1=new int[100];
int [] a2=a1;
这种情况下对数组b的元素的改变都会使数组a的元素做同样的改变。因为相当于a和b管理的是同样的一
内存空间。如图所示,并且数组a和数组b相同当且仅当a和b管理的是同一个内存空间。如图所示,虽然
组a和数组b的所有的元素都是相同的,但是仍然不是相等的。因此复制一个数组只能使用遍历的方法。
数组的管理
判断两个数组是否相等
数组的复制
数组的另一种用法: for-each 用法
5.字符串类型
c/c++:string
java:String
1.就像数组一样,字符串变量同样都只是字符串的管理者而不是字符串的所有者,因此创建字符变量需要使用
new,String s=new String("sdds");
2.可以使用+把两个字符串连接起来时,但是当+连接的一个是字符串,另外一个不是字符串的时候,会默认为把
另一个当做字符串,如图所示
3.S.equals("nye"):可以用来判断字符串S是否为"nye";不能使用==来判断,原因同数组一样
4.访问字符串里面单个的字符: s.charAt(index), 不能用for-each 循环来访问
5. s.substring(n): 取出从n号位置到末尾的全部内容
s.substring(a,b): 取出从a位置到b位置之前一个的全部内容,即a、a+1、……、b-2、b-1.
6. s.compareTo(s1): 比较两个字符串的大小
7. s.indexOf(c) :寻找字符或者字符串,返回第一次找到的所在的位置
s.indexOf(s,index): 从位置index开始往后找出第一次出现的位置
8. s.toLowerCase():变成小写
s.toUpperCase():变成大写
9. switch 也可以用字符串来作为选择的条件