首页 技术 正文
技术 2022年11月14日
0 收藏 747 点赞 2,278 浏览 3053 个字

2019最新最全Java开发面试常见问题答案总结

马上准备9月份出去面试Java开发,自己学习丢西瓜捡芝麻,学了的都忘了,所以有机会自己做个学习笔记,摘录自各个博文以及总结。

1、JAVA面向对象的特征?

封装、继承、多态、抽象

封装:通过类来体现,将实体封装成类,其中包含属性和方法

继承:类与类之间可以继承特点,使得代码重用

多态:通过传递给父类对象引用不同的子类从而表现出不同的行为

抽象: 将一类实体的共同特性抽象出来,封装在一个抽象类中。

2、String、StringBuilder、StringBuffer之间的区别?

(1)运行速度:StringBuilder > StringBuffer > String

String是字符串常量,其他两者属于字符串变量,String对象创建后不可以改变,对String的操作实际上是不断创建和回收的过程,执行速度慢。

(2)线程安全:StringBuilder是线程不安全的,而StringBuffer是线程安全的

StringBuffer对象在字符串缓冲区被多个线程使用时,可以使用synchronized关键字,能够保证线程安全。

(3)使用场景

String适用于少量的字符串操作;StringBuilder适用于单线程下的在字符串缓冲区进行大量的操作的情况下;StringBuffer适用于多线程下的在字符串缓冲区进行大量的操作的情况下。

3、MySQL和Oracle上的分页语句

为什么要分页?很多数据不能完全展示出来,需要进行分段显示

mysql:是使用关键字limit来进行分页的.LIMIT [offset,] rows:offset指定要返回的第一行的偏移量(也就是从哪个索引开始),rows第二个指定返回行的最大数目。初始行的偏移量是0(不是1)oracle:一般是使用rownum 加select 嵌套查询

4、SpringMVC的执行流程

当用户发送请求,被前端控制器(DispatcherServlet)捕获—–捕获请求

前端控制器进行解析,得到URL,通过URL调用HandlerMapping并获得该Handler配置的所有相关对象—-查找Handler

前端控制器根据得到的Handler,选择合适的HandlerAdapter,提取Request中的模型数据,填入Handler入参,开始执行Handler,最后返回一个ModelAndView对象.(执行Handler)

前端控制器根据返回的ModelAndViewm,选择合适的ViewResolver(选择ViewResolver)

通过ViewResolver结合Model和View来渲染视图,前端控制器将渲染结果返回给客户端(渲染并返回)

5、什么是多线程切换?

即使是单核CPU也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU通过不停地切换线程执行,让我们感觉多个线程时同时执行的,时间片一般是几十毫秒(ms)。

CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再次加载这个任务的状态,从任务保存到再加载的过程就是一次上下文切换

这就像我们同时读两本书,当我们在读一本英文的技术书籍时,发现某个单词不认识,于是便打开中英文词典,但是在放下英文书籍之前,大脑必须先记住这本书读到了多少页的第多少行,等查完单词之后,能够继续读这本书。这样的切换是会影响读书效率的,同样上下文切换也会影响多线程的执行速度。

在这里简单说下我经常使用的一款面试小程序《Java面试》,里面帮忙总结了很多面试题及答案。话不多说无图无真相。

2019最新最全Java开发面试常见问题答案总结

2019最新最全Java开发面试常见问题答案总结

2019最新最全Java开发面试常见问题答案总结

6、高并发问题:索引库同步

1.硬编码:在相应的代码中增加索引库同步的代码。不过,这种方法耦合度太高,将原本不相关的系统耦合在了一起,容易造成不可预估的错误,是电商项目的大忌。

2.spring的aop:编写一个索引库同步的方法,利用aop的形式,将它和数据库数据更新的方法联系起来。这种方式也会造成耦合。

3.消息队列:不过,这个方法会造成一个问题,那就是消息消费失败问题。

:解决两个系统间的通信问题。

消息消费失败:集中同步索引库,做一个定时任务。在消息队列所在的服务器上加一个数据库,我们使用的是redis缓存。消息队列中每发一条信息,就将这条信息持久化进redis中。接着定时(我们是在晚上,用户量少的时候)从redis中将消息列表取出来,批量同步索引库。

7、SpringMVC和SpringBoot的区别?

Spring 是一个“引擎”;

Spring MVC 是基于Spring的一个 MVC 框架 ;

Spring Boot 是基于Spring4的条件注册的一套快速开发整合包:

1. 创建独立的Spring应用程序

2. 嵌入的Tomcat,无需部署WAR文件

3. 简化Maven配置

4. 自动配置Spring

5. 提供生产就绪型功能,如指标,健康检查和外部配置

6. 绝对没有代码生成和对XML没有要求配置。

8、外连接和内连接各自什么什么时候使用?有何作用?

内连接:返回连接表中符合连接条件和查询条件的数据行(所谓的连接表就是早数据库中在做查询的时候形成的中间表)

隐式内连接: 形成的中间表为两个表的笛卡尔积

“`

select o.id,o.order_number,c.id,c.name from customers c, orders o where c.id=o.customer_id;

“`

显示内连接:形成的中间表为两个表经过on条件过滤后的笛卡尔积

“`

select o.id,o.order_number,c.id,c.name from customers c inner join orders o on c.id=o.customer_id;

“`

2.外连接:外连接不但返回符合连接和查询条件的数据行,还返回不符合条件的一些行。外连接分为三类:左外连接(left outer join)、右外连接(right outer join)、全外连接(full outer join)

左外连接:还会返回左标中不符合连接条件但是符合查询查询条件的数据行

“`

select o.id,o.order_number,o.customer_id,c.id,c.name from orders o left outer join customers c on c.id=o.customer_id;

“`

右外链接:还会返回右标中不符合连接条件但是符合查询查询条件的数据行

“`

select o.id,o.order_number,o.customer_id,c.id,c.name from orders o right outer join customers c on c.id=o.customer_id;

“`

全外连接:全外=左外 union 右外,相当于数学合集(去掉重复)

“`

select o.id,o.order_number,o.customer_id,c.id,c.name from orders o full outer join customers c on c.id=o.customer_id;

“`

篇幅过长,下次分享JVM、Redis、Mybatis、Mysql相关面试题,当然你也可以使用我经常用的  Java面试  里面的Java面试题和答案更详细。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,964
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,486
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,331
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,114
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,747
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,781