第一次Java面试

1.你目前的职业规划?

找一个符合薪资预期并且能够让自己有所发展有所进步的java后端开发工作

2.你掌握了哪些Java技术?

2.1自己当时的回答

spring、springmvc、springboot、mybatis

2.2应该这样回答

javase、javaweb、ssm、mybatis、mybatisplus、redis

3.你有没有工作经验或者项目经历?

3.1自己当时的回答

有项目经历,两个跟着学校实训做的(巴拉巴拉巴拉),一个黑马旅游网(巴拉巴拉巴拉)

3.2应该这样回答

两个实训做的一笔带过,黑马旅游网重点介绍用的技术有:mvc模式、javaweb、redis、nginx
详细介绍:

4.你为什么想要走java方向?

4.1自己当时的回答

一开始打算走c++,但是学校培养偏向java方向

4.2应该这样回答

学校培养偏向java方向

5.说一下spring、springmvc、springboot的区别

5.1自己当时的回答

罗里吧嗦半天没说清楚,说了自己一次学了这三样,再说了springboot对自己来说最大的用处就是逆向工程。

5.2应该这样回答

1.Spring 是一个“引擎”;
2.Spring MVC 是基于Spring的一个 MVC 框架 ;
3.Spring Boot 是基于Spring4的条件注册的一套快速开发整合包

5.3或者这样回答

1.spring是用来简化web开发的
2.springmvc是用来简化servlet的
3.springboot是用来快速构建项目的
4.springmvc和springboot都是基于spring进行开发的工具

6.说一下springboot有哪些配置文件

6.1自己当时的回答

听到配置文件都懵逼了,从来没有关注过,说了一些mybatis配置,拦截器配置

6.2应该这样回答

pom.xml配置起步依赖(spring-boot-starter-parent)和必要的坐标资源
application.yml配置数据源、服务启动端口等

7.说一下springboot常用的注解

7.1自己当时的回答

bean、component、service、controller

7.2应该这样回答

1.开发控制类(controller层)

  • @RestController
  • @RequestMapping
  • @Autowired 、@Resource
  • @GetMapping 、@PutMapping 、 @patchMapping 、 @PostMapping 、 @DeleteMapping
  • @PathVariable
    2.服务层(service)
  • @Service
  • @Autowired 、@Resource
    3.数据层(dao)
  • @Mapper
  • @Select 、 @insert 、 @update 、 @delete
  • @param
    4.数据表对象层
  • @TableName
  • @TableField
  • @TableId
  • @TableLogic
  • @Version
    5.测试类(test)
  • @SpringBootTest
  • @Autowired 、@Resource
  • @Test
    2.启动类
  • @SpringBootApplication

8.如何应对高并发

8.1自己当时的回答

没用过

8.2应该这样回答

暂时没有遇到过这样的问题,自己所做的项目也没有考虑这方面的问题

9.mybatis一级缓存和二级缓存的区别

9.1自己当时的回答

不知道,追问:实现原理,答:不知道

9.2应该这样回答

看这篇文章这篇文章官方文档是这样解释缓存的

1.一级缓存是什么?
一级缓存对一个会话中的数据进行缓存。当对数据库有查询操作时先找缓存,如果缓存里没有数据就在数据库查询然后存入缓存。如果一级缓存时对数据库进行增删改操作的话就会清空缓存,下一次查询时又从数据库缓存数据。
2.二级缓存是什么?
二级缓存就是在一级缓存之前再加一级缓存,当对数据库进行查询操作时先根据namaspace查找二级缓存中是否存有数据,如果有就读出,如果没有就再去找一级缓存,如果一级缓存也没有再进入数据库查找,最后返回时将数据分别存放到一级缓存和二级缓存。如果后续对数据库有增删改操作会清空一级缓存和二级缓存。
3.区别

  • 一级缓存的作用域是一个sqlsession内;
  • 二级缓存作用域是针对mapper进行缓存;
  • 启用二级缓存比一级缓存更耗费时间和空间

10.集合和数组的区别

10.1自己当时的回答

创建的方式和添加元素的方式不同

10.2应该这样回答

1.集合的长度可变,数组的长度不可变
2.数组需要声明元素类型,集合不用
3.数组的元素类型只能是一种,集合可以是多种
4.数组能够存储基本数据类型或者引用数据类型,集合只能存储引用数据类型

11.实例化对象的方式有哪些?

11.1自己当时的回答

new 和自动代理

11.2应该这样回答

1.使用new关键字;

Person p = new Person();

2.使用Class类的newInstance方法;

Person p = Person.class.newInstance();

3.使用Constructor类的newInstance方法;

Person p = Person.class.getConstructor.newInstance();

4.使用clone方法;

Person p1 = (Person)p.clone();

5.使用反序列化。

ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));
Employee emp5 =(Employee) in.readObject();

12.java操作数据库采用了什么模式

12.1自己当时的回答

没回答上,我也很懵逼,什么模式?

12.2应该这样回答

现在也是懵逼的

13.HashMap是线程安全的吗?

13.1自己当时的回答

应该是吧,我也不知道,结果面试官告诉我不安全

13.2应该这样回答(晚点来补这个知识)

14.第一次面试感想

这次面试总体上来说是失败的,属于一问三不知的情况,不过好在我本来就抱着了解基本情况和基本流程的心态和目的去的,所以对我来说没什么落差,反而有所收获。第一:面试官对自己的技术方面的提问是根据自己的描述来的。第二:面试官对自己的期望也没有网传的那么高,总的来说比较注重基础,还有一些基本的东西。第三:不管网上看过多少次模拟面试,也不如自己亲自线下碰一碰重要,还有很多感受是无法言说的,必须自己亲自去体验后才能知道自己接下来的方向和该努力的点。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值