Java基础整理

129 阅读3分钟
  1. 数据类型
    1. bit 位是计算机中最小的数据表示单位,它只有0/1两种状态 1byte = 8bit
    2. 8种基本数据类型
      1. 整型 int
      2. 字节型 byte (-128~127)
      3. 短整型 short (16位)
      4. 长整形 long (64位,在其后加L)
      5. 单精度浮点型 float (在其后加F)
      6. 双精度浮点型 double (java中所有浮点型默认double,double类型变量不能赋值给float类型变量,需要强转)
      7. 字符型 char
      8. 布尔型 boolean
  2. ++自增运算符
    1. int b = a++;先将a赋值给b,再讲a自增1
    2. int b = ++a;先将a自增1,再赋值给b
  3. 成员变量与局部变量的比较
    1. 两者使用前都需要声明
    2. 局部变量使用前还需要初始化,成员变量可以不进行初始化,有默认值。
      1. byte、short、int、long 默认值0
      2. float、double 默认值0.0
      3. char 默认值‘\u0000’ 即空字符串
      4. boolean 默认值false
  4. new关键字在生成对象的时候干了三件事情
    1. 为对象开辟内存空间
    2. 调用类的构造方法
    3. 返回对象的地址
  5. 在构造方法中调用另一个构造方法,使用this()方法调用,注意:this()之前必须为第一行代码。
  6. 接口中的方法默认都是public、statics、final
  7. String是常量(被final修饰),其对象一旦创建完毕,就不会再改变。当我们使用+拼接时,它不会修改原有对象,而是重新创建新的对象。
  8. 字面值赋值与new String的区别
    1. String s = "aaaa";字面值只会在String Pool(字符串池)中创建对象,并将地址赋给s引用
    2. String s = new String("aaaa");new String 会在String Pool和堆中都创建对象,最终将堆中的对象地址赋给s引用
  9. 数组和集合的比较
    1. 数组长度固定,集合长度可变
    2. 数组存放基本数据类型,集合存放对象引用(放置基本数据类型时会被自动装箱成包装类)
    3. 集合中放置的是Object类型,所以取出时也是Object类型,需要强转
  10. ArrayList底层是采用数组实现的,当我们调用集合不带参数的构造方法生成对象时,会在底层创建一个长度为10的Object类型的数组。当存储数量超过10时,底层会重新生成一个比原数组更长的数组,将原有数据赋值到新数组中,再将新数据放到新数组中。如此重复。
  11. 使用hashset时,hashCode()方法就会得到调用,判断新增对象的hashCode值是否与集合中对象的hashCode值一致,如果一致,再调用equals()方法,返回去,判定已存在。否则添加该对象。
  12. 可变参数本质上就是一个数组,它在传参时可以是离散值也可以是一个数组。但如果方法使用数组作为参数,那么就不能传入离散值。可变参数必须作为最后一个参数(一个方法只能有一个可变参数)。