Java 运算符、集合框架、泛型、异常

版权声明:本文为博主原创文章,转载注明出处。 https://blog.csdn.net/Alger_/article/details/74474711

一、二进制
一个字节=八位
1.二进制的最高位为符号位:0表示正数,1表示负数
2.正数的原码、反码、补码都一样
3.负数的反码=它的原码符位不变,其他取反(0->1,1->0)
4.负数的补码=它的反码+1
5.0的反码、补码都是0
6.java中的数都是有符号的
7.计算机在运行时,都是以补码的形式来运行的
取反、异或等均使用补码运算
1.按位与&:两位全为1,结果为1
2.按位或 |:两位有一个为1,结果为1
3.按位异或 ^ :两位一个为0,一个为1,结果为1
4.按位取反 : 0->1,1->0
算数移位运算
1.>>算数右移:低位溢出,符号为不变,并用符号位补溢出的高位
2.<<算数左移:符号位不变,低位补0
3.>>> 逻辑右移,低位溢出,高位补0
二、集合框架
常用的集合类:Vector、ArrayList、LinkedList、HashMap、Hashtable、Stack
ArrayList:ArrayList al=new ArrayList();
al.add();
al.remove();
al.size();

HashMap
Iterator迭代
这里写图片描述

HashMap和Hashtable的区别
1.历史与原因
Hashtable是陈旧的Dictionary类的,HashMap是java2.1引进的Map接口的一个实现
2.同步性
Hashtable是同步的。这个类中的一些方法保证了Hashtable中的对象是线程安全的。
而HashMap则是异步的,因此HashMap中的对象并不是安全的。因为同步要求会影响执行的效率,所以如果你不需要线程安全的集合,那么使用HashMap是一个很好的选择,这样可以避免由于同步带来的不必要的性能开销,从而提高效率。
3.值
HashMap可以让你将空值作为一个表的条目的key或value
而Hashtable是不能放入空值的(NULL)
ArrayList和Vector的区别
1.同步性
Vector是同步的,线程安全
ArrayList是异步的,线程不安全
2.数据增长
Vector缺省情况下自动增长为原来的一倍长度
ArrayList增长为原来的50%
所以如果你在集合中保存大量数据,那么使用Vector有一些优势

总结:
①如果要求线程安全,使用Vector和Hashtable
②如果不要求线程安全,应使用ArrayList,LInkedList、HashMap
③如果要求键值对,则使用HashMap和Hashtable
④如果数据量很大,又要考虑线程安全,用Vector

三、泛型
①类型安全
②向后兼容
③层次清晰
④性能较高
java的反射机制
这里写图片描述

通过反射机制,可以得到class的方法名,等等一些信息

四、异常
无论哪种异常,都是继承了java.lang.Throwable
①检查性异常 (java.lang.Exception)

②运行性异常 (java.lang.RuntimeException)

③错误 (java,lang.Error)

猜你喜欢

转载自blog.csdn.net/Alger_/article/details/74474711