当时场景,为了适应面试,跑了几家容易进面试的招聘会,消除下紧张的心态
华资软件 一面技术面+hr交叉面(群面)
自我介绍
hr:
你说你从大二开始自学,为什么选择java,你对java有什么看法?
你的大学成就怎么看?
你可以讲下你最有感触的项目?
讲下你的学习之路,你遇到的最大困难?
你有没有跟科班一起做过项目?
你觉得成为架构师你得怎么做?
技术面:
1.String和StringBuffer的区别?(平时自己读错了这个,一时没听清他说哪个,汗)
两个都是final类,不能被子类继承。
1.StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。
2. StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。
String使用 + 操作符添加字符,底层是通过转换成StringBuffer或者StringBuilder
3. StringBuffer是线程安全的,在多线程程序中也可以很方便的进行使用,但是程序的执行效率相对来说就要稍微慢一些。
额外加一个:
String,StringBuffer与StringBuilder的区别??
https://blog.csdn.net/rmn190/article/details/1492013
String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)
String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String
2.jvm的内存管理是怎样的?(详细的介绍了内存的分区以及作用,刚想讲垃圾收集算法和垃圾的收集器的时候,他说讲的很好了,剩下的也没问题,汗 ̄^ ̄゜)
3.你说你熟悉常用的linux命令,那如何查看内存,如何查看日志,如何查看一个线程的详细信息?(有一个没答出来,好久没写忘了)
查看内存: cat /proc/meminfo, free -lm
如何查看日志:tail,head,cat tail -f exmaple.log
线程的详细信息 1、top -H
查看进程 top ps
4.快速排序讲一下思路(快排形式很多,认准基准点来说。)
5.MySQL的select默认是升序还是降序?
6.你对于新生代的理解。
还有些忘了。问得不多。
剩下一堆个人职责方向的问题,如何学习?如何成长为你想要的目标,对公司有什么理解,对公司java开发有什么疑问?还问了我微信多少好友?(可能看我是个怎样的人)。
我质问他们我有好多东西他们可以问的,他说从你讲的可以看出你学得很扎实,体系已经很完善,对我很满意。叫我一个星期后等通知,因为他们得所有招聘会完了才做决定。嗯……(反正对这所公司的作用就是多面试下的,进不进都随意。)(面试+男hr全场微笑,今天获得的面试技巧,多面面,语速降下来,坐直,冷静的思考再回答。)
我发现java方向的超级大几率问题:
jvm必考,java常用容器类(10个左右),简历写的一定会问到,所以该准备的还是要准备,诚实回答过程中交流一定是氛围很好的。加:看过一些架构师的学习视频,真想说面试都往这方面的技术问!!
cat
tail -f
日 志 文 件 说 明
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
系统:
echo $PATH # 显示系统变量的信息
# uname -a # 查看内核/操作系统/CPU信息
# cat /etc/issue
# cat /etc/redhat-release # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
资源:
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh <目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
磁盘和分区:
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况
网络:
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息
进程:
# ps -ef # 查看所有进程
# top # 实时显示进程状态(另一篇文章里面有详细的介绍)
用户:
# w # 查看活动用户
# id <用户名> # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务
服务:
# chkconfig –list # 列出所有系统服务
# chkconfig –list | grep on # 列出所有启动的系统服务
程序:
# rpm -qa # 查看所有安装的软件包