首页 > 笔经面经 > 深圳市法本信息技术股份有限公司Java工程师社招(面经一)

深圳市法本信息技术股份有限公司Java工程师社招(面经一)

头像
KamiaMirage
编辑于 2019-12-11 08:48:30 APP内打开
赞 5 | 收藏 10 | 回复3 | 浏览5281
招聘简章的技术栈要求:
  • 具备扎实的Java语言基础,对JVM原理有一定的了解。
  • 熟悉多种设计模式,理解IO、多线程、网络通信、缓存等技术。
  • 熟悉Spring Boot、Spring Cloud框架。
  • 熟悉MySQL等数据库,能够进行性能调优。
  • 熟悉Elasticsearch搜索引擎。
  • 熟悉Linux操作系统常用命令。
  • 熟悉Docker等容器技术。
  1. java的加载过程?-----------主要有以下阶段:加载(将class、zip中的jar或war包等文件读取生成一个代表该类的java.lang.Class对象作为方法区这个类的各种数据入口)——>验证(确保Class文件符合虚拟机的要求)——>准备(为类变量分配内存并设置初始值)——>解析(虚拟机将常量池中的符号引用替换为直接引用的过程)——>初始化(执行类中定义的Java程序代码)——>使用(执行类中的构造器)——>卸载
  2. Java垃圾回收机制?---------Java虚拟机运行时数据某个区域达到阀值就会激发JVM对已经死亡的对象进行垃圾回收,对于存活的对象进行状态的转移(新生代->老年代……)
  3. 如果判断一个对象是否存活?--------引用计数法,一个对象有一个引用进行关联就加1,断开引用即减1,直到计数器为0表示没有任何关联引用。可达性分析法,通过一系列的GC roots对象作为起点搜索,如果一个对象和GCroots之间没有可达路径,而且经过了两次标记后仍然为不可达,则面临回收。
  4. Java中的垃圾收集方法有哪些?--------标记清除法,复制算法,标记整理法,分代收集法……
  5. HTTP协议HTTPS原理?------HTTP无状态协议,地址解析(客户端请求路径:协议名、主机名IP、端口、对象路径)——封装HTTP——封装TCP(三次握手)——客户端发送——服务器响应——关闭TCP连接。HTTPS安全机制,加入了证书验证……具体的我也不太清楚。
  6. 线程池的作用?-----------通过重复利用已创建的线程降低创建销毁造成的系统资源内耗。任务到达时,不需要等待线程的创建直接可以执行,提高执行效率。
  7. 如何创建线程池?----------Executors的四个方法:FixedThreadPool/SingleThreadExecutor/CachedThreadPool/ScheduledThreadPool,但允许请求的队列长度和允许创建的线程数量导致OOM。
  8. 如何规避上面的OOM?----------ThreadPoolExecutor的构造方法创建线程池。
  9. Atomic类的理解?-----------JUC下的atomic包下,基本类型/数组类型/引用类型原子类等原子类,并发情况下不用对共享数据进行加锁也可以实现线程安全。底层采用的是CAS和volatile以及native方法来保证原子操作。
  10. AQS的原理和了解?---------JUC的lock包下,用来构建锁和同步器的操作。如果请求的共享资源属于空闲状态,则该线程锁定并操作,其他线程阻塞。对资源有独占和共享两种方式,分别有对应的类去实现。
  11. 你了解哪些设计模式,手写一下设计模式的伪代码?-----------单例、工厂等模式……略。
  12. SpringBoot核心配置文件有哪些,区别是什么?--------application.properties或者yml结尾的配置,没多大的区别,无非是格式不同……
  13. Springboot的核心注解组成?--------EnableAutoConfiguration注解能够让Springboot根据依赖jar包自动配置Tomcat或者Springmvc。 SpringApplication在主方法所在的类中做调用,开始程序的执行。
  14. springboot的监视器的理解?---------没了解过(略)
  15. 项目等一系列问题,以及生产环境中的JVM调优?---------略

总结:线程并发相关问题比较多,以及springboot的一些了解。


3条回帖

回帖
加载中...
话题 回帖

相关热帖

笔经面经近期热帖

近期精华帖

热门推荐