Java基础小知识笔记(自己努力常更新)

来源:互联网 发布:查看linux防火墙状态 编辑:程序博客网 时间:2024/06/07 07:14

1、基本数据类型及所占用的空间
byte(8bit)、short(16bit)、int(32bit)、long(64bit)、float(32bit)、double(64bit)、char(16bit)、boolean(各有各的说法)
float当数值非常大或者非常小的时候会变得不精确,所以尽量不要用在if判断中
如果double和float都无法达到想要的精度,可以使用BigDecimal类

2、StringBuffer是线程安全的,StringBuilder是非线程安全的
将字符串反转用StringBuffer或StringBuilder的reverse方法

3、MATH类常用的一些函数
1)Pow()幂运算
2)Sqrt()开平方根
3)Round()四舍五入
4)Abs()绝对值
5)Random()随机生成一个0到1之间的随机数

4、接口
1)接口的成员变量声明默认为public static final,所以接口不能有普通成员变量
2)接口中的所有方法必须是抽象中的,默认为public abstract
3)接口没有构造方法,且不能实例化

5、抽象类
1)抽象类可以包含非抽象的普通方法和普通成员变量,但方法不能是private
2)抽象类的函数可以用static修饰,但abstract和static不能共用
3)抽象类不能直接实例化,不能被final修饰

6、异常
1)异常分为编译时异常运行时异常
2)异常处理机制:一、异常捕捉try…catch…finally 二、异常抛出throws
3)用try语句时,catch和finally两者必须存在一个以上
异常捕抓时如果发生异常,return会执行吗?
答:会,有finally就在finally中语句执行后执行,如果没有finally就在catch之后执行

7、集合
Java里的集合框架分为Collection(List和Set)和Map两大接口
List:顺序存储,可以有重复值
Set:无序存储,不能有重复值
Map:以键值对存储数据,无序存储,不能有重复值

8、泛型
使用泛型可以避免出现java.lang.ClassCastException(类转换异常)
类型擦除:Java泛型只能用于在编译期间的静态类型检查,然后编译器生成的代码会擦除相应的类型信息,这样到了运行期间实际上JVM根本就知道泛型所代表的具体类型。

9、多线程
1)实现多线程可以通过继承java.lang.Thread或者实现java.lang.Runnable接口
2)Thread 类中的start() 和 run() 方法有什么区别?
答:start()方法被用来启动新创建的线程,且start()内部调用了run()方法,这和直接调用run()方法的效果不一样。当你调用run()方法的时候,只会是在原来的线程中调用,没有新的线程启动,start()方法才会启动新线程。

反射

未完待更

原创粉丝点击