1、
堆:先进先出
栈:先进后出
2、
创建对象时构造器的调用顺序是:先初始化静态成员,然后调用父类构造器,再初始化非静态成员,最后调用自身构造器。
3、javascript是脚本语言,动态语言
java是静态语言
4、
== 比较内存中的地址
equals 比较值是否相等
5、sleep 让出CPU,保留对象锁
wait 放弃对象锁
6、进程大,线程小
7、
在很多情况下采用异步途径往往更有效率。事实上,所谓的同步就是指阻塞式操作,而异步就是非阻塞式操作。
8、
protected和public 修饰,可以被子类访问
private只有类内部能访问
class只能用default和public修饰
default只能被同一个包内部的类访问
9、
子类的构造过程中必须调用其基类的构造方法
10、
final的变量的值不能被改变
final的方法不能被重写
final的类不能被继承
对基本类型使用fianl不能改变的是他的数值。
而对于对象引用,不能改变的是他的引用,而对象本身是可以修改的。
11、
类单继承
可以实现多个接口
1、
++--
在前时先运算再取值
在后时先取值再运算
4、
StringBuilder
单个线程
不执行同步,所以速度更快
5、
数组是顺序存储的,不太适合用于有较多插入、删除操作的场合,尤其这种几乎必然溢出,需要重新分配空间的应用场景。
如果就是好奇,想知道,你可以看看ArrayList的源码,它的做法是给一个初始大小,给一个增量,每次插入前检查是否会越界,越界了,就用原来的长度加上增量,再新建一个数组,将原来的数据拷贝过去,然后再插入新数据。
既然人家已经都实现过了,在实际应用中,我一般是会偷懒的,嘿嘿,插入、删除操作很少,主要是查找和修改,那就用ArrayList,反之,就用LinkedList。
6、
数据库三范式
1,原子性(数据是不可以拆分的,比如1,2,3这样的就违背了1NF)
2,关联性(所有字段必须和主键关联)
3,非关联性(除主键关联外,其他字段之间不互相关联)
7、
类之间是单继承
类可以实现多个接口
8、
switch(expr)
expr是byte,short,char,int,enum,String
long型目前不可以
9、
数组有length属性
String有length()方法
10、
构造器不能被继承,因此不能被重写,但可以被重载
11、
String 类是final类,不可以被继承。
12、
Java语言的方法调用只支持参数的值传递
13、
String是只读字符串,也就意味着String引用的字符串内容是不能被改变的
StringBuffer/StringBuilder类表示的字符串对象可以直接进行修改
StringBuilder是Java 5中引入的,它和StringBuffer的方法完全相同,区别在于它是在单线程环境下使用的,因为它的所有方面都没有被synchronized修饰,因此它的效率也比StringBuffer要高。
14、
overload 编译时的多态性
override 运行时的多态性
重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;
重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。
重载对返回类型没有特殊的要求。
15、
Java中使用的编码是Unicode
16、
抽象类和接口都不能够实例化
抽象类中的成员可以是private、默认、protected、public的
接口中的成员全都是public的
17、
接口可以继承接口,而且支持多重继承。
抽象类可以实现(implements)接口,抽象类可继承具体类也可以继承抽象类。
18、
Anonymous Inner Class(匿名内部类)可以继承其他类或实现其他接口
19、
final
(1)修饰类:表示该类不能被继承;
(2)修饰方法:表示方法不能被重写;
(3)修饰变量:表示变量只能一次赋值以后值不能被修改(常量)。
20、
运行时异常
- ArithmeticException(算术异常)
- ClassCastException (类转换异常)
- IllegalArgumentException (非法参数异常)
- IndexOutOfBoundsException (下标越界异常)
- NullPointerException (空指针异常)
- SecurityException (安全异常)
21、
List、Set 继承自Collection接口
22、
ArrayList 和Vector都是使用数组方式存储数据
LinkedList使用双向链表实现存储
23、
Collection是一个接口,它是Set、List等容器的父接口;
Collections是个一个工具类,提供了一系列的静态方法来辅助容器操作,这些方法包括对容器的搜索、排序、线程安全化等等
24、
List以特定索引来存取元素,可以有重复元素。
Set不能存放重复元素(用对象的equals()方法来区分元素是否重复)。
Map保存键值对(key-value pair)映射,映射关系可以是一对一或多对一。
25、
short的取值范围-32768~32767
26、
要声明一个常量为float型,需要在数字后加f或F
浮点型常量默认为double型
float 32位
double 64位
2、
double a = 1.0
Double a = new Double(1.0)
java 浮点型常量默认为double 型
double d = 1234.5;
float f = 12.3f;
3、
byte 的表数范围:-128-127
八进制整数,要求以0开头,如012
十六进制数,要求以0x或0X开头,如0x12
整型常量默认是int型,声明long型常量可以后加l或者L
堆:先进先出
栈:先进后出
2、
创建对象时构造器的调用顺序是:先初始化静态成员,然后调用父类构造器,再初始化非静态成员,最后调用自身构造器。
3、javascript是脚本语言,动态语言
java是静态语言
4、
== 比较内存中的地址
equals 比较值是否相等
5、sleep 让出CPU,保留对象锁
wait 放弃对象锁
6、进程大,线程小
7、
在很多情况下采用异步途径往往更有效率。事实上,所谓的同步就是指阻塞式操作,而异步就是非阻塞式操作。
8、
protected和public 修饰,可以被子类访问
private只有类内部能访问
class只能用default和public修饰
default只能被同一个包内部的类访问
9、
子类的构造过程中必须调用其基类的构造方法
10、
final的变量的值不能被改变
final的方法不能被重写
final的类不能被继承
对基本类型使用fianl不能改变的是他的数值。
而对于对象引用,不能改变的是他的引用,而对象本身是可以修改的。
11、
类单继承
可以实现多个接口
1、
++--
在前时先运算再取值
在后时先取值再运算
4、
StringBuilder
单个线程
不执行同步,所以速度更快
5、
数组是顺序存储的,不太适合用于有较多插入、删除操作的场合,尤其这种几乎必然溢出,需要重新分配空间的应用场景。
如果就是好奇,想知道,你可以看看ArrayList的源码,它的做法是给一个初始大小,给一个增量,每次插入前检查是否会越界,越界了,就用原来的长度加上增量,再新建一个数组,将原来的数据拷贝过去,然后再插入新数据。
既然人家已经都实现过了,在实际应用中,我一般是会偷懒的,嘿嘿,插入、删除操作很少,主要是查找和修改,那就用ArrayList,反之,就用LinkedList。
6、
数据库三范式
1,原子性(数据是不可以拆分的,比如1,2,3这样的就违背了1NF)
2,关联性(所有字段必须和主键关联)
3,非关联性(除主键关联外,其他字段之间不互相关联)
7、
类之间是单继承
类可以实现多个接口
8、
switch(expr)
expr是byte,short,char,int,enum,String
long型目前不可以
9、
数组有length属性
String有length()方法
10、
构造器不能被继承,因此不能被重写,但可以被重载
11、
String 类是final类,不可以被继承。
12、
Java语言的方法调用只支持参数的值传递
13、
String是只读字符串,也就意味着String引用的字符串内容是不能被改变的
StringBuffer/StringBuilder类表示的字符串对象可以直接进行修改
StringBuilder是Java 5中引入的,它和StringBuffer的方法完全相同,区别在于它是在单线程环境下使用的,因为它的所有方面都没有被synchronized修饰,因此它的效率也比StringBuffer要高。
14、
overload 编译时的多态性
override 运行时的多态性
重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;
重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。
重载对返回类型没有特殊的要求。
15、
Java中使用的编码是Unicode
16、
抽象类和接口都不能够实例化
抽象类中的成员可以是private、默认、protected、public的
接口中的成员全都是public的
17、
接口可以继承接口,而且支持多重继承。
抽象类可以实现(implements)接口,抽象类可继承具体类也可以继承抽象类。
18、
Anonymous Inner Class(匿名内部类)可以继承其他类或实现其他接口
19、
final
(1)修饰类:表示该类不能被继承;
(2)修饰方法:表示方法不能被重写;
(3)修饰变量:表示变量只能一次赋值以后值不能被修改(常量)。
20、
运行时异常
- ArithmeticException(算术异常)
- ClassCastException (类转换异常)
- IllegalArgumentException (非法参数异常)
- IndexOutOfBoundsException (下标越界异常)
- NullPointerException (空指针异常)
- SecurityException (安全异常)
21、
List、Set 继承自Collection接口
22、
ArrayList 和Vector都是使用数组方式存储数据
LinkedList使用双向链表实现存储
23、
Collection是一个接口,它是Set、List等容器的父接口;
Collections是个一个工具类,提供了一系列的静态方法来辅助容器操作,这些方法包括对容器的搜索、排序、线程安全化等等
24、
List以特定索引来存取元素,可以有重复元素。
Set不能存放重复元素(用对象的equals()方法来区分元素是否重复)。
Map保存键值对(key-value pair)映射,映射关系可以是一对一或多对一。
25、
short的取值范围-32768~32767
26、
要声明一个常量为float型,需要在数字后加f或F
浮点型常量默认为double型
float 32位
double 64位
2、
double a = 1.0
Double a = new Double(1.0)
java 浮点型常量默认为double 型
double d = 1234.5;
float f = 12.3f;
3、
byte 的表数范围:-128-127
八进制整数,要求以0开头,如012
十六进制数,要求以0x或0X开头,如0x12
整型常量默认是int型,声明long型常量可以后加l或者L