java开发常用技术2
11. 线程中wait和sleep的区别
Wait方法属于Object类,使线程放弃进入执行,进入线程等待池,只能使用notify或notifyAll方法才能唤醒此线程,线程会等待进入线程池。即使在执行此方法时,线程已进入线程池,依然会放弃执行,让出线程池,交出锁。即使线程被激活,也需要等待前方线程执行完毕后才可进入线程池执行。
Sleep方法属于Thread类,使线程在指定时间内暂停执行,让cup暂时执行其他线程,但这个线程的监控状态依然保持,当执行时间到了以后,该线程恢复到之前状态,继续执行,线程不会释放锁。
12. Equals和==的区别
==是一个运算符,是逻辑上的判断,比较的是引用地址。
Equals是String的一个方法,是比较引用地址,在Object类时,Equals和==是一样的,对于其他类来说如果重新了Equals方法,则比较的两个对象的数据内容。
13. HashCode和Equals
HashCode和Equals都是在Object类中定义的,是对两个对象地址的比较,如果重写了Equals方法就必须重写HashCode方法。
HashCode方法返回的是对象的散列码,返回值是int类型的散列码;Equals返回的是true和false。
![IFrame IFrame](https://img2023.cnblogs.com/blog/2531222/202303/2531222-20230331002449159-1611495487.gif)
如果两个对象相同,他们的HashCode值必须相同;如果两个对象的HashCode值相同,他们不一样相同。
14. 方法重载和重写的区别
方法重载:在同一个类中,方法名称相同,参数类型和个数不同,返回值也可以不同。
方法重写:父子类、接口和实现类之间的关系,子类可以重写父类方法,但是参数个数、类型、返回值必须相同。
15. Junit中before和beforeclass的区别
Before是初始化方法,在每个程序运行之前都会执行一次。
Beforeclass在类中只运行一次。
16. STAR法则
Situation: 事情是在什么情况下发生
Task: 你是如何明确你的任务的
Action: 针对这样的情况分析,你采用了什么行动方式
Result: 结果怎样,在这样的情况下你学习到了什么
17. Cookie和Session的区别
cookie数据存储在客户的浏览器上,cookie是不安全的,别人可以分析存放在本地cookie并进行cookie欺骗;
Session存储在服务器上,Session是安全的;当访问增多时,Session会占用服务器性能,可以考虑使用cookie
建议将登陆信息等重要信息保存在Session中,其他需要保留的信息可以存在cookie中。
18. JQuery有哪些选择器
ID选择器、类选择器、层次选择器、组合选择器、属性选择器、表单选择器等等
19. 事务的特性和隔离级别
特性:原子性、一致性、隔离性、持久性。
隔离级别:
① Serializable (串行化):可避免脏读、不可重复读、幻读的发生。
② Repeatable read (可重复读):可避免脏读、不可重复读的发生。
③ Read committed (读已提交):可避免脏读的发生。
④ Read uncommitted (读未提交):最低级别,任何情况都无法保证。
20. POI上传数据量过大
可分批处理 先行保存部分内容至数据库,再清空list集合,重新导入内容