- 自我介绍
- Q:做过的项目主要用什么语言?
A:java - Q:讲解一下Java内存和GC
A:讲下JVM,GC程序计数法、可达性分析、标记清除、复制算法(被打断,可能八股文背起来别人也听够了~) - Q:老年代保证良好性能、STP时间短的前提下,应该采用哪个垃圾收集算法(垃圾收集器)
A:serial-old比较关注STP的时间
Q:Serial-old不是单线程吗?
A:可以选择Parral-old,这是一个多线程垃圾收集器 - Q:程序运行卡顿,我怀疑是Full GC的问题,应该怎样排查问题呢?
A:java自带一个指令工具可以查看minor gc和full gc的次数(忘了是啥指令了),然后可以使用相关的JVM调参指令来改变老年代和年轻代大小,减少full gc次数(忘了啥指令了,尴尬) - Q:minor gc、full gc、major gc分别指什么,有什么区别?
A:minor gc在年轻代eden区满后触发,对年轻代进行垃圾回收,full gc在老年代空间满后触发,对整个heap进行回收,major gc的说法不一,有的说法将其与full gc等同,也有单指老年代的垃圾回收 - Q:对Linux熟悉吗?从一个linux主机复制文件到另一个linux主机的命令是什么?
A:用过,但是忘了 - Q:一个主机想要连接另一个主机的命令呢?
A:SSH - Q:我有一个日志文件,想要查找某些内容,应该用什么命令?
A:grep pattern target - Q:我想从一个文件夹下面所有的文件中查找某个内容,应该怎么操作?
A:使用管道操作符,前面接find指令,找出所有的文件,输入到管道后面的grep命令中 - Q:用过Git吗?可以讲一下你的merge操作都是用的什么命令吗?
A:用过,但我的merge操作一个都是在Github网站上进行合并的,没用相关的命令操作 - Q:那你可以讲一下,git中的状态切换用什么命令吗?比如我处在commit的状态,我应该怎么退出呢?
A:忘了,这个命令用过,但也用的比较少,我一般都是直接关掉重启一个git窗口(尴尬) - Q:你用过redis吗?我想要保证一个高性能的redis,讲一下我可以怎么对它进行配置?
A:首先要分配足够的空间,其次对于一些hot key可以考虑启用二级缓存,然后对于key存储时的过期时间可以考虑加一些随机项,避免缓存雪崩的问题(其实真不知道,有点半编半蒙了) - Q:你了解过设计模式,比如工厂模式等等?
A:了解过一些,例如单例模式,监听者模式,等等,但是了解的也不多 - Q:可以讲一下这个监听者模式吗?它主要解决什么问题?
A:主要解决一个阻塞的问题。他指的是使用一个监听者,类似于Android里的listener,当被监听对象发生相应的事件的时候,会触发listener,回调相应的函数,监听期间主线程可以做别的事情 - Java类的加载过程可以讲一下吗?
A:(1)编译(2)加载:classloader(3)链接:a. 校验 b.准备 c.解析(4)初始化 - Q:可以讲一下Spring bean的创建过程吗?
A:balabala - Q:spring默认的bean的请求模式是单例模式,我想他变成其他模式,应该怎么配置?
A:在XML文件里,可以把这个bean模式的属性变成prototype,这样针对每个bean请求都会返回一个bean实例(确实没有实操过,被面试官提醒spring没有xml文件) - Q:给一个IP地址的String数组,将ip转为整数,如“0.0.1.0”被转为256
A:核心问题是整数转二进制,使用移位操作,实现的时候发现split(".")无法处理,考虑到了可能是转义的问题。尝试使用"\."、"/."都失败了,这里忘了windows转义可以用"\\",其实直接把.换成其他字符,先跑出结果就好了,结果我怕面试官等久了,直接问他着急不,不着急我再改改,着急我就先讲讲代码,结果他让我讲代码了==。(面完发现想的复杂了,可以直接不需要转二进制) - Q:如何查看一个进程的cpu占用率?
- A:不知道
- 补充:还问过一些有没有用过redis集群的这种问题,回答没有用过,就揭过去了
- 总结:发现了许多短板,例如JVM调优、Linux命令、Git命令、Redis相关、设计模式等等
文章图片
【mybatis|百度智能业务部java实习一面】学习更多JAVA知识与技巧,关注与私信博主(888)!
热爱学习和渴望进阶的小伙伴,各种JAVA学习路线、笔记、面试题,免费分享!
推荐阅读
- java|Bean 生命周期详解
- java|Spring boot——Actuator 详解
- spring|Spring如何解决循环依赖问题
- java|JAVA Stream的collect用法与原理(详解)
- spring|Spring Cloud OpenFeign 使用介绍
- java|SpringCloud OpenFeign的功能与使用
- java|SpringCloud OpenFeign + Nacos
- MyBatis|mybatis-config.xml-配置文件详解
- 雷达|【雷达】基于圆拟合(circfit)算法抑制雷达信号处理中的直流分量附matlab代码