实验室队友总结的,贴出来链接
一、java简介
Jvm运行机制原理 https://blog.youkuaiyun.com/u011546655/article/details/52175550
java跨平台:编译的结果不是生成机器码,而是生成字节码,字节码不能直接运行,必须通过JVM翻译成机器码才能运行。
不同平台下编译生成的字节码是一样的,但是由JVM翻译成的机器码却不一样。
JVM内存管理机制和垃圾回收机制(基本每次面试都会问,一定要搞得透彻)https://blog.youkuaiyun.com/u011225629/article/details/49000311
https://blog.youkuaiyun.com/xiangzhihong8/article/details/80412795
http://blog.sina.com.cn/s/blog_98b8af560102uz73.html
JDK与JRE的区别与理解:https://blog.youkuaiyun.com/singit/article/details/54821159
Java 堆和栈的区别 https://www.cnblogs.com/ibelieve618/p/6380328.html
GC回收机制:https://blog.youkuaiyun.com/u011546655/article/details/52186044
https://www.cnblogs.com/xiaoxi/p/6486852.html
https://zhuanlan.zhihu.com/p/25539690
Java常量池理解与总结 https://www.jianshu.com/p/c7f47de2ee80
Java中JDK使用的设计模式。https://www.jianshu.com/p/7deb64f902db
https://blog.youkuaiyun.com/u013782203/article/details/52214393
装饰设计模式。https://www.cnblogs.com/liaoweipeng/p/5768031.html
适配器模式。https://www.cnblogs.com/V1haoge/p/6479118.html
迭代器模式:http://www.php.cn/java-article-356518.html
二、类和对象
1、什么是类?什么是对象?类和对象有什么关系?
https://blog.youkuaiyun.com/qq_34086047/article/details/51395730
2、什么是方法的重写与重载,重写与重载的规则是什么? https://blog.youkuaiyun.com/a3060858469/article/details/77934309
3、Java修饰符private、protected、public和default的区别?https://blog.youkuaiyun.com/pl1612127/article/details/50478127
4、Java内部类详解。 https://www.cnblogs.com/dolphin0520/p/3811445.html
5、static关键字的四种用法。 https://www.cnblogs.com/dotgua/p/6354151.html
6、创建对象的几种方式。https://www.cnblogs.com/baizhanshi/p/5896092.html
- 反射机制。 https://www.cnblogs.com/zhaoyanjun/p/6074887.html
- 什么是面向对象?面向对象的特点? https://blog.youkuaiyun.com/chenqiuping_ls/article/details/53609807
- 面向对象编程的基本原则?https://www.cnblogs.com/itfenqing/p/7750524.html
三、继承与多态
1、Java中final、finally和finalize的区别。 https://blog.youkuaiyun.com/cyl101816/article/details/67640843
2、理解java的三大特性之多态 http://www.cnblogs.com/chenssy/p/3372798.html
http://www.cnblogs.com/youki-bj20120721/p/4128037.html
3、抽象类与接口的区别。https://blog.youkuaiyun.com/Hhc0917/article/details/54755001
四、基础类与集合类
- String、StringBuffer、StringBuilder的区别。http://www.cnblogs.com/A_ming/archive/2010/04/13/1711395.html
- java集合框架综述:https://www.cnblogs.com/xiaoxi/p/6089984.html
- HashMap、HashSet存储机制。https://blog.youkuaiyun.com/managermeng/article/details/41116847
五、异常处理
1、深入理解java异常处理机制。https://blog.youkuaiyun.com/hguisu/article/details/6155636
2、throw与throws区别。https://www.cnblogs.com/alsf/p/5626384.html
六、多线程
- 线程详解。https://www.cnblogs.com/snow-flower/p/6114765.html
- 线程与进程的区别。https://www.cnblogs.com/lgk8023/p/6430592.html
- 线程的生命周期。 http://www.cnblogs.com/Ivan-j2ee/archive/2012/05/11/2496487.html
- 线程的死锁,怎么避免死锁。 https://blog.youkuaiyun.com/ls5718/article/details/51896159
- 线程的同步。https://blog.youkuaiyun.com/cengjingyige/article/details/52382300
- java中的lock和synchronized区别是什么。https://www.cnblogs.com/handsomeye/p/5999362.html
- 悲观锁与乐观锁,互斥锁。https://blog.youkuaiyun.com/truelove12358/article/details/54963791
- Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现;
- synchronized在发生异常时,会自动释放线程占有的锁,因此不会导致死锁现象发生;而Lock在发生异常时,如果没有主动通过unLock()去释放锁,则很可能造成死锁现象,因此使用Lock时需要在finally块中释放锁;
- 3)Lock可以让等待锁的线程响应中断,而synchronized却不行,使用synchronized时,等待的线程会一直等待下去,不能够响应中断;
4)通过Lock可以知道有没有成功获取锁,而synchronized却无法办到。
5)Lock可以提高多个线程进行读操作的效率。
在性能上来说,如果竞争资源不激烈,两者的性能是差不多的,而当竞争资源非常激烈时(即有大量线程同时竞争),此时Lock的性能要远远优于synchronized。所以说,在具体使用时要根据适当情况选择。
https://www.cnblogs.com/handsomeye/p/5999362.html
- 创建线程的两种方式以及区别。 http://www.cnblogs.com/gw811/archive/2012/10/15/2724882.html
- 什么是线程池?线程池的几种方法。线程池的作用。 https://www.jianshu.com/p/87bff5cc8d8c
- 网络编程
- 网络编程基础知识。https://blog.youkuaiyun.com/he90227/article/details/39184247
- 服务器、客户端、IP地址及端口的基本概念。
服务器与客户端:网络上提供服务的叫做服务器端(server) 享受服务的叫做客户端(client)
IP地址:网络中的每个设备都会有一个唯一的数字标识,这个就是IP地址,每个接入网络的计算机都拥有唯一的IP地址。
端口:在同一个计算机中每个程序对应唯一的端口,这样一个计算机上就可以通过端口区分发送给每个端口的数据。
端口与IP地址的关系:一般一个公司前台会有一个电话,每个员工会有一个分机,这样如果需要找到这个员工的话,需要首先拨打前台总机,然后转该分机号即可。这样减少了公司的开销,也方便了每个员工。在该示例中前台总机的电话号码就相当于IP地址,而每个员工的分机号就相当于端口。
端口:21
服务:FTP
说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口。
端口:23
服务:Telnet
说明:远程登录,入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。木马Tiny Telnet Server就开放这个端口。
端口:53
服务:Domain Name Server(DNS)
说明:DNS服务器所开放的端口,入侵者可能是试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其他的通信。因此防火墙常常过滤或记录此端口。
端口:80
服务:HTTP
说明:用于网页浏览。木马Executor开放此端口。
https://blog.youkuaiyun.com/qzcsu/article/details/72861891
TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。
UDP(User Data Protocol,用户数据报协议)传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
TCP与UDP的区别:
1.基于连接与无连接(如打电话要先拨号建立连接,发短信不需要建立连接);
2.对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简单;
4.流模式与数据报模式 ;
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。(接收端处理时间过长导致丢包)