一、八种数据类型
类型 | 大小 | 封装类 |
byte | 1字节 | Byte |
short | 2字节 | Short |
int | 3字节 | Integer |
double | 8字节 | Double |
float | 4字节 | Float |
char | 2字节 | Caharacter |
long | 8字节 | Long |
boolean | - | Boolean |
二、java面向对象的四个基本特征
1、封装:将客观事务包装成类,隐藏具体实现,提供接口操作
2、继承:子类获得父类的属性和行为
3、多态:同一行为的多种表现形式
1、重写override
2、接口的不同实现implements
3、抽象类和抽象方法
4、抽象:用代码描述客观事物,包括数据抽象(属性)和过程抽象(行为)
三、java8的新特性
1、默认方法:在接口里面有了一个实现的方法
2、Lambda表达式:lambda允许把函数作为一个方法的参数
3、stream API:函数式编程
4、DataTime API:加强对日期与时间的处理
5、Optional:用来解决空指针异常
6、方法引用:可以直接引用已有java类或对象的方法或构造器
四、override和overload的区别
1、Override的典型例子:接口方法的重写
2、overload的典型例子:构造方法的重载
五、interface与abstract类的区别
比较点 | interface | abstract类 |
中文 | 接口 | 抽象类 |
能否实例化 | 不能 | 不能 |
方法能否实现 | java8可以 | 可以 |
一个类可以 | inplements多个 | extends一个 |
六、equals()和==的区别
equals用于比较对象的内容,==用于比较原生类型地址
要注意:object中的equals()即为==,equals()是可以重写Override的
七、String StringBuffer StringBuilder
比较点 | String | StringBuffer | StringBuilder |
底层实现 | final char value[] | char [] value | char [] value |
可变性 | 不可变 | 可变 | 可变 |
修改时 | 不会改变自身 | 会改变自身 | 会改变自身 |
安全性 | 线程安全 | 线程安全 | 非线程安全 |
使用场景 | 少量数据 | 多线程大量数据 | 单线程大量数据 |
八、java的四种引用
比较点 | 强引用 | 软引用 | 弱引用 | 虚引用 |
特性 | 不会被回收 | 内存足则不回收,不足则回收 | 一旦发现便回收 | 必须和引用队列联系使用 |
使用场景 | 平时的new | 可用来是先内存敏感的高速缓存 | 常用于map数据结构中,引用占用内存空间较大的对象 | 跟踪对象被回收的活动 |
九、comparable接口和comparator接口
comparable:在集合内部实现排序的接口,位于java.lang包中
comparator:在集合外部实现排序的比较器接口,位于java.util包
十、java IO与BIO NIO AIO分别是什么
java中IO是以流为基础进行输入输出的,在网络编程中,接触到最多的就是利用socket进行网络通信开发,主要有BIO,NIO,AIO三种实现方式
比较点 | BIO | NIO | AIO |
中文 | 阻塞IP | 非阻塞IO | 异步IO |
版本 | JDK 1.4提出 | JDK 1.7提出 | |
描述 | 服务端每次都需要创建一个线程来建立连接并处理消息,若简历连接, |