前言
昨天(2020-07-02)一面北京捷通华声,面试官是个帅气的小哥哥,一头浓密的秀发,一排卷曲的刘海,一……
这应该算是我入职2019年以来第一次面试没过吧。总结一下面试问到的几个问题。
问题
面试官:你知道java有几种数据类型,分别是哪些?
我:……这么简单的问题,好吧答上来了
面试官:Integer熟悉吗?说说它的缓存机制?
我:经常用啊,比如Integer.parseInt()用来处理字符串操作,计算超大整数和以及超大整数积都特别香啊。它不就int的包装类吗,有一个自动装箱intValue()和拆箱ValueOf()的过程啊,什么缓存原理,不太清楚。。。。。这里其实就没答上来,后来一查资料,原来它是在说-128~127的 范围在常量池的事!……好吧,学艺不精,怨不得人。
面试官:你能说说HashMap的底层原理吗?
我:这太简单了,然后我从jdk7一直说到jdk8……
面试官:线程池有了解吗?
我:(暗喜,下午刚好补了一课…)有的,线程池最主要的类就是ThreadPoolExecutor,它有7个参数,分别是…,常用的创建线程池是使用Executors类,它有4种创建线程池的方法,分别是……其实,他们底层是在调用ThreadPoolExecutor的构造方法,传入的参数分别是……他们的不同是…我再说说线程池的工作流程,当提交一个线程任务时,。。。!面试官:好了,可以了
面试官:中间件你有了解吗?
我:redis 和 ES略懂略懂
面试官:讲讲他们的区别
我:功能上,redis是缓存……ES主要是在搜索这块……(完了,学的不深!)
面试官:持久层框架有了解吗?
我:hibernate和Mybatis应该算吧,但是hibernate现在一般不用了,过去那套ssh已经那啥,现在主流是ssm,所以我对hibernate了解不深,就说说Mybatis吧。
面试官:那问个简单的,# 和 $ 占位符区别是什么?实现的原理?
我:(完了!不熟,随便讲两句) #是取值,取后面对应字符串的值,可以防止sql注入,一般开发我就用这个;$是字符串拼接,但是防不住SQL注入;至于底层原理的话,我觉得应该和jdbc中的Statement (不能防止sql注入)和 PreparedStatement(可以防止sql注入)有关,#是采用一种预编译的方式防止了sql注入。
面试官:讲讲项目吧,你都做过哪些项目?
我:这一年工作,做了四个项目,……
面试官:前端框架有了解吗?
我:(略懂略懂,)我用过Bootstrap 和JQuery,JQuery是对JavaScript的封装,应该也算框架吧。
面试官:Bootstrap是,但是JQuery是类库,不算框架。Vue Node有了解吗?
我:(不会,但是不慌)我主要是做后台开发,学习的重心放在后端的技术上,对这块研究不深,当然,如果是稍微改改,联调的话,还是没问题的。
面试官:我们公司是前后端分离的开发模式,一般分配到哪个模块,就需要负责该模块的前端和后端的开发。
我:(这么坑的公司吗?!)哦,这样吗?那有没有ui设计呀,光自己搞得,虽然能搞,但是很丑咋整?
面试官:(之前一直麻木的小哥哥,微微一笑)设计师,有的……
我:(不想去这家公司了,这么抠,要我搞前后一锅端啊)……node js的话……
面试官:(看了一下表,半个小时过去了)就先到这吧,你有什么想要问我的吗?
我:(浪费了我这么久时间,我mysql这么强,你竟然不问,泄特,不问点干货怎么行)我看招聘信息上说贵公司主要是微服务、分布式这一块,你们平时开发用什么技术?数据量大概是什么级的?
面试官:主要是……一块的业务,一般用SpringBoot、Dubbo……
我:有用SpringCloud吗?
面试官 :我们一般用MQ……
我:行吧,我没什么问题了(一般……)
面试官:行,我们今天的面试就到这。
我:……
(后记:你已被移除群聊……)