1.抽象类中可以有没有抽象方法,只有普通方法。
2.接口中可以没有任何方法。
3.实现了Collection接口的有set、list、Queue,TreeSet、HashSet实现了set接口,Vector、Stack实现了list接口。
4.实现了map接口的有HashTable、TreeMap、SortedMap、LinkedHashMap。
5.HashMap键值允许为null,他是不同步的,而HashTable相反,HashMap解决hash冲突的方式是用链表。
6.Arrays.asList(),中参数必须是引用类型,如Integer[] t = {1,2,3};并且返回的list是固定大小的,不等添加、删除元素。Arrays.asList()方法返回一个ArrayList对象。
7.java类中构造函数、静态代码块、执行顺序。
上溯到Object类,先执行Object类的静态代码块,再向下执行子类的静态代码块,知道所有的类静态代码块执行完,然后开始执行父类的构造函数,再执行子类的构造函数。
8.静态代码块中不能调用非静态方法,静态方法中不能使用this关键字。
9.DateFormat 和 SimpleDateFormat 类是非线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。SimpleDateFormat继承了DateFormat,在DateFormat中定义了一个protected属性的 Calendar类的对象:calendar。只是因为Calendar累的概念复杂,牵扯到时区与本地化等等,Jdk的实现中使用了成员变量来传递参数,这就造成在多线程的时候会出现错误。
10.HashTable是一个线程安全的类,它使用synchronized来锁住整张Hash表来实现线程安全,即每次锁住整张表让线程独占。
11.ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的Hashtable,它们有自己的锁。只要多个修改操作发生在不同的段上,它们就可以并发进行。
12.ArrayList和LinkedList的remove性能不一样,LinkedList性能比ArrayList高,因为ArrayList底层采用数组实现,而LinkedList是双向链表实现。ArrayList和LinkedList都是非线程安全的,都实现了list接口。
13.所有异常类的基类是Throwable。
14.java中定义类时不能同时使用final、abstract关键字。
15.Java对象锁
15.OSI七层模型
OSI中的层 功能 TCP/IP协议族
应用层文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
表示层数据格式化,代码转换,数据加密没有协议
会话层解除或建立与别的接点的联系没有协议
传输层提供端对端的接口 TCP,UDP
网络层为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP
数据链路层传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
物理层以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2