感觉这个公司虽然不大,问的问题倒不是很水。问题虽然不深,但是涉及面比较广,问题也都是很基础的题目。面试官水平还可以,在面试的时候也会引导去回答问题,最后还提出了建议。还是挺不错的面试体验的。
- C语言和Java感觉有什么不同?怎么理解面向对象?√
- Java对象的管理是什么样的?Java栈中存放什么对象(存放基本数据类型和引用变量)√
- Java的垃圾回收的过程。√ Java怎么手动触发GC×
System.gc();
Java的GC是由JVM自行调动的,在需要的时候才执行,上面的指令只是告诉JVM尽快GC一次,但不会立即执行GC。 - 什么是内存泄漏×
内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。
- Java怎么防止内存泄漏?×
- List、Map等使用完后赋值为null
- 连接、流等使用完后close
- 线程池使用完后shutdown
- 由于静态变量会一直存在于内存(方法区),所以使用静态对象需谨慎。
- 什么对象会被放到老年代中?×
- 经历一定的minorGC依然存活的对象(15岁)
- survivor区中存放不下的对象.如果在Survivor空间中相同年龄的所有对象大小的总和大于Survivor空间的一半,年龄大于或等于年龄的对象就可以直接进入老年代
- 新生成的大对象(需要大量连续内存空间的java对象),比如很长的字符串和数组。
- String和StringBuilder的区别 √
- Hashcode相同的对象equals一定为true吗 √
- 如何反转一个字符串 √
- 抽象类和普通类的区别,和接口的区别 √
- Math.round(-1.5)是多少?×(是-1不是-1.0,long类型)
- TCP和UDP的区别以及使用场景。√
- TCP为什么需要三次握手?√
- 进程和线程的区别 √
- Java中创建线程的方式 √
- 什么是守护进程?守护线程什么时候结束?守护进程的作用是什么?
守护进程(daemon)是一类在后台运行的特殊进程,用于执行特定的系统任务。很多守护进程在系统引导的时候启动,并且一直运行直到系统关闭。另一些只在需要的时候才启动,完成任务后就自动结束。守护进程可以独立于终端提供系统服务。 - 线程有哪几种状态?√
- 了解IO模型吗,NIO、BIO、AIO。Tomcat用的是哪种IO方式?
- Mysql引擎了解几种,InnoDB索引是怎么存储的?
- 表中有两个字段,id和name,name没有加索引。如果
select * from table where name=x
会加哪种锁?
InnoDB只有在通过索引条件检索数据时使用行级锁,否则使用表锁 - SpringBoot启动时都做了什么?、
- Java中保留字段有哪些?
保留字(Reserve Word):即它们在Java现有版本中没有特殊含义,以后版本可能会作为有特殊含义的词。true,false,const,goto,null
- RabbitMq的使用场景和原理。
- 秒杀系统中消息队列如果出现数据丢失了怎么办?怎么保证稳定性?
- 算法题:找出一个字符串中第一个只出现一次的字符。√