![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
高级JAVA工程师面试宝典
南山浪子
这个作者很懒,什么都没留下…
展开
-
JAVA高级工程师面试宝典——基础部分(一)
一、面试题基础总结1.JVM结构原理、GC工作机制详解答:类装载器(ClassLoader)(用来装载.class文件)执行引擎(执行字节码,或者执行本地方法)运行时数据区(方法区、堆、java栈、PC寄存器、本地方法栈)说到GC,记住两点:1、GC是负责回收所有无任何引用对象的内存空间。 注意:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,2、GC回收...原创 2019-03-07 19:18:00 · 4793 阅读 · 1 评论 -
JAVA高级工程师面试宝典——线程、设计模式、缓存方面(二)
二、线程、设计模式、缓存方面1.SimpleDataFormat是非线程安全的,如何更好的使用而避免风险呢答:该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。...原创 2019-03-07 19:19:58 · 1476 阅读 · 1 评论 -
JAVA高级工程师面试宝典——框架方面问题(三)
三、三大框架方面问题1.Spring 事务的隔离性,并说说每个隔离性的区别答:事务特性(4种):原子性 (atomicity):强调事务的不可分割.一致性 (consistency):事务的执行的前后数据的完整性保持一致.隔离性 (isolation):一个事务执行的过程中,不应该受到其他事务的干扰持久性(durability) :事务一旦结束,数据就持久到数据库事务隔...原创 2019-03-07 19:21:24 · 1235 阅读 · 0 评论 -
JAVA高级工程师面试宝典——负载均衡、集群相关(四)
四、负载均衡、集群相关1.项目中为何要用缓存?如何理解nginx + tomcat + redis 集群缓存?答1:最直接的表现就是减轻数据库的压力。避免因为数据读取频繁或过大而影响数据库性能,降低程序宕机的可能性答2:nginx常用做静态内容服务和代理服务器,直面外来请求转发给后面的应用服务。nginx本身也能做缓存,比如静态页面的缓存什么的。而tomcat是应用服务器,处理JAVA...原创 2019-03-07 19:22:34 · 2002 阅读 · 0 评论 -
JAVA高级工程师面试宝典——项目优化相关(五)
五、项目优化相关1.日常项目中,如果你接手,你准备从哪些方面调优?答:这个呢首先是了解哪些需要优化,需要优化肯定是项目性能遭遇瓶颈或者猜测即将遭遇了,我们才会去考虑优化。那么怎么优化?a、扩容,扩容的理解,就是扩充服务器并行处理的能力,简单来说就是加服务器,增加处理请求的能力,例如增加nginx 、tomcat等应用服务器的个数,或者物理服务器的个数,还有加大服务器带宽等等,这里考虑...原创 2019-03-07 19:23:41 · 1639 阅读 · 0 评论 -
JAVA高级工程师面试宝典——并发和安全方面(六)
六、并发和安全方面1.说说线程安全的几种实现方式?答:什么是线程安全? 我的理解是这样的,一个对象被多个线程同时访问,还能保持其内部属性的顺序性及同步性,则认定为线程安全。实现线程安全的三种方式:被volatile、synchronized等关键字修饰,或者使用java.util.concurrent下面的类库。(1)从而我们可以看出volatile虽然具有可见性但是并不能保证原子性。...原创 2019-03-07 19:24:45 · 882 阅读 · 1 评论 -
JAVA高级工程师面试宝典——数据库方面(七)
七、数据库方面1.mysql查询字段区不区分大小写?答:不区分,哪怕值也不区分2.简单说说数据库集群和负载均衡、分布式答:3.存储过程的结构和优点答:结构createprocproc_find_stu(@startIdint, @endIdint)asselect*fromstudent whereid between@...原创 2019-03-07 19:25:47 · 772 阅读 · 0 评论 -
JAVA高级工程师面试宝典——Java底层(八)
八、Java底层基础题1.SpringMVC的原理以及返回数据如何渲染到jsp/html上?答:Spring MVC的核心就是DispatcherServlet , 一个请求经过DispatcherServlet ,转发给HandlerMapping ,然后经反射,对应 Controller及其里面方法的@RequestMapping地址,最后经ModelAndView和ViewRes...原创 2019-03-08 16:32:33 · 945 阅读 · 0 评论 -
JAVA高级工程师面试宝典——设计方案相关(九)
九、设计方案相关1.你的接口服务数据被人截包了,你如何防止数据恶意提交?答:我们可以在接口传输参数里面设置一个业务编号,这个编号用来区分是否重复提交。这样即使数据被抓包了,对方也无法区分每个字段你的含义,这时,这个业务编号的作用就来了2.假设服务器经常宕机,你从哪些方面去排查问题?答:排查思路:分析出内存泄露模块,分析出性能瓶颈,调优JVM使用工具:jconsole...原创 2019-03-08 16:32:41 · 833 阅读 · 0 评论