Java基础面试

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)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值