Java基础需要注意的细节(良心总结)

最近在复习一下Java的基础知识,总结一些容易忽略的细节。有不对的地方,欢迎大家回馈,共同进步~~


Java跨平台性:指的是Java语言的跨平台性,一次编译,多处可用。但JVM要根据平台安装对应的


Java中写数字时,默认的变量类型是int和double,注意丢失精度的问题

        比如byte b=3;

                b=b+2;  //这里会编译出错 (因为2默认是int)


>>>为Java中的无符号右移,空出来的高位用0补


重载和覆写的区别:

    重载是在一个类中,函数名相同,但参数个数或者参数类型不同

    覆写是在子父类中,方法签名完全相同,实现不同

        注:覆写的时候必须保证子类权限大于等于父类权限


类如果有public修饰,则文件名必须和类名一致

一个Java文件中不能出现2个以上的公有类或者公有接口(注意是公有)




本类构造函数间调用用this(),调用父类的构造函数用super(),且只能放在第一行


/**

*/为文档注释,可以用Javadoc.exe提取生成,且被提取的类必须用public修饰,只提取public和protected成员



接口与接口之间可以继承,且一个接口可以继承多个接口.
interface C extends A, B {}是可以的.

一个类可以实现多个接口:
class D implements A,B,C{}

但是一个类只能继承一个类,不能继承多个类
 
 

多态: (不能预先使用子类的特有方法)

    成员函数编译看左边,运行看右边(因为有重写)

    成员变量,无论编译和运行都参考左边


内部类可以直接访问外部类的成员,包括私有的(因为内部类持有一个外部类的引用)

匿名内部类必须是继承一个类或者实现一个接口


如果父类或者接口的方法中没有抛异常,则子类在覆盖方法时,也不可以抛异常。

如果子类中发生了异常,就必须用try处理。


泛型中的约束必须使用引用类型

泛型中<?>    ?其实是占位符


map中put时,若键相同,则后来的值会覆盖原先的值


Collections集合框架Collection的工具类中有将集合变成线程安全的方法,如synchronizedList()

Arrays.asList  将数组变成list集合。注意不可使用集合的增删方法(因为数组的长度是固定的)


一个方法最多只有一个可变参数,且定义在末尾。(自动将元素封装成数组)   格式为...


关闭流之前会自动刷新一次缓冲数据到目的地


管道流在使用前需要将输入/输出进行绑定,否则会报异常



猜你喜欢

转载自blog.csdn.net/qq_27327855/article/details/80424704