JAVA面经—23届秋招面经总结----(四)
中兴 9.22一面(软件开发工程师):
1.自我介绍
2.在学校成绩怎么样?有没有拿过奖学金?
3.介绍一下在学校期间做的项目
4.多线程和多进程的区别?
- 线程是进程的子集,一个进程可能由多个线程组成;
- 多进程的数据是分开的,共享复杂,需要用IPC,但同步简单;
- 多线程共享进程数据,共享简单,但同步复杂。
5.项目中使用多线程的案例
- 两个用户比如经理和管理员同时对订单数量进行修改,用到了多线程,对两步修改操作进行同步,保证不会出现数据不安全,使用同步锁,来解决线程安全问题。
- tomcat服务器内部采用的就是多线程,上百个客户端访问同一个web应用,tomcat接入后都是把后续的处理扔给一个新的线程来处理,这个新的线程最后调用到我们的servlet程序,比如doGet或者doPost方法。如果不采用多线程机制,上百个人同时访问一个web应用的时候,tomcat就得排队串行处理了,那样客户端根本是无法忍受那种访问速度的。
6.Mysql用过哪些说一说
- 三大范式;
- 常用数据类型
- 增删改查方法
- 索引
7.JVM垃圾回收机制说一说
- java中有四种垃圾回收算法,分别是标记清除法、标记整理法、复制算法、分代收集算法。
- 主要对分代收集算法进行了详细地描述,分代即分为:Young区和Old区,Young区中的Elden区满时,触发MinorGC;Old区满时,触发FullGC。
8.什么是字节码?
- Java之所以可以“一次编译,到处运行”,一是因为JVM针对各种操作系统、平台都进行了定制,二是因为无论在什么平台,都可以编译生成固定格式的字节码(.class文件)供JVM使用。
- 字节码文件由十六进制值组成,而JVM以两个十六进制值为一组,即以字节为单位进行读取。在Java中一般是用javac命令编译源代码为字节码文件,
9.学过哪些算法?
冒泡、快排。
10.手写冒泡排序
IDEA卡住了,半天没打开。。。就说了一下大概的思路,以及问了两层for循环之间的关系。
11.交换两个数的方法
-
临时变量(最常用);
-
减法,不用临时变量:
a=1,b=2;
a=a+b;//a=3
b=a-b;//b=1
a=a-b;//a=2
- 异或运算(速度最快)
a = a ^ b;//a=3
b = a ^ b;//b=1
a = a ^ b;//a=2
12.期望薪资是多少?
15k
中兴 9.27二面(软件开发工程师):
15分钟,纯闲聊~