准备阶段
基础的java基础知识
对java基础要有深入的理解,例如IO,反射,线程这些要讲出详细的描述,不能一句话就描述一下基本的概念。
就比如线程,对方一问到线程,可以从几个方面去回答他,线程安全性,生命周期,线程池(包括线程池的参数),创建线程的几种方式。
线程安全性又可以引出volatile和synchronized,造成死锁,又可以将死锁的条件,怎么解决死锁。
讲的越多,表现出自己的实力。
2024年 Java 面试八股文(20w字)_java面试必备八股文-优快云博客
这里八股文都要背下来。
数据库知识
对MYSQL,Redis要精通,一谈到MySQL,我们可以回答出事务(事务的特性,隔离级别,并发问题),索引(索引的种类,索引的优化,索引失效),数据库设计原则(规范化,反规范化),动态SQL。这个一套流程出来,回答了十几分钟。
熟悉常用的框架
对Spring,SpringMVC,SpringSecurity,Springboot,SpringCloud,Mybatis,MybatisPlus。
例如Spring是一个开源框架,为简化企业级应用开发而生。Spring可以使简单的JavaBean实现以前只有EJB才能实现的功能。Spring是一个IOC和AOP容器框架。
IOC:在传统的Java开发模式中,当我们需要一个对象是,一般都是自己new或者getInstance等直接或间接获取一个对象。而在Spring开发模式中,Spring容器使用了工厂模式为我们创建所需要的对象,不需要我们直接创建,直接调用Spring提供的对象就可以了,这是控制反转的思想。
AOP:面向切面编程,在OOP思想中,我们将事务纵向抽象成一个一个的对象。而在AOP思想中,我们将一个一个对象的某个共同属性看成一个切面,对这个切面进行一些例如权限控制,事务管理,记录日志,异常处理等公共操作处理的过程就是面向切面的思想。AOP的底层是动态代理,对于接口使用jdk动态代理,对于类采用cglib动态代理。
切面:这些对象的共同属性
通知:增强式事务
切入点:方法
连接点:方法调用
织入:不改变当前代码,对代码进行增强
要讲的够多,而且这些都要整理出逻辑性。
对设计模式了解,举出几个应用的例子
代理模式------AOP的底层jdk动态代理和cglib动态代理
单例模式------Spring配置文件中Bean默认为单例模式。
模版方法模式------解决代码重复的问题
工厂模式------BeanFactory创建新的对象。
对自己的项目描述,实现的功能要清晰,流程要讲的明白
对自己的项目有一个清晰度了解。比如面试官问我的一个问题,这个文件上传是怎么上传的?
前端部分:
允许用户选择文件并提交,
这是一个form表单
enctype属性设置为multipart/form-data
methed属性设置为post
action属性设置为目标的URL 我这里是v1/upload
还有一个提交按钮,提交表单的内容
后端部分:
获取到这个文件
1、获取文件的名字
String fileOriginName = file.getOriginalFilename();
2、截取文件的后缀名
String suffix = fileOriginName.substring(fileOriginName.lastIndexOf('.'));
3、设置新文件名为uuid+文件后缀名
String newFileName = UUID.randomUUID()+suffix
4、自定义一个时间文件格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); String datePath = sdf.format(new Date());
5、创建文件路径
File fileDir = new File(FILE_PATH+datePath); if(!fileDir.exists()){ fileDir.mkdirs(); } //定义上传的位置 String filePutPath = FILE_PATH+datePath+newFileName;
6、上传文件
file.transferTo(new File(filePutPath));
从前端讲到后端,要求逻辑性强,重点在于能够清晰地展示你的经验和解决问题的能力。
面试阶段
心态调整
首先了解你要面试的公司的基本情况,积极地态度去回答面试官的问题,接受自己的面试结果,注意一些小细节,坐姿,着装,礼貌。
沟通表达技巧
条理清晰,逻辑性强,发音准确,观察面试官的面部表情,把自己的知识理清楚了在回答。
对方问问题,回答的要详细
结构化回答,一层一层的讲究逻辑性。
面试后
学会总结自己的面试
学会总结自己的面试经验,每当面试完成,第一时间去寻找面试官问题的答案,总结背下来。