java知识匮乏严重
1.java重载的定义:同命不同参,与返回值和修饰符不相关,不能通过他们来判定,只能由同名不同参来判断
隐藏的定义:隐藏出现在父类子类和接口实现之间,指的是私有方法和静态方法,在子类或者是实现中出现都是隐藏,而不是重写;
重写的定义:重写要求重写后的方法的修饰符要大于被重写的方法;而且方法名参数要相同;返回值可以不相同,但是范围要包含在被重写方法的返回值范围里面;
2.整型常量的定义: final int i=234;由于是常量所以应该使用final进行修饰;
final:被final修饰的属性,如果修饰的是引用,引用不可以改变;但是值是可以改变的,但是如果修饰的是基本数据类型一旦初始化之后就会发生变化;修饰的方法,可以被子类继承,但是不可以被子类修改,也就是说不能被重写;修饰类的话,该类不能够被继承;
3.this对象和this函数是不一样的;this()和super()是两个函数才是必须要构造函数的第一行调用而且只能调用一次;this知识一个对象
4.== 和 equals函数,字符串的比较;==比较的是引用地址是否相同;而equals是比较的这个地址的值是否相同,地址不一定需要相同;
5.垃圾回收:1.该线程在jvm中优先级特别低;2.垃圾收集器程序开发者可以推荐jvm进行回收,但是何时回收,回收哪些,程序员不能决定;3.并不能解决内存溢出;4.进入dead的线程,还可以回复,不会被回收;
6.字节流和字符流;writer和reader结尾的是字符流;stream结尾的是字节流;
字节流:
InputStream
|-- FileInputStream (基本文件流)
|-- BufferedInputStream
|-- DataInputStream
|-- ObjectInputStream
字符流
Reader
|-- InputStreamReader (byte->char 桥梁)
|-- BufferedReader (常用)
Writer
|-- OutputStreamWriter (char->byte 桥梁)
|-- BufferedWriter
|-- PrintWriter (常用)
7.静态初始化块:没法直接调用,
初始化顺序:父类静态成员初始化>父类的静态代码块>子类静态成员初始化>子类的静态代码块>父类的代码块>父类的构造方法>子类的代码块>子类的构造方法
注意点:1.静态成员和静态代码块只有在类加载的时候执行一次,再次创建实例时,不再执行。
public class Test{ public static void main(String[] args) { S c = new S() } } class F{ static int c; static int b; { System.out.println("F方法块") } static{ System.out.println("F静态方法块") } public F(){ System.out.println("F构造方法") } } class S extends F{ static int a; static int b; { System.out.println("S方法块") } static{ System.out.println("S静态方法块") } public F(){ System.out.println("S构造方法") } }