1.1
问:什么是Java字节码?
答:程序的一种低级表示,可运行于Java虚拟机,以保证Java程序员的代码可以运行在各种设备上。
问:如何将double变量初始化为无穷大?
答:使用Java内置常量 Double.POSITIVE_INFINITY 和 Double.NEGATIVE_INFINITY
问:Java表达式1/0和1.0/0的值是什么?
答:除0异常 和 Infinity(无穷大)
问:能使用 < 和 > 比较String吗?
答:不能,只有原始数据类型定义了这些运算符。
问:负数的除法和余数结果是什么?
答:除法a/b,结果向0取整。 a%b余数的定义为 (a/b)*b + a%b === a。 所以 -14 % 3 = -2 , 14%-3 = 2
问:为什么数组的起始索引是0而不是1?
答:因为计算一个数组元素的地址需要将 数组的起始地址加上该元素的索引,如果起始索引设置为1 ,要么浪费一个元素的空间,要么花费额外的时间将索引减1
1.2
问:创建对象时忘了使用new 会发生什么?
答:创建每个对象都需要使用new。 否则可能会出现空指针异常。NullPointerException。
问:导入(import)一个对象名意味着什么?
答:没什么,只是可以少打一些字,如果不使用import,可以用 java.util.Arrays 代替 Arrays
单向链表,在头部插入,头部删除,尾部插入都很快,和链表长度无关,但是如果想要删除尾部节点,就不方便了,标准解决方案是使用双向链表。
实现一个栈的好方法是使用一个链表而不是数组。
1,所需空间和集合大小正比
2,所需时间和集合大小无关
链表和数组的优点和缺点
数组优点:通过索引直接访问任意元素,
数组缺点:在初始化时就要知道元素数量。
链表优点:使用的空间和元素个数成正比
链表缺点:需要通过引用访问任意元素。
泛型有什么好处?
1,任意类型,
2,能够在编译时,发现类型错误。
嵌套类
在一个类中,定义一个类,就是嵌套类,非静态的嵌套类,也叫做内部类。
StackNode.class用来分割外部类和内部类。
Java中 允许向队列或者栈中插入null值。
String没有实现Iterable
设计含有几个操作的接口,显然比设计含有许多操作的接口更简单。
许多程序的运行时间都取决于一小部分的指令
线性对数 非常的 接近 线性的速度。