知识点记录

137 阅读1分钟

摘自JavaGuide面试

  1. Java 是编译与解释共存的语言

基础知识
1.字符型常量 字符串常量 字符常量相当于一个整型值( ASCII 值),可以参加表达式运算; 字符串常量代表一个地址值(该字符串在内存中存放位置)
char占2个字节

2.泛型 什么是类型擦除 介绍下常用的通配符

泛型的本质是参数化类型

java在编译期间会把所有的泛型信息都擦除。 泛型的三种使用方式:泛型类 泛型接口 泛型接口

可以通过反射添加不同类型的集合参数

List<Integer> list = new ArrayList<>();
Class<? extends List> clazz = list.getClass();
Method add = clazz.getDeclaredMethod("add", Object.class);
//但是通过反射添加,是可以的
add.invoke(list, "kl");
System.out.println(list);

常用的通配符:T E K V ?

?表示不确定的 java 类型 T (type) 表示具体的一个 java 类型 K V (key value) 分别代表 java 键值中的 Key Value E (element) 代表 Element

3.== 和 equals()的区别

4.hashCode() equals()

5.为什么重写equals()是时必须重写hashCode()

6.基础类型和包装类型 包装类型不赋值就是 Null ,而基本类型有默认值且不是 Null。 基本类型存放在JVM栈中的局部变量表中 包装类型属于对象类型,对象实例存放在堆中

7.装箱拆箱 Integer i = 10 等价于 Integer i = Integer.valueOf(10) int n = i 等价于 int n = i.intValue();