前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【程序源代码】java 每日高频面试题【day4】

【程序源代码】java 每日高频面试题【day4】

作者头像
程序源代码
发布2021-08-10 14:15:34
2540
发布2021-08-10 14:15:34
举报
文章被收录于专栏:程序源代码程序源代码

导读:

大家好,我是程序源代码,算算入行的时候我已算入行10以上的老兵了,毕业在北京北漂8年,13年回到省会石家庄,一直就在河北这块土地上生活着。现在人了快到了中年,感觉现在生活压力都比较多大。梦想着有一天能进入大厂,实现一个大厂梦。其实我感觉大家应该和我一样,都想有进入大厂工作毕竟生活需要理想,还需要苟且(挣高工资),其实现在大厂并不是特别容易进,作为一名好多年的Java选手,其实我感觉进入大厂,首先要把自己的技术和面试这两个重要点做好。

最近这几天我一直在看java相关的基础,也在看一些面试相关的资源和视频,其实感觉不管什么技术面试,其实基础是很重要的。现在正好暑假了,天气炎热,作为宅男的我本来就不想出去,所以还不如呆在家里,静下心来好好准备下基础的面试。所以这个暑假(虽然我没有暑假)我准备用60天时间,把Java面试中的面试题看一看,从头复习一遍。计划是每天1-3题的形式学一遍(希望自己能坚持下来)。

  主要涵盖的知识点我简单列了一下,计划从这些方面出发进行学:Java基础知识、集合容器、并发编程、JVM、Spring全家桶、MyBatis等ORMapping框架、MySQL数据库、Redis缓存、RabbitMQ消息队列、Linux操作技巧等。

01

死锁、如何预防死锁?

1、造成死锁的四个必要条件

代码语言:javascript
复制
1、互斥条件:同一时间只有一个线程获取到资源;
代码语言:javascript
复制
2、不可剥夺条件:一个线程已占有资源,在释放前不会被其它线程占用。
代码语言:javascript
复制
3、请求和保持条件:线程等待过程中不会释放已占有的资源。
代码语言:javascript
复制
4、循环等待条件:多个线程相互等待对方释放资源

2、如何预防死锁?

采用trylock(timeout)方法,设置线程的超时时间,通过程序判断线程主动退出,主动进行判断如果不用资源后释放占有的资源。这样就可以让资源得到释放,从而其它线程就可以去获取资源进行线程操作。就像一个十字口路一样,大家按照指定红绿灯进行通知 ,红灯就暂停下来让别的线程进行操作,别的进程操作完成通过后,绿灯时自己再获取资源进行操作。

02

Cookie和 session的区别是什么?

Cookie:是将数据保存到客户端(浏览器);

session:是将数据保存到服务端;一般情况下session用于服务端保存用户状态时使用。相对来说session比cookie更加安全些。因为它不容易通获取到。浏览器经常容易被一些程序进行恶意操作。

一般在实际使用时建议使用session;一般情况下如果涉及到用户的敏感数据信息时,建议通过程序将用户的信息进行加密后,通过session保存到服务端保存下来,不是直接放在浏览器客户端里面。

比如我们在登录验证时,先验证用户名和密码是否一样,如果用户和密码完成符合后将用户session信息保存session中,这样在登录后的一些操作就可以从session获取到用户信息。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-07-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序源代码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档