- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java面试题知识点总结剖析
1. 为何要使用同步??
? ? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查)将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用,?从而保证了该变量的唯一性和准确性。
?1)同步方法?即有synchronized关键字修饰的方法。由于java的每个对象都有一个内置锁,当用此关键字修饰方法时,内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。
?代码如:?
? ? public synchronized void save(){}
? ?注: synchronized关键字也可以修饰静态方法,此时如果调用该静态方法,将会锁住整个类
2)同步代码块?即有synchronized关键字修饰的语句块。?被该关键字修饰的语句块会自动被加上内置锁,从而实现同步
?代码如:?
? ? synchronized(object){?
? ? }
注:同步是一种高开销的操作,因此应该尽量减少同步的内容通常没有必要同步整个方法,使用synchronized代码块同步关键代码即可。?
说好拿到offer就来牛客发面经,实现承诺一面:
1.说说C语言中free和malloc区别
不知道。我不是学C的。
2.你知道基数排序么?
忘了,知道计数。
(这时候心想玩了,连续2个问题都不会,还玩个P?)
3.说说什么是内存溢出和内存泄露
内存溢出:介绍JVM中7个区域,然后把每个区域可能造成内存的溢出的情况说明
内存泄露:介绍GC 和GC Root不正常引用。
4.看来你对JVM蛮熟悉的啊,那你说说JAVA怎么分配直接内存?
A:JAVA不能直接分配内存吧?
Q:我说是分配直接内存不是直接分配内存。
A:是NIO类的直接内存么?
Q:是的。
A:有点不记得了,能提示下么?
Q:sun的一个包。
A:我想起来了,sun.misc.Unsafe类,那个要通过反射获取吧。平常没怎么用过。
Q:不用反射
A:我咋记得要。
Q:不用的,你再回去看看看(面试官记错,后面他自己纠正错误了)
A:好吧。
5.介绍下NIO
6.能介绍下mybatis的原理么?
从configuration类说起,然后MapperStatement,然后SqlNode解析,然后连接池,然后resultMap映射,balala说了10分钟。
7.网络方面熟悉么?
A:熟悉
Q:那说说TCP/IP 三次握手
8.说说http,tcp,udp之间关系和区别。
9.说说浏览器访问,经历了怎样的过程。
二面、
1.讲讲spring?IOC原理以及生命周期。?2.讲讲mybatis的连接池。?3.讲讲IO里面的常见类,字节流字符流。?4.讲讲NIO。?5.讲讲tomcat和你做的httpServer.?6.你是通过哪些途径学习这些技术。?7.你是否有想过把mybatis实现成分布式吗?
8.java的基础类型和字节大小。
?预约的时间是下午4点30分到5点15分的时间段,天气比较闷热,算好时间,下午2点半从学校出发,3点50到达面试酒店,本想买瓶水,想想阿里这么大个公司,面试应该会给我们发瓶水的吧,于是我就没买,事实证明我想多了,没有!签完到去一个厅里面等候,左看看右看看,真没有水!人挺少的,没过几分钟,3点55分,叫到我的号去某某位置上面试,说好的4点半呢,人和人之间这么点信任都没有了吗?于是我气还没喘匀就去到面试的大厅了,,到了一个面试官跟前,坐下来,把我的简历给了他,他边看边让我自我介绍。?一面:整整70分钟!(说好的45分钟呢?人和人之间这点信任都没有了吗?)?1、问:你把java内存模型的架构给我画一下吧??我: 迟疑了一下,心想,JMM这玩意儿有架构图吗?这可怎么画。面试官看我迟疑,说,那你不画,先说一说吧,我就跟他说了由于什么指令重排序,处理器缓存什么的,不同的系统或者平台有不同的内存模型,使得相同的java程序在不同的处理器架构下的表现不一致啊,java内存模型就是为了在不同的处理器架构和平台下给java程序员提供一致性内存访问的保证的。本以为后面要问到volatile的内存语义,内存屏障,happens-before之类的,没想到面试官来了一句:你完全说错了,你说的这个是java的跨平台特性,不是内存模型,然后说内存模型是什么什么堆、栈之类的。?于是我就懵了,我就想到了原来面试官理解的内存模型就是我理解的java运行时数据区域(程序计数器,虚拟机栈,本地方法栈、java堆,方法区)。我也不敢跟面试官多争论,简单地表达了一下我的观点,然后他就接着问我,那你说说java是如何实现跨平台的。?2、问:说一下HashMap是如何实现的吧?我:就先画了一下结构
您可能关注的文档
最近下载
- 《工会基础知识》考试题库资料300题(含答案).pdf VIP
- 2021年事业单位工会系统招聘考试《工会基础知识》真题库及答案.pdf VIP
- 急性肺栓塞诊断与治疗指南 生活科普.pdf VIP
- 柴油泄漏应急预案演练.docx VIP
- 《可爱的中国》节选 Beloved China (Excerpt)-来源:英语世界(第2021010期)-商务印书馆有限公司.pdf VIP
- 宋词概述详解.ppt
- 胆管癌护理疑难病例讨论ppt.pptx
- 【2024】大象版科学五年级上册每课教学反思(带目录) .pdf VIP
- 大象版科学五年级上册知识点梳理总结 .pdf VIP
- 2022大象版(2017)科学五年级上册每课教学反思(附目录).docx VIP
文档评论(0)