2020我的Java面经
笔者是个Java菜鸡混子,连一个Javaweb项目都写不出来。勿喷
一、重庆柳枝科技有限公司
一面 2020年10月9日 15:00 重庆工程学院 六教306
具体流程:自我介绍(1min)=>Java后端基础知识=>前端知识=>项目技术点问答及框架=>职业规划=>结果
1、自我介绍
先做好自我介绍的草稿,笔者没有做任何准备,随机应变吧(这是个坏习惯,后面会改掉的),但是面试完回过头,发现自己的自我介绍不流畅,没有逻辑,不够自信。
2、Java后端基础知识问答:
第一问:&&与&的差异
面试官:说说&&(且)和&(和)有什么区别?
我:&&是条件运算符,&是逻辑运算符。
面试官:没错,但是还有?
我:我想不出来了
面试官:是这样的&&的两个条件,一旦前面的为false就停止了,后一个条件不进行判断;而&的两个条件都会进行判断
我:哦,好熟悉
第二问:说说==与equeals的区别
面试官:说说==与equeals的区别?
我:这个我遇到过,但是记得有点混乱。其中一个只判断值相等,而类型相不相等不判断;而另一个不仅要判断值相等,还要判断类型是否相等。
面试官:不是很对,你基础还需要进行巩固
我:(虚心而尴尬)嗯
第三问:Java文件转变为class文件,class字节文件进入虚拟机是怎么执行的?就是字节码在虚拟机经历了哪些环节?
面试官:Java文件转变为class文件,class字节文件进入虚拟机是怎么执行的?就是字节码在虚拟机经历了哪些环节?提示,先进入静态变量堆?还是方法区的栈?然后呢?
我:这个我不会,跳过吧
面试官:好吧
第四问:数据库设计的三大原则
面试官:数据库的三大原则是什么?
我:(心想好像有个什么原子性,但是不确定,剩下两个就不晓得了)我不知道
面试官:好吧
第五问:你了解设计模式吗?
面试官:你对设计模式了解多少?
我:学校教过一部分,停留在我脑袋里的就是它们的名字,特点什么的不记得了。最熟悉的一个设计模式是单例模式,我只能实现固定实例化一次,但是我看了B站的单例模式的讲解视频,自己真的只了解单例模式很浅显。
面试官:好的。(确认我基础是真的很差,但是人很诚实,有自我判断力,知道自己哪些会?哪些不会?)
3、前端基础知识
第一问:自定义标签库会写吗
面试官:你会写自定义标签吗?
我:(我想html的标签还可以自己定义新标签?很疑惑,没有联想到jsp的标签库,后来与面试官交流才发现,是自己会错意了,面试官问的就是jsp的标签库,我靠)不会。
第二问:前端你自己认为你掌握了哪些?
面试官:前端你自己认为你掌握了哪些?
我:我说我基本掌握主要的html标签和css样式,js也是基本会用,像DOM树只是很浅显的知道一点,但是离熟悉还有很长一段路。jQuery会用,又是也要依靠文档,Ajax不是很会用,但是知道一点。用过bootstrap、layui这两个框架,还不是很熟练。(这里我是实话实说,我不想给自己埋坑)
4、项目技术点问答及框架
面试官:在你众多的项目中,说说你最熟悉的项目,用到了哪些技术?
我:我其实现在写不回来项目,但是最熟悉的功能板块是登陆注册。我在自学的过程中,就是卡在了怎么从数据库将数据调出,在前端以列表的形式展示出来。
面试官:嗯,好吧。其实登录注册模块也不简单,就它你来说说吧。
我:我认为登录模块就是从前端获取用户名和密码,这两个变量加入到sql查询语句,将返回的布尔值结果作为判断登录成功的条件。还可以将登陆升级为单点登录(单点登录,英文缩写SSO)。
面试官:那单点登录的实现原理是什么?你说说呢
我:就是将前端传过来的用户名和密码存入session中,利用session在各处进行登录状态的验证,这个就是单点登录的实现原理。
面试官:你再想想,session不可以跨域哟,要是你打开两个浏览器,你这个session怎么跨浏览器进行单点登录,这个中间需要一个角色,你在想想。
我:难道是jsession。
面试官:不对,jsession也是和session一样不可以跨域,虽然他们都是i唯一的。再想想
我:我想不出来了。
面试官:其实,中间需要一个令牌……(说句实话,我当时也没有听懂面试官的的解释,后来回到寝室和室友沟通,室友大佬给我讲明白了)你还知道freemark框架吗?
我:不知道。
5、职业规划
我直接说了,我想走网络安全,学这个web是打基础。面试官也给了我一些建议和学习方向。
6、结果
由于面试过程给面试官很好的印象,这次面试没有过,但是给了我第二次面试的机会,预计是下周,如果成功了,给我的岗位是网站工程师(偏后端,也要会一点前端和数据库),让我好好熟悉freemark框架和自定义标签库。