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

程序源代码

共 2101字,需浏览 5分钟

 · 2021-07-27

“ 关键字: java 学习 每日 高频 面试题 每日高频面试题 ,一起冲进大厂"


导读:

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

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

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


01

死锁、如何预防死锁?

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

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

2、如何预防死锁?

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


02

Cookie和 session的区别是什么?

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

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

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


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

04






公众号ID:  itcode

【公众号二维码, 扫一扫吧


微信ID:  itcoder

微信二维码, 扫一扫吧




【写作说明】以上文章属于此公众号原创所有,如需转载请注明出处。【免责申明】本公众号不是广告商,也没有为其他三方网站或者个人做广告宣传。文章发布源代码和文章均来源于各类开源网站社区或者是小编在项目中、学习中整理的一些实例项目。主要目的是将开源代码分享给喜欢编程、有梦想的程序员,希望能帮助到你们与他们共同成长。其中用户产生的一些自愿下载、打赏或者付费行为,原则与平台没有直接关系。如果涉及开源程序侵犯到原作者相关权益,可联系小编进行相关处理。
【投稿邮箱】315997972@qq.com

—————————————

目前已有1000000+优秀的程序员加入我们
                          
                         

——————————————

【你的每一份打赏就是对我最真诚的鼓励】



浏览 11
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报