Java学习心得总结(1)
1.变量的定义是从定义开始一直到 “ } ” 截至的范围内有效
2.标识符不能以数字开头,不能以关键字作为名字,区分大小写
3.变量名称首字母小写,类名称首字母大写
4.0开头是八进制,0X开头是十六进制
5.随便写一个整数默认是int,若想让其默认为long,在整数后面加L;同理,小数默认为double,变为float在后面加F
6.自动类型转换:类型范围小的可以直接赋值给类型范围大的变量
7.表达式中,byte、short、char最后会转换成int类型进行计算
8.表达式的最终数据类型由表达式中最高的类型决定
9.大范围变量赋值给小范围变量,需要用到强制类型转换:类型 变量2=(类型)变量1\数据 或者 ALT+ENTER
10.浮点型强制转换为整型,会丢掉小数部分
11.** “+” 符号可以与字符串运算时作为连接符,其运算结果仍然是一个字符串。当字符串和数字混合时,能算数就算数,不能算就算成表达式**
12.扩展的赋值运算符隐含了强制类型转换 a=(a的类型)(a 运算符 b)
13.&&(||)短路与(短路或),执行时如果左边为false(true),那么右边就不需要继续执行(效率更高!)双与的优先级高于双或
14.一般不需要自己导包,调用时idea会自动导入
15.将代码段全部选中,按住ctrl+alt+T,可以将选中代码段套入一个循环函数中去
16.break:跳出并结束当前所在循环的执行
continue:用于跳出当前循环的当次执行,进入下一次循环
17.生产指定区间的随机数,可以用到减加法
18.整型数组初始化默认0,浮点型默认0.0,布尔型默认false,字符串接口等默认null
19.调用有返回值的方法,有三种方式:可以定义变量接收结果;或者直接输出调用;甚至直接调用
20.调用无返回值的方法,只有一种方式:只能直接调用
21.Java基本类型的参数传递机制实际上是值传递,传输的是实参存储的值的副本
22.Java引用类型的参数传递(数组)机制实际上是值传递,但传输的是地址值,不是单纯的数值,所以方法里的改动会改变本身数组里的数值
23.一个类中,出现多个方法名称相同,但是他们的形参列表不相同,那么就称这些方法为方法重载(形参列表不同指的是形参的个数、类型、顺序不同,与形参名称无关)
24.return;在无返回值的方法中的作用:立即跳出并结束当前方法的执行
25.this就是一个变量,可以用在方法中,用来拿到当前对象。this主要用来解决:变量名称冲突问题
26.构造器(构造函数)常用于完成对象初始化,是一种特殊的方法
27.一旦有了有参数构造器,Java就不会帮我们自动生成无参数构造器了,所以在调用无参数对象时要注意,需要手动写一个无参数构造器
28.用类设计对象处理某一个事物的数据时,应该把要处理的数据以及处理数据的方法封装到一个对象里去
29.实体类:成员变量必须私有,且要为他们提供get、set方法,必须有无参数构造器。实体类主要用于实现数据和数据的业务处理相分离
30.成员变量有默认值,不需要初始化;局部变量没有默认值,使用前需要初始化
31.类名首字母建议大写,满足驼峰
32.创建对象的格式:类名 对象名 = new 构造器
33.访问其他包下的程序时,需要导包才可以访问;自己的程序调用Java提供的程序也需要导包(Java.lang下的程序不需要,可以直接使用)
34.访问多个其他包下的程序,这些程序名称又一样的情况下,默认只能导入一个程序,其他的程序必须带包名和类名访问
35.两字符串之间如果直接用==来比较,一定是false,因为比较的是两字符串的地址;比较时应当用equals()来比较:s1.equals(s2);
36.String的对象是不可变字符串对象:每次试图改变字符串对象时,实际上是新产生了新的字符串对象,变量每次都是指向新的字符串对象,之前的字符串对象内容确实没有改变,所以说String的对象是不可改变的
37.String如果是以双引号“”的方式写出字符串对象,那么他会存储在字符串常量池,且相同内容的字符串只存储一份;但如果通过new创建字符串对象,每new一次都会产生一个新的对象放在堆内存中
38.String的一些常用方法:
public int length();
public char charAt(int index);
public char[] toCharArray();
public boolean equals(Object anObject);
public boolean equalsIgnoreCase(String anotherString);
public String substring(int beginIndex,int endIndex);
public String substring(int beginIndex);
public String replace(CharSequence target,CharSequence replacement);
public boolean contains(CharSequence s);
public boolean startsWith(String perfix);
public String[] split(String regex);
39.集合是一种容器,是用来存储数据的,集合的大小可变,ArrayList是集合中最常用的一种,ArrayList是泛型类,它可以约束存储的数据类型,但是不支持基本数据类型,只支持引用数据类型,如果非要限制为int,可以不写尖括号或者里面写成Integer,推荐写成ArrayList list=new ArrayList<>();
40.ArrayList的一些常用方法:
ArrayList<数据类型> list=new ArrayList<数据类型>(); //可以限制单独的数据类型,如果没有就不写
public boolean add(E e);
public viod add(int index,E element); //每add一次,会用逗号隔开
public E get(int index);
public int size();
public E remove (int index); //返回被删除元素值
public boolean remove(Object o); //返回删除是否成功 //删除时如果多个相同字符串,先删第一个
public E set(int index,E element); //替换某个位置元素并返回其原来的值
41.从集合中遍历元素,筛选并删除时:方法一:在每一次删除数据之后,索引值-1;方法二:从后往前遍历删除
42.注意:集合容器中存储的是每个对象的什么? --存储的是在堆内存中的地址