Java 零碎知识点

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

































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值