Day03

发布时间 2023-06-17 17:26:34作者: 牛宝宝超级奶爸学Java

1.需要注意的点

  1. 从Java SE7即JDK 7开始,switch支持字符串String类型了,同时case的标签必须为字符串常量或者字面量。在编译时,字符串实际上是利用hashCode来实现比较的
  2. 从Java SE5即JDK 5开始,新增用于数组和集合的增强型for循环
  3. 方法中可变参数的本质就是数组
  4. 递归时,只适合小基数。基数太大会导致栈溢出。
  5. 数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
  6. 面向对象编程的本质是以类的方式组织代码,以对象的组织(封装)数据
  7. 引用传递:为对象,本质还是值传递
  8. Idea中Alt +Insert:插入代码段,例如构造函数
  9. Java中只有单继承,没有多继承
  10. Ctrl+H生成继承树
  11. 在继承时,子类的无参构造函数,会隐藏的调用父类的无参构造函数——super();如果显示的调用父类的构造函数,必须在子类构造函数的第一行
  12. image-20230612163416175
  13. 父类的引用指向了子类,A是子类,B是父类 B b = new A();
  14. 重写只和非静态方法有关,与静态方法无关 image-20230612165922071
  15. 多态image-20230612184520836
  16. instanceof——类型转换,X instanceof Y——表示X是不是Y或者Y的子类型image-20230613092647415
  17. 类的强制类型转换可能会丢失方法和变量
  18. 抽象类有构造方法,但是不允许使用new关键字实例化
  19. 接口的本质就是契约,接口中所有的定义的方法都是public abstract,定义的变量都是public static final,都是常量
  20. 接口中没有构造方法,可以实现伪多继承,不能使用new关键字
  21. 一个Java类中可以有多个class类,但是只能有一个public class
  22. 匿名类指的是没有名字初始化类,不用将实例保存在变量中 new Person().eat();
  23. 在捕获多个异常时,需要从小到大进行异常的捕获
  24. Ctrl + Alt + T 自动补全代码
  25. throw主动抛出异常,一般在方法中使用;throw主动抛出异常,一般在方法上使用image-20230613185236300
  26. 手动回收垃圾机制:使用System.gc();——通知JVM执行垃圾回收
  27. 装箱:把基本类型转成引用类型,将栈中的数据放到堆中。new Integer(num1)或者Integer.valueOf(num1)或者Integer Integer= num,自动装箱是编译器自己补充 的
  28. 拆箱:把引用类型转成基本类型,将堆中的数据放到栈中。new Integer(100).intValue()或者int num1 = new Integer(100);自动拆箱是编译器自己补充的
  29. Java预先创建了256个常用的整数包装类型对象,Integer在内存中会有一个-128到127的缓冲区,当Integer.valueOf传递的参数在这个区间时,都是一样的、相等的,不在这个范围内的才会重新创建
  30. 字符串是常量,字符串字面值存储在字符串池中,可以共享
  31. BidDecimal创建时要使用字符串创建
  32. 集合只能存储引用类型,存储基本类型需要装箱
  33. List接口的特点:有序、有下标、元素可重复;Set接口的特点:无序、无下标、元素不能重复image-20230617075452764