2024年最新Java面试题总结(乱序版,2024-09-03),java面试评语及录用意见

1200页Java架构面试专题及答案

小编整理不易,对这份1200页Java架构面试专题及答案感兴趣劳烦帮忙转发/点赞

百度、字节、美团等大厂常见面试题

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

1、存储位置不同

  • cookie在客户端浏览器;

  • session在服务器;

2、存储容量不同

  • cookie<=4K,一个站点最多保留20个cookie;

  • session没有上线,出于对服务器的保护,session内不可存过多东西,并且要设置session删除机制;

3、存储方式不同

  • cookie只能保存ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据;

  • session中能存储任何类型的数据,包括并不局限于String、integer、list、map等;

4、隐私策略不同

  • cookie对客户端是可见的,不安全;

  • session存储在服务器上,安全;

5、有效期不同

  • 开发可以通过设置cookie的属性,达到使cookie长期有效的效果;

  • session依赖于名为JESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session达不到长期有效的效果;

6、跨域支持上不同

  • cookie支持跨域;

  • session不支持跨域;

六、tcp 为什么要三次握手,两次不行吗?为什么?


因为客户端和服务端都要确认连接,①客户端请求连接服务端;②针对客户端的请求确认应答,并请求建立连接;③针对服务端的请求确认应答,建立连接;

两次无法确保A能收到B的数据;

七、使用工厂模式最主要的好处是什么?在哪里使用?


1、工厂模式好处

  • 良好的封装性、代码结构清晰;

  • 扩展性好,如果想增加一个产品,只需扩展一个工厂类即可;

  • 典型的解耦框架;

2、在哪里使用?

  • 需要生成对象的地方;

  • 不同数据库的访问;

八、什么是 Spring inner beans?


在Spring框架中,无论何时bean被使用时,当仅被调用一个属性。可以将这个bean声明为内部bean。内部bean可以用setter注入“属性”和构造方法注入“构造参数”的方式来实现。比如,在我们的应用程序中,一个Customer类引用了一个Person类,我们要做的是创建一个Person实例,然后再Customer内部使用。

package com;

public class Customer {

private Person person;

}

class Person{

private int id;

private String name;

private int age;

}

九、Spring 框架中的单例 Beans 是线程安全的么?


Spring框架并没有对单例bean进行任何多线程的封装处理。关于单例bean的线程安全和并发问题需要开发者自行去搞定。但实际上,大部分的Spring bean并没有可变的状态,所以在某种程度上说Spring的单例bean时线程安全的。如果你的bean有多种状态的话,比如view model,就需要自行保证线程安全啦。

最浅显的解决办法就是将多态bean的作用域由singleton变更为prototype。

十、如何集成 Spring Boot 和 ActiveMQ?


ActiveMQ简介,了解就好,继承暂不做解释了。

MQ是消息中间件,是一种在分布式系统中应用程序借以传递消息的媒介,常用的有ActiveMQ,RabbitMQ,kafka。ActiveMQ是Apache下的开源项目。

(1)特点:

  • 支持多种语言编写客户端

  • 对spring的支持,很容易和spring整合

  • 支持多种传输协议:TCP,SSL,NIO,UDP等

  • 支持AJAX

(2)消息形式:

  • 点对点(queue)

  • 一对多(topic)

十一、如何使用 Spring Boot 实现分页和排序?


使用Spring Data Jpa可以实现将可分页的传递给存储库方法。

十二、hibernate 实体类可以被定义为 final 吗?


可以将hibernate的实体类定义为final,但这种做法不好。

因为hibernate会使用代理模式在延迟关联的情况下提高性能,如果你把实体类定义成final类之后,因为Java不允许对final类进行扩展,所以hibernate就无法再使用代理了,如此一来就限制了使用可以提升性能的手段。

不过,如果你的持久化类实现了一个接口,而且在该接口中声明了所有定义于实体类中的所有public的方法的话,就能避免出现前面所说的不利后果。

十三、mybatis 有哪些执行器(Executor)?


1、mybatis有三种基本的Executor执行器:

(1)、SimpleExecutor

每执行一次update或select,就开启一个Statement对象,用完立刻关闭Statement对象。

(2)、PauseExecutor

执行update或select,以sql做为key查找Statement对象,存在就使用,不存在就创建,用完后,不关闭Statement对象,而且放置于Map内,供下一次使用。简言之,就是重复使用Statement对象。

(3)、BatchExecutor

执行update,将所有sql通过addBatch()都添加到批处理中,等待统一执行executeBatch(),它缓存了多个Statement对象,每个Statement对象都是addBatch()完毕后,等待逐一执行executeBatch()批处理。与JDBC批处理相同。

2、作用范围:

Executor的这些特点,都严格限制在SqlSession生命周期范围内。

3、Mybatis中如何指定使用哪一种Executor执行器?

在mybatis的配置文件中,可以指定默认的ExecutorType执行器类型,也可以手动给DefaultSqlSessionFactory的创建SqlSession的方法传递ExecutorType类型参数。

十四、char 和 varchar 的区别是什么?


  1. char的长度是固定的,varchar的长度的可变的;

  2. char的效率比varchar的效率高;

  3. char占用空间比varchar大,char在查询时需要使用trim;

十五、float 和 double 的区别是什么?


1、float 和 double 的区别是什么?

(1)内存中占有的字节数不同

单精度浮点数在内存中占有4个字节;

双精度浮点数在内存中占有8个字节;

(2)有效数字位数不同

单精度浮点数有效数字8位;

双精度浮点数有效数字16位;

(3)数值取值范围不同

单精度浮点数的表示范围:-3.40E+38~3.40E+38

双精度浮点数的表示范围:-1.79E+308~-1.79E+308

(4)在程序中处理速度不同

一般来说,CPU处理单精度浮点数的速度比双精度浮点数的速度快

如果不声明,默认小数是double类型,如果想用float,要进行强转;

2、例如

float f = 1.3;会编译报错,正确的写法是float f = (float)1.3;或者float a = 1.3f;(f或F都可以不区分大小写)

3、注意

float是八位有效数字,第七位会四舍五入;

4、面试题

(1)java中3*0.1==0.3将会返回什么?true还是false?

答:返回false,因为浮点数不能完全精确的表示出来,一般会损失精度;

(2)java中float f = 3.4;是否正确?

最后希望可以帮助到大家!

千千万万要记得:多刷题!!多刷题!!

之前算法是我的硬伤,后面硬啃了好长一段时间才补回来,算法才是程序员的灵魂!!!!

篇幅有限,以下只能截图分享部分的资源!!

(1)多线程(这里以多线程为代表,其实整理了一本JAVA核心架构笔记集)

image

(2)刷的算法题(还有左神的算法笔记)

image

(3)面经+真题解析+对应的相关笔记(很全面)

image

(4)视频学习(部分)

ps:当你觉得学不进或者累了的时候,视频是个不错的选择

在这里,最后只一句话:祝大家offer拿到手软!!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

5)]

(2)刷的算法题(还有左神的算法笔记)

[外链图片转存中…(img-WKgEf1Bg-1715150068016)]

(3)面经+真题解析+对应的相关笔记(很全面)

[外链图片转存中…(img-VlY0JUdW-1715150068016)]

(4)视频学习(部分)

ps:当你觉得学不进或者累了的时候,视频是个不错的选择

在这里,最后只一句话:祝大家offer拿到手软!!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值