目录
一、背景
最近面试了腾讯技术岗,一面和二面问了一些问题,下面给大家分享一下,有些题目是我根据自己的情况回答的,可以参考一下,小伙伴也可以试着自己回答一下。
二、一面面试题
自我介绍一下?
我叫....,负责什么什么项目,主要做什么工作,bababa.........
看简历上写着使用过poi操作过excel,那么poi对于公式是如何操作的?
正确答案应该是下面的代码,创建一个单元格,设置单元格类型为公式,最后设置公式值。但是没想到怎么说,没回答上来。
cell = row.createCell(2);
cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
cell.setCellFormula("SUM(C2:C3)");
简历上写着做过文件拆分,介绍一下文件拆分怎么实现的?
我是通过将大文件流放到BufferedReader里面,根据参数splitSize计算需要拆分成几个小文件,需要几个文件,我们就创建几个,放到list集合里,一行一行遍历源文件,第一行的内容所以文件都写入,除第一行外的内容,随机写入创建的小文件里面。最后把所有的小文件关流。 参考:java实现csv大文件拆分,每个小文件都有标题行
线程和进程的区别?
根本区别:进程是并发执行的程序在执行过程中分配和管理资源的基本单位,线程是任务调度和执行的基本单位。一个进程可以有多个线程。
地址空间:进程有自己独立的地址空间,线程没有自己独立的地址空间,同一进程的线程共享本进程的地址空间。
资源拥有:进程之间的资源是独立的,同一进程内的线程共享本进程的资源。
执行过程:每个独立的进程有一个程序运行的入口、顺序执行序列和程序入口,但是线程不能独立运行,必须依存在应用程序中。
系统开销:进程执行开销大,线程执行开销小。
创建一个进程的话需要分配什么资源?
需要分配包括用于存放程序正文、数据的磁盘和内存地址空间,以及在运行时所需要的I/O设备,已打开的文件,信号量等。
进程之间是怎么通信的?
(1)、匿名管道通信
(2)、高级通道通信
(3)、有名管道通信
(4)、消息队列通信
(5)、信号量通信
(6)、信号
(7)、共享内存通信
(8)、套接字(Socket)通信
看你简历上写作jgit进行版本控制,介绍一下这个项目?
jgit是引入的一个maven依赖,当实施人员在管理台修改配置文件时,点击保存通过jgit模拟git命令提交到远程git仓库,将修改的这一版保存下来,详情请查看:通过jgit初始化本地仓库,与远程库建立连接
垃圾回收了解过吗?
了解过,我主要回答了新生代有Eden区,Survivor1区,Survivor2区,比例是8:1:1,大对象会直接保存在老年区,大家可以参考:咱们从头到尾说一次 Java 垃圾回收 - 知乎
什么时候会触发full gc?
(1)老年代空间不足时会自动触发
(2)手动调用了System.gc();
ArrayList 和LinkedList的区别?
ArrayList基于动态数组实现的非线程安全的集合;LinkedList基于链表实现的非线程安全的集合。
数组的底层实现是什么?
这个问题当时没有回答上来,查了一下资料,我的理解就是Array的一些方法,比如add,get,set方法是怎么实现的吧
你有什么问题要问的?
问了一下自己想要问的,入职以后会在哪个部门工作等等吧
三、二面面试题
自我介绍
我叫....,负责什么什么项目,主要做什么工作,bababa.........
手写一道算法题:
(1)一个字符串 1234,如何转换为数字1234.
(2)假如是不固定位数的一个字符串如何转换为数字
public class StringTest {
public static void main(String[] args) {
String string = "1234";
char[] chars = string.toCharArray();
int sum = 0;
for (int i = 0; i < chars.length; i++) {
int pow = (int) Math.pow(10, chars.length - i - 1);
int aChar = (int) chars[i] - 48;
sum = sum + (aChar * pow);
}
System.out.println(sum);
}
}
线程锁有哪些?
回答了synchronized锁, ReentrantLock锁,synchronized锁是重量级锁,ReentrantLock可重入锁
多线程处理变量会有什么问题,怎么解决?
会出现线程安全性,多个线程同时操作一个变量,会出现变量不准确的情况,每次只有一个线程可以操作变量,对操作变量的方法加锁,每个线程只有获取锁后才能操作。
操作系统进程相关的了解过吗
这个我确实不懂,就没有怎么说,大家可以自行学习。
你有什么问题要问的?
问了入职后的一些工作情况,我会在哪个部门工作。
四、总结
以上就是个人面试情况的一些总结,能力目前比较有限,有一些问题回答的不是很好,大家可以参考一下,自己查漏补缺复习一下,希望对小伙伴有帮助,觉得不错的话,欢迎微信搜索关注java基础笔记,后面会不断更新相关知识,大家一起进步。
五、参考资料
进程与线程的区别?
https://jingyan.baidu.com/article/11c17a2cf213eff446e39d1d.html
操作系统给进程分配资源,具体是哪些资源呢
进程间8种通信方式详解
进程间8种通信方式详解_在努力!-CSDN博客_进程间通信方式
java集合之List底层实现原理