1.线程池的相关知识点,参考线程池详解,该篇文章讲的比较详细
2.接口当中变量默认是 public static final类型,方法默认是public abstract类型。
3.一个类中可以包含多个静态代码块,静态代码块的执行顺序大于方法的执行顺序;但是静态代码块只会执行一次。
4.java定义数组时不可以直接定义数组的长度,例如string [50]a,应该为String []a =new String [50],二维数组可以String [][]a=new String [50][]
5.数据类型转型:是通过短类型向上转型,也就是short像long,char向int,float向double;总结就是都会向长度较长的进行转型。
6.byte类型相加:byte类型相加会变成int类型,故接受的两个byte类型相加需要使用+=,而不能使用A=A+B,因为+=会自动转型,而后者不会自动转型
7.重写是对方法的方法名、参数不进行改变,核心内容进行更改
8.子类可以:继承父类的无参构造函数,也不可以继承父类的有参构造函数
9.线性表和非线性表的区别?线性表是只分为前后的数据结构,数据、链表、栈、队列都是线性表;非线性表是二叉树、图、堆
10.数组和矩阵不同,数组元素可以是字符,即字符数组,矩阵中都是数。
a[M][N],求a[i][j]
行优先: Loc(aij) = Loc(a11) +[(i-1)*n + j-1 ]*sizeof(元素)
列优先: Loc(aij) = Loc(a11) + [(j-1)*m + i-1]*sizeof(元素)
11.jvm回收机制采用复制算法的是:新生代串行收集器,新生代并行回收收集器,建议看这篇博客
12.jdk1.8及1.8之后抽象类采用default关键字修饰的方法,可以存在方法体
13.CopyOnWrite的核心思想是利用高并发往往是读多写少的特性,对读操作不加锁,对写操作,先复制一份新的集合(未完成)
14.long test=012 这样的赋值方式是正确的;补充两种赋值方式,<<=向左赋值,>>>=向右赋值。
15.Math.around(11.5)=12,Math.around(-11.5)=-11;Math.around可以看做是数轴像右靠近。
16.各种基础类型的数值范围:byte和Integer的数据范围都是-127~128
17.管道通信是半双工的,不能用于微服务之间的通信
18.线程安全的集合类包括:喂!SHE!,(vector,Stack,HashTable,Eenumeration)
19.equals方法不包含类型转换,故对于不同类型的数据,不能使用equals方法进行判断
20.在J2EE中,使用Servlet过滤器,需要在web.xml中配置,< filter> 和 < filter-mapping>
21.hashCode可能会出现相同的情况,hashCode相同时,其对应的对象的值也必须相同
22.java的反射机制。(未完成)
23.重载是:返回值可不相同(不作为判断条件);(判断条件)参数列表不同;(判断条件)方法名相同;
24.正确创建套接字连接方式:Socket s = new Socket(“192.168.1.1”,8080)。
25.抽象类和方法都不能被实例化,抽象类可以实现接口,抽象类方法默认访问权限都是default(1.8以及1.8之后),protected(1.8之前),接口就是访问的,默认访问权限都是public
26.在try语句块或catch语句块中执行到System.exit(0)直接退出程序,将不会执行finally。
27.java中八大基础类型:short/int/byte/long/char/boolean/float/double。
其数值范围是:
byte:-128~127;
short:-2^15~ 2^15-1
int: -2^31 到2^31-1
long: -2^63到 2^63-1
28.java中Collection中定义的方法不包含compareTo()
29.抽象类和接口的区别:
1.抽象类可以包含成员方法,接口不能包含普通成员方法,接口中的方法全是抽象的,但接口可以包含普通常量
2.一个类可以实现多个接口,但只能继承一个抽象类。(java不可以多继承,但可以多实现)
3.接口中无法定义成员变量,但是可以定义常量,因为值不可变,默认使用public static final修饰
4.接口当中没有构造方法,不能创建对象
5.接口当中,没有静态代码块
相同点:
1.都需要被人实现或者被继承,其子类必须重写抽象方法
2.都包含抽象方法
30.类内部,本包,子类,外部包(public、protected、default、private)四个关键字权限范围逐级递减