- tcp有啥缺点
慢,效率低,占用系统资源高,易被攻击
TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。
而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。
- spring aspect原理
将类标记为切面,把当前类标识为一个切面供容器读取
- spring AOP用到哪些设计模式
代理模式
- cors跨域的过程是咋样的
https://zhuanlan.zhihu.com/p/29980092
- spring是否是线程安全的
spring是一个容器,你可以说bean修饰的方法是不是线程安全,但是不能说spring是否安全
- 哪种情况构造方法必须是私有的
单例模式,除此之外都是共有的
- javac执行是否涉及到classLoader和双亲委派
涉及到了,因为javac编译需要转换为字节码进入验证,而验证是classLoader的第一阶段。
- length,length(),size()的区别?
length是数组的属性,length()是string的方法,size()是List的方法。
- Arrays.sort()用的什么方法排序?时间复杂度是多少?Timsort是如何排序的?
1.扫描数组,确定其中的单调上升段和严格单调下降段,将严格下降段反转;2.定义最小基本片段长度,短于此的单调片段通过插入排序集中为长于此的段;3.反复归并一些相邻片段,过程中避免归并长度相差很大的片段,直至整个排序完成,所用分段选择策略可以保证O(n log n)时间复杂性。
- ==和equals的区别
equals比的是内容,==还比类型
- java8种基本数据类型及所对应字节数
byte(字节型 1 )、short(短整型 2 )、int(整型 4 )、long(长整型 8 )、float(单精度浮点型 4 )、double(双精度浮点型 8 )、boolean(布尔型 1 )、char(字符型 2 )
- final 和 static的作用
final可以修饰类和方法,并且无法继承
static修饰的在编译器就放入堆,加快运行速度
- 线程之间是如何通信的
通过主存
- string寻找某个固定字串起始字符索引的api
indexOf(str);
- 类的关系有哪些
泛化、依赖、关联、实现、聚合、组合
https://blog.csdn.net/lpjishu/article/details/51491779
建造者模式。
- java线程的七种状态和3种中断
初始,运行,阻塞,等待,超时等待,中止
设置退出标志,interrupt,stop
- java乐观锁和悲观锁的实现原理
CAS算法和synchronized思想。
- 方法内的变量是线程安全的吗?
是,因为是私有。
- request…session…cookie…token的作用域和时长
服务器生成cookie,浏览器保存cookie,只要用户不清除cookie,它就是永久保存到用户本地的
sessionId失效了,session对象也就被销毁了
request对象中的变量在一次请求中有效,在同一网站的多个网页间共享。而session是在用户的多次请求中都有效