美文网首页
Java 知识点

Java 知识点

作者: 07120665a058 | 来源:发表于2018-09-06 23:02 被阅读9次
    • final 修饰符
    final 类   不能被继承
    final 方法  不能被重写
    final 变量  不能修改引用
    
    • Unicode实现方式:包含了UTF-8、UTF-16、UTF-32
    UTF-8:可以用1 / 2 / 3 字节来表示
    UTF-16:可以用 2 / 4 字节来表示
    UTF-32:可以用 4 字节来表示
    
    • 栈溢出
    一种是stackoverflow,递归没终止条件
    一种是outofmemory,方法中线程启动过多
    
    • codePoint 和 char
    一个char 不能完全代表一个code point,一个code point 可能会超过两个字节,一个char 表示不了,所以 code point 用 int 存储
    
    • 字符串拼接
    因为String不可变,每次拼接都会产生新的字符串,效率低,可以使用String.format()或者 new StringBuilder()
    new StringBuffer() 是线程安全的,所以平常使用new StringBuilder()
    
    • 初始化顺序
    Init block 和 filed  都和声明顺序有关,但是都在constructor之前执行
    
    • 变量初始化
    Instance variables: are always initialized
    Static variables: are always initialized
    Local variables: must be initialized before use
    
    局部变量声明后,Java虚拟机不会自动给它初始化为默认值,必须经过显示的初始化,才能使用。如果使用一个没有被初始化的局部变量,编译器会报错。
    类的成员变量,Java虚拟机都会先自动给它初始化为默认值。
    Java虚拟机会为数组的所有元素初始化为相应类型的默认值。引用类型被初始化为 null ,基本类型初始化为相应的值
    
    • 继承(构造函数)
    子类实例化时,会先调用父类的无参构造函数,再调用自己的构造函数
    每个构造方法里面只能有一个(this / super)
    如果构造方法里显示指定了(this / super),则会继续调用一次
    可以用 this(args) / super(args) 显示指定调用有参构造还是无参构造
    如果子类 / 父类 没有显示定义构造函数,会默认有一个无参构造函数
    递归调用,编译错误
    
    • 类的访问修饰符
    Modifier Class Package Subclass World
    public Y Y Y Y
    protected Y Y Y N
    package-private Y Y N N
    private Y N N N

    相关文章

      网友评论

          本文标题:Java 知识点

          本文链接:https://www.haomeiwen.com/subject/fpafgftx.html