java基础总结

异常处理

从大的角度说主要分成两类:Error类代表了编译和系统的错误,不允许捕获,也就是我们自己无法主动去处理它;Exception类代表了我们可捕获并且可自己可处理异常,而Exception有包括两类,一个是你必须要处理的异常,如某个类有throws异常了,在未进入运行期就必须处理,另一类就是Runtime Exception(运行期异常),就是只有在运行时(也就是编译成class文件)时才知道,这个异常可处理或不处理

try-catch-finally 规则
1)在finally语句块中发生了异常。
2)在前面的代码中用了System.exit()退出程序。
3)程序所在的线程死亡。
4)关闭CPU。

java IO简单总结

流:数据在数据源(文件)和程序(内存)之间经历的路径
输入流:数据从数据源到内存的路径
输出流:数据从内存到数据源的路径
字节流:可以用于读写二进制文件及任何类型的byte,也就是一个字节一个的读
字符流:可以用于读写文本文件,不能操作二进制文件,也就是两个字节两个字节的读
2.根据数据流向不同分为:输入流和输出流
3。节点流和处理流
节点流:直接与数据源相连,读入或读出,可以发现使用该流过于频繁操作硬件,从而使读写很不方便
处理流:处理流和节点流一块使用,在节点流的基础上,再套接一层,套接在节点流上的就是处理流。如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。
Object流的意思将是像一根节点流插入一根Object流管道,专门操作Object,而它必须实现Serializable接口,该接口的意思是可序列化,就是说将一个对象流序列化成子节流写进网络或者文件,比如说游戏存盘,有各个游戏的记录,如果以面向对象来写进管道,它的各个成员变量,会在内存中被序列化成二进制写进去,而Serializable接口无方法,它只是个标记接口,编译器看到实现该接口的类就知道它应该被序列化,同样有一个transient关键字,是使可序列化的某个属性变成透明,也就是它不能变成字节写进去,那个属性只能为默认属性写进去

反射机制简单

classLoad、Class、Methods

java基本数据类型

byte、short、int、long、float、double、char、boolean

能否重写构造方法

重载构造方法是可以的。
但是重写则不可以,因为被重写的前提是被继承,而构造方法根本就不能被继承,所以谈不上被重写。只能调用父类的构造方法

构造代码块和构造方法的执行顺序

父类静态块-自身静态块-父类块-父类构造器-自身块-自身构造器

说说&与&&的区别

&与&&都可以用作逻辑与(and)的运算符
&&具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式。而&则会同时计算
&可以作为位运算符,当&两边表达式不是boolean时,&表示按位与操作,通常使用Ox0f来与一个整数&运算,来取该整数的最低4个bit位

Overload与Override的区别?Overload的方法是否可以改变返回值的类型?

重载表示方法名相同,但是参数个数或类型不同)
重写表示子类中的方法可以与父亲中某个方法的名称和参数完全相同,通过子类创建实例调用父类这个方法,也就是相当于覆盖了父类的这个方法,但是当父类是private时相当于子类增加了一个全新的方法,就不存在覆盖了。并且子类应该比父类抛出更少的异常或者拥有更大的权限
如果参数名不同会改变返回类型,但是如果都一样肯定不会改变返回类型

abstractclass和interface语法上有什么区别?

1.抽象类可以有构造方法,接口不能有构造方法
2.抽象类中可以有普通成员方法,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的方法。
4.抽象类中的抽象方法访问类型可以是public、protected,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型
5.抽象类中可以包含静态方法,接口中不能包含静态方法
6.抽象类和接口类中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以是任意,但是接口中定义的变量只能是public static final类型
7一个类可以实现多个接口,但只能继承一个抽象类

什么是java序列化,如何实现java序列化?或者解释serializable接口的作用?

将一个对象变成字节流的形式传出去或者从一个字节流中恢复成一个java对象,例如将一个java对象存储到硬盘或者送给网络上的其他计算机,可以用代码把一个java对象变成某个格式的字节流在传输
如果要让java自动帮我们做,就需要实现serializable接口,编译的类才被writeObject方法操作,例如,在web中,如果对象被保存在了session中,tomcat在重启时要把session对象序列化到硬盘

hashcode与equals

热评文章