0:算法题:数组中第k大的数、二叉树的层序遍历、LRU
1:数据库索引和应用场景https://www.cnblogs.com/litingshi/p/8120486.html
索引是一种特殊的文件类型,包含着表中所有记录的引用,一般会为主键自动生成索引。在进行大数据量的表中的查询的时候可以快速定位到数据,大大加快数据的检索速度,而且唯一性的索引可以保证每一行数据的唯一性。
2:装饰者模式和适配器模式的区别https://blog.csdn.net/uniquewonderq/article/details/79873251#commentBox
适配器模式(InputStreamReader)和装饰者模式(FilterInputStream)都叫包装者模式(wrapper),因为两者都是起到包装一个类或者对象的作用。适配器作用是把一个接口变成另一个接口,通过改变接口来达到反复利用的效果。装饰者不改变修饰对象的接口,而是在保留接口的前提下,增强修饰对象的功能或者改变原有对象的处理方式而增强性能。
3:一个应用开多个进程的实现https://www.csdn.net/gather_27/MtTakg0sOTk4ODYtYmxvZwO0O0OO0O0O.html
线程:thread对象是线程,可以用继承thread类或者实现runnable接口来实现,重写run后用start开启线程。
进程:主要用ProcessBuilder pb = new ProcessBuilder(myXXcommand,myXXobject);
Process p = pb.start();来创建。进程间通信方式ipc:管道,套接字,共享内存(最快),信号量,消息队列,信号
4:java的反射机制https://blog.csdn.net/a745233700/article/details/82893076
JVM在运行的时候才动态加载类,都能够知道这个类的所有属性和方法,调用方法/访问属性,不需要提前在编译期知道运行的对象是谁,他允许运行中的Java程序获取类的信息,并且可以操作类或对象内部属性。非常适合Java这种先编译再运行的语言,可以在运行时获得类的各种内容,进行反编译,让代码在运行时装配,无需在源代码之间进行链接。但是需要消耗一定的系统资源,而且反射的时候会破坏权限检查,可能破坏程序的封装性带来安全问题。
5:ThreadLocal和它的应用场景https://zhuanlan.zhihu.com/p/34494674
×Threadlocal叫线程变量,但其本身并不储存数据,它只是相当于一个工具包,提供了操作该容器的方法,如get、set、remove等。其内部类Threadlocalmap才是储存数据的容器,并且由当前线程维护。每个线程含有一个ThreadlocalMap类型的成员变量threadlocals,它储存了线程中所有的Threadlocal对象及其对应的值。ThreadLocalMap由一个个Entry对象构成,且其key是一个弱引用类型。执行ThreadLocalMap的set时先获得当前线程对象,再获得当前线程的ThreadLocalMap对象,再以当前ThreadLocal为key,储存进ThreadLocalMap中。而且由于每个线程都有自己的ThreadLocalMap,所以这些容器相互独立互不影响,因此不会存在线程安全性问题,从而也无需使用同步机制来保证多条线程访问容器的互斥性。(弱引用主要是用于弱化指针的思想,让回收期自动回收垃圾对象)
×Threadlocal内存泄漏,Threadlocal本身是一个弱引用,但是ThreadlocalMap的生命周期是和线程一致的所以当Threadlocal为null被回收时value依然存在,所以造成内存泄漏,因此使用完Threadlocal时要记得remove操作防止内存泄漏。
×Threadlocal应用场景:1:进行对象跨层次传输时用Threadlocal可以避免多次传输;2:线程间数据隔离;3:进行事务操作,用于存储线程事务信息。4:数据库连接,session会话管理。场景:每条线程都需要存取一个同名变量,但每条线程中该变量的值均不相同;每个线程都需要自己的独享对象,不共享;每个线程保存一份全局变量,让不同的方法直接使用,避免参数传递的麻烦;Spring采用Threadlocal的方式,来保证单个线程中的数据库操作使用的是同一个数据库连接;Spring的事务主要是ThreadLocal和AOP去做实现;在Android中,Looper类就是利用了ThreadLocal的特性,保证每个线程只存在一个Looper对象。
6:说一下http和https的区别https://zhuanlan.zhihu.com/p/72616216
http是超文本传输协议,是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议,目前广泛使用的是HTTP/1.1版本。
http主要特点:可以传输任何利用content-type标记过的数据类型,每次链接只能处理一个请求,当客户端结束请求后即断开连接,不利于保持会话连接,由此产生了记录Http状态的Cookie和Session。无状态性:协议对于事务处理没有记忆,后续处理需要前面的信息,则必须重传。
Uri:统一资源标识符
Url:统一资源定位符
http问题:请求信息明文传输,容易被窃听截取。数据的完整性未校验,容易被篡改。没有验证对方身份,存在冒充危险。
https:HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。(SSL:安全套接字层,TLS:传输层安全)
https缺点:
HTTPS协议连接过程需要进行密匙的建立和验证,需要多次握手,导致页面的加载时间延长近50%;
HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗;
申请SSL证书需要钱,功能越强大的证书费用越高。
SSL涉及到的安全算法会消耗 CPU 资源,对服务器资源消耗较大。
牛客0@oppo
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 面试必背 会舍弃、总结概括——根据我这些年面试和看面试题搜集过来的知识点汇总而来 建议根据我的写的面试应对思路中的...
- 包含的重点内容:JAVA基础JVM 知识开源框架知识操作系统多线程TCP 与 HTTP架构设计与分布式算法数据库知...