1、什么是JDK、JRE
JDK:java程序开发工具包,(JRE+开发工具)
JRE:java程序运行坏境
2、数据类型
byte 1个字节 short 2字节 char int 4字节 float long 8字节 double
3、自动类型提升
将取值范围小(或容量小)的类型自动提升为取值范围大(或容量大) 的类型
4、如何声明成员变量
必须在类中,方法外。存在默认值。
在方法体外,类体内声明的变量称为成员变量。 在方法体内部等位置声明的变量称为局部变量。
以statis 修饰的成员变量为 类变量,不以statis修饰的成员变量为 实例变量
5、方法调用内存分析
6、方法的重载
7、形参和实参
形参(formal parameter):在定义方法时,方法名后面括号()中声明的变量称为形式参 数,简称形参。
实参(actual parameter):在调用方法时,方法名后面括号()中的使用的值/变量/表达式称 为实际参数,简称实参。
8、this 是什么
使用 this 访问属性和方法时,如果在本类中未找到,会从父类中查找。
9、Super是什么
10、对象的多态
对象的多态:在 Java 中,子类的对象可以替代父类的对象使用。所以,一个引 用类型变量可能指向(引用)多种不同类型的对象
编译时, 看左边;运行时,看右边。
11、==和 equals 的区别
- 使用
==
时要注意比较的是对象的内存地址(引用),而不是内容。 - 使用
equals
方法时要确保正确地重写了它(如果你在自定义类中),以便比较对象的实际内容。 - 对于字符串、集合等常用的 Java 类,它们通常会重写
equals
方法,因此可以使用equals
进行内容比较。
12、关键字:static
如果想让一个成员变量被类的所有实例所共享,就用 static 修饰即可,称为类 变量(或类属性)
使用 static 修饰的成员变量就是静态变量(或类变量、类属性)存储在方法区)
13、final关键字
final 修饰类:表示这个类不能被继承,没有子类。提高安全性,提高程序的可读性。
final 修饰方法:表示这个方法不能被子类重写。
final 修饰变量:final 修饰某个变量(成员变量或局部变量),一旦赋值,它的值就不能被修 改,即常量,常量名建议使用大写字母。
14、abstract 抽象关键字
15、包装类
16、基本数据类型、包装类与字符串间的转换
(1)基本数据类型转为字符串 String str = String.valueOf(a);
(2)字符串转为基本数据类型 除了 Character 类之外,其他所有包装类都具有 parseXxx 静态方法可 以将字符串参数转换为对应的基本类型,
17、包装类缓存对象
18、包装类对象不可变
19、编译时异常和运行时异常
编译时期异常(即 checked 异常、受检异常):在代码编译阶段,编译器就能明确警 示当前代码可能发生(不是一定发生)xx 异常,并明确督促程序员提前编写处理它 的代码。如果程序员没有编写对应的异常处理代码,则编译器就会直接判定编译失 败,从而不能生成字节码文件。通常,这类异常的发生不是由程序员的代码引起的, 或者不是靠加简单判断就可以避免的,例如:FileNotFoundException(文件找不到异 常)
运行时期异常(即 runtime 异常、unchecked 异常、非受检异常):在代码编译阶段, 编译器完全不做任何检查,无论该异常是否会发生,编译器都不给出任何提示。只有等代码运行起来并确实发生了 xx 异常,它才能被发现。通常,这类异常是由程序员 的代码编写不当引起的,只要稍加判断,或者细心检查就可以避免。
20、创建和启动线程
方式 1:继承 Thread 类
方式 2:实现 Runnable 接口
使用匿名内部类对象来实现线程的创建和启动
新增方式一:实现 Callable 接口
新增方式二:使用线程池
21、JDK1.5 及之后:6 种线程状态
思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池 中。可以避免频繁创建销毁、实现重复利用。
22、同步机制解决线程安全问题
同步机制 (synchronized)sychronized
synchronized 与 Lock 的对比
23、StringBuffer 与 StringBuilder 的理解
java.lang.StringBuffer 代表可变的字符序列,JDK1.0 中声明,可以对字符串内容进行 增删,此时不会产生新的对象。
StringBuilder 和 StringBuffer 非常类似,均代表可变的字符序列,而且提供相关功能 的方法也一样。
24、Java 集合框架体系
25、Collection 接口及方法
添加:(1)add(E obj):添加元素对象到当前集合中 (2)addAll(Collection other): 添加 other 集合中的所有元素对象到当前集合中
26、Map 接口的常用方法
添加、修改操作: – Object put(Object key,Object value):将指定 key-value 添加到(或修改)当前 map 对象中 – void putAll(Map m):将 m 中的所有 key-value 对存放到当前 map 中
27、流的分类
28、通信要素三:网络通信协议
29、三次握手
30、四次挥手
31、Socket 类
网络上具有唯一标识的 IP 地址和端口号组合在一起构成唯一能识别的标识符套接字 (Socket)。