1:JDK、JRE、JVM的关系
JDK:(Java Development Kit)Java开发工具包,是开发一个Java程序所需要的最小环境
JRE:(Java Runtime Environment )Java运行环境,是运行一个Java程序所需要的最小环境
JVM:(Java Virtual Machine)Java虚拟机,JVM的可执行文件是.class
2:面向对象的特征
①封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的借口访问其他的对象。
②继承:是一种联结类的层次模型,并且允许和鼓励类的重用,提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程就称为继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
③多态:多态性是指允许不同类的对象对同一消息做出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名的问题。
④抽象:就是忽略一个主题中与当前目标无关的那些方面,以便更充分的注意和当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个部分:过程抽象、数据抽象
3:代码中如何实现多态性
①接口
②继承父类重写方法
③同一类中进行方法的重载
4:Java中创建对象的几种方式
①采用new
②通过反射:包括了class类的newInstance方法和Constructor类的newInstance方法
③采用clone
④通过序列化机制
5:Java当中的四种引用方式
①强引用:如果一个对象具有强引用,就不会被垃圾回收器回收。即使当前内存空间不足,JVM也不会回收它,而是抛出OutOfMemoryError,使程序异常终止。如果想中断强引用和某个对象之前的关联,可以显示的将引用赋值为null,这样JVM就会在合适的时间回收该对象
②软引用:如果内存的空间足够,软引用就能继续使用,而不会被垃圾回收期回收,只有在内存不足的时候,软引用才会被垃圾回收器回收。
③弱引用:具有弱引用的对象拥有的生命周期更短暂。因为当JVM进行垃圾回收的时候,一但发现弱引用对象,无论当前内存是否充足,都会将弱引用回收。不过由于垃圾回收器是一个优先级较低的线程,所以并不一定能迅速发现弱引用对象
④虚引用:如果一个对象仅持有虚引用,就相当于没有被引用,在任何时候都可能被垃圾回收器回收
6:final在Java中有什么用处?
· final修饰的类叫最终类,不能被继承
· final修饰的方法不能被重写
· final修饰的变量叫常量,且常量必须初始化,初始化之后值就不能被修改
7:Java中的基本数据类型有哪些?
基本数据类型有8种:byte,boolean,char,short,float,double, int, long,其他的都是引用数据类型。
8:Java中操作字符串的类都有哪些?
1>String:字符串常量,是不可变的对象。
2>StringBuilder:可变字符串,线程不安全,适合单线程场合。StringBuilder 的性能要远大于 StringBuffer。
3>StringBuffer:可变字符串,线程安全,所有的公开方法都被synchronize修饰,适合多线程方法。
9:抽象类必须要有抽象方法吗?
抽象类不一定要有抽象方法,但是抽象方法必须只能定义在抽象类中。
10:throw和throws的区别
· throw:是真实抛出一个异常
· throws:是声明可能会抛出一个异常
11:Java的IO流分为几种?
· 按功能来分:输入流、输出流
· 按类型来分:字节流、字符流
12:try-catch-finally中,如果catch中return了,finally还会被执行吗?
finally一定会被执行,即使在catch中有return,catch中的return也会等finally里的代码执行完之后,才会执行。