Java面试

(1)2022.6.9

1.SpringBoot和SSM的区别?
2.SpringBoot启动打的是Jar包还是War包?

jar包

3.ArrayList和LinkedList的区别?
4.HashMap和HashTable哪个是线程安全?
5.HashTable怎么做到线程安全的?(基于synchronize)
6.为什么使用Spring?
7.Spring的两个特性?
8.什么是面向切面?
9.Aop的作用?
10.Spring怎么实现事务?
11.什么是分布式事务?

分布式事务就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。

12.为什么用微服务?目的是什么?
13.SpringCloud用过哪几个组件?
14.GateWay的Feign调用?
15.Eureka项目挂了还可以运行吗?
16.Eureka心跳机制是多长时间?

Eureka Server在启动的时候启动的时候会每60秒遍历一次注册表中的信息,然后查看注册表中的信息是否有过期的,如果过期会加入到一个列表里面单独处理。

17.左连接和右连接的区别?
18.查询数据左表,右表没有可以查询出数据吗?
19.Sql优化?
20.JSON和Xml哪个更大?

Xml

(2)2022.7.20

1.介绍实习项目
2.介绍项目模块
3.==和equals的区别
4.两个字符串比较用什么?

equals

5.常量和变量那个放前面?

变量.equals(常量)
变量放前面

6.常见的异常有哪些?

算术异常类:ArithmeticException
空指针异常类:NullpointerException
类型强制转换异常:ClassCastException
数组下标越界异常:ArrayIndexOutOfBoundsException
文件未找到异常:FileNotFoundException
操作数据库异常:SQLException
I/O 异常的根类:IOException
线程中断:InterruptedException
java.lang.ClassFormatError 类格式错误。当Java虚拟机试图从一个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。
java.lang.NoClassDefFoundError 未找到类定义错误。当Java虚拟机或者类装载器试图实例化某个类,而找不到该类的定义时抛出该错误。
java.lang.IllegalStateException 违法的状态异常。当在Java环境和应用尚未处于某个方法的合法调用状态,而调用了该方法时,抛出该异常。

7.SpringBoot的注解

@SpringBootApplication
@ComponentScan
@Configuration
@Component
@RestController
@Autowired
@PathVariable
@RequestMapping

8.Mysql的聚合函数

9.Sql题
每个科目都超过80分的同学名字
在这里插入图片描述

#1.查询姓名,最低分数
SELECT NAME,MIN(fenshu)
FROM test1
#2.查询出最低分数的那个人,需要改进,根据用户名分组(group by name),这样就能查询出每个人的最低分数
SELECT NAME,MIN(fenshu)
FROM test1
GROUP BY NAME
#3.查询出了每个人的最低分数,我们只需要得到最低分数大于80的学生。通过having语句来筛选
SELECT NAME,MIN(fenshu)
FROM test1
GROUP BY NAME
HAVING MIN(fenshu) > 80
#4.满足我们的要求,但是不是最终的需求,最终的需求是得到每门课大于80分的学生姓名。这样,需要再嵌套一个语句,只得到姓名。
SELECT NAME FROM (SELECT NAME,MIN(fenshu) FROM test1 GROUP BY NAME HAVING MIN(fenshu) > 80 ) stu

(3)2022.7.27

1.基本数据类型
2.string常用的方法
3.vue的生命周期
4.常用的集合有哪些?它们的区别?
5.聚合函数

(4)2022.10.12

1.项目讲解

2.SpringMVC的执行流程?

1.用户发送请求至前端控制器DispatcherServlet
2.DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3.处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4.DispatcherServlet调用HandlerAdapter处理器适配器。
5.HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
6.Controller执行完成返回ModelAndView。
7.HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。
8.DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
9.ViewReslover解析后返回具体View。
10.DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
11.DispatcherServlet响应用户。

3.#{}和${}的区别?

1.#{}是预编译处理,是占位符,${}是字符串替换,是拼接符
2.在处理#{}的时候会将sql中的#{}替换成?号
在处理S{}的时候就是把S{}替换成变量的值
.使用#{}可以有效的防止sql注入,提高系统的安全性

4.hashMap和hashTable的区别?

1.hash值不同
HashTable:直接使用对象的hashCode
HashMap:重新计算hash值
2.key和value是否允许null值
Hashtable:key和value都不允许出现null值
HashMap:null能够作为键,这样的键只有一个,能够有一个或者是多个键所对应的值为null
3.线程安全性不同
Hashtable:Synchronize;在多线程并发的情况下,能够直接使用Hashtable,不要自己为它的方法实现同步
HashMap:在缺省情况下是非Synchronize的;使用HashMap的时候就需要自己增加同步处理;HashMap是线程不安全的

5.什么是微服务?

6.微服务之间怎么调用?

(5)2022.10.28

10.28
笔试题
1.你对应聘的岗位的认识和理解?

Java是当今最常见的语言,目前有很多设备正在Java平台运行,Java几乎涉及软件开发的各个领域,是软件开发市场功能最强大的语言之一,Java是一门面向对象编程语言,可以编写桌面应用程序,Web应用程序,分布式系统和嵌入式系统应用程序.。Java语言吸收了C++语言的各种优点,具有功能和强大和简单易用两个特征

2.对近、中、远期职业规划?

3.你对公司的期望

1、实际实习有多长时间?(工作时间,项目时间)

上海届远信息技术有限公司
疫情时间
2022年3月28日-2022年6月1日
工作时间
2021年12月1日-2022年6月1日
项目时间
2021年12月1日-2022年2月学习时间
2022年2月到6月项目时间

2、实习期间有学到什么?
3、学习的途径?(课程的名称,好的课程)

网站:B站、腾讯课堂、黑马程序员
课程名称:黑马程序员、尚硅谷、狂神、动力节点

4、SpringCloud Alibaba解决了什么问题?
5、如何使用事务解决三张表数据保存一致?
6、什么是分布式事务?

分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。
简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据存储的数据一致性。

7、Redis几种常用的数据结构?
8、项目中使用Redis到什么功能?(登录和注册功能)

讲解实现功能过程

9、Redis五种数据结构都有什么用处?

1.string字符串常应用于简单的key-value信息的缓存。
2.list是有序的列表,可以缓存一些列表型的数据结构
3.hash字典主要用于缓存结构化的数据,例如对象(没有嵌套其他对象),可以直接操作对象中的某个字段。
4.set是无序集合,自动去重。可以基于set做交集、并集、差集操作。
5.zset是有序的集合,自动去重还保证了顺序。score指定了权重,可以用来排序,例如做排行榜功能。

10、SpringCloud Alibaba都有什么组件?
11、原生SpringCloud有哪些组件?
12、实习项目的功能业务?

讲解四个模块的功能实现

13、Mybatis常用的注解?(Spring注解,实体类上)

@Select
@Delete
@Insert
@Update

Options:能够设置缓存时间,能够为对象生成自增的key。
@Mapper和 @MapperScan
MapperScan作用:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类

@TableName:v当数据库名与实体类名不一致或不符合驼峰命名时,需要在此注解指定表名
@TableId(type = …):指定实体类的属性为对应的主键
@TableField:主要用来解决实体类的字段名与数据库中的字段名不匹配的问题(数据库user_addr,字段useraddr未驼峰)实体类中的属性字段在表中不存在的问题
@Version:乐观锁注解、标记 @Verison 在字段上
@EnumValue:通枚举类注解(注解在枚举字段上)
@TableLogic:表字段逻辑处理注解(逻辑删除)
@OrderBy:内置 SQL 默认指定排序,优先级低于 wrapper 条件查询

14、MySQL索引?
15、MySQL存储引擎?
16、一级缓存和二级缓存是什么?默认是什么?区别?
17、mybatis如何防止sql注入?

#{}是经过预编译的,是安全的;${}是未经过预编译的,仅仅是取变量的值,是非安全的,存在SQL注入

18、MySQL如何创建视图?

create view 视图名
as
查询语句;

19、SpringBoot的注解?
20、MVC的执行流程?
21、SpringBoot和Spring的区别?
22、ArrayList和LinkedList的区别?
23、在什么情况下ArrayList插入比较慢?
24、ArrayList和LinkedList存储空间,哪个大?

LinkedList

25、Map和Set的区别?
26、HashMap的扩容?
27、HashMap是线程安全吗?为什么不是?
28、装箱和拆箱?
29、Java反射?
30、Java多态?
31、Java泛型?

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值