Java 个人笔记【不断更新中...】

 

  1. 推荐把private方法放到最后,因为我们主要关注的是public方法,它对外提供调用。
  2. 嵌套类:一个类的内部定义了其它的类,嵌套类允许访问private方法或属性。
  3. protected主要用于继承关系,定义为protected的方法和属性可以被它的子类以及子类的子类访问
  4. 没有public,protected,private修饰的类或方法或属性,默认为作用域为package作用域,仅限在这个包内访问
  5. 注意,包名必须完全一致,包没有父子关系,com.apachecom.apache.abc是不同的包。
  6. String s =new String(); s.toLowerCase();//转换为小写字母,s.toUpperCase();//转换为大写字母;
  7. 使用局部变量时,应该尽可能把局部变量的作用域缩小,尽可能延后声明局部变量
  8. final修饰符与访问权限不冲突:用final修饰的class不能被继承,final修饰的方法不能被重写,final修饰的属性一旦赋值不能更改,也就是常量
  9. 一个.java文件只能包含一个public类,且类名必须和文件名相同。但可以包含多个非public类
  10. String s2 = new String(new char[] {'H', 'e', 'l', 'l', 'o', '!'});和String s2 = "Hello!";等价
  11. 比较字符串内容是否相等,必须用equals()方法而不能用==。Integer 等包装类也必须用equals()
  12. 【4.16日更新】
  13. 包装类和基本类型之间的转换:装箱和拆箱会影响代码的执行效率,而且有时候会引起空指针报错。如Integer In = null; int i =In;
  14. 不推荐使用Integer n = new Integer(123);创建实例,而是通过Integer n = Integer.valueOf(123);因为new 总是创建新的Integer实例,方法2把内部优化留给Integer的实现者去做,即使在当前版本没有优化,也有可能在下一个版本进行优化。我们把后者称为静态工厂方法(优先选用)
  15. 程序设计的一个重要原则:数据的存储和显示要分离。
  16. // int可表示的最大/最小值:
    int max = Integer.MAX_VALUE; // 2147483647
    int min = Integer.MIN_VALUE; // -2147483648
    // long类型占用的bit和byte数量:
    int sizeOfLong = Long.SIZE; // 64 (bits)
    int bytesOfLong = Long.BYTES; // 8 (bytes)
  17. 枚举:用enum定义 如

    enum Country{
    CN,US,EN,JP,KO,RS
    }

  18. Java使用enum定义枚举类型,它被编译器编译为final class Xxx extends Enum { … }

  19. enum通过name()获取常量定义的字符串,注意不要使用toString()

    通过ordinal()返回常量定义的顺序(无实质意义);

    可以为enum编写构造方法、字段和方法

    enum的构造方法要声明为private,字段强烈建议声明为final

    enum适合用在switch语句中。

  20. Java规定,应该捕获的异常,包括Exception及其子类,但是不包括RuntimeException,及其子类,这种异常通常称为Checked Exception(已检查异常)
  21. Error是无需捕获的严重错误
  22. Java编译器要求程序必须捕获所有或声明非运行时异常,但对运行时异常可以不做处理。
  23. 在catch中捕获的异常,不会影响finally语句执行(后于catch语句执行)。使用finally可以维护对象的内部状态,并可以清理费内存资源。
  24. JVM 自带的日志包:java.util.logging.Logger。打印日志:Logger logger = Logger.getGlobal();
  25. logger.info("这是一个日志信息");logger.warning("这是一个警告信息");类似的还有以下:

SEVERE ,WARNING,INFO(默认,此级别以下的会被覆盖)CONFIG,FINE,FINER,FINEST

  26. 泛型:List<Integer> 不是List<Number>的子类。

 

posted @ 2020-04-14 14:43  CEO雷总  阅读(112)  评论(0编辑  收藏  举报