java面试题汇总(未完成)

本文主要涵盖Java基础知识,包括基本类型、平台运行原理、String特性、逻辑运算符区别、Switch语句使用、短路逻辑与非短路逻辑的差异、Char存储汉字原理、位运算优化计算、final修饰对象的特性。同时,讲解了Web服务器中的触发器作用、索引的优缺点、事务的ACID属性和隔离级别。此外,涉及数据库的SQL注入攻击及其防护、SQL优化策略。最后,探讨了Spring框架中的Bean容器、IOC/DI原理、注解配置对象作用域和延迟加载,以及Spring MVC处理流程和事务处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接
本文章仅作为记忆和背诵的途径

java基础

java中有哪些基本类型?

byte,int,short,char,float,double,boolean

java为什么能够过平台运行

java编译后代码不是硬件平台可以直接执行的机器码,而是一种“中间码”——字节码。硬件平台安装对应的JVM将字节码翻译成可以执行的机器码。因此程序员编程时不需要考虑硬件平台的特性,因此java可以“跨平台”。

String是基本数据类型吗?我可不可以写个类继承于String?

String类型是引用类型。String类型被final修饰所以不可以继承。

谈谈&和&&的区别?

&和&&都是逻辑与运算符,两边的表达式结果都为true结果就是true,只要有一个表达式为false结果就是false。
&&是短路逻辑与,只要第一个表达式是false结果就是false,不会运算第二个表达式。
&是按位与,如果两边的表达式是Boolean类型,&表示按位与操作。

Switch语句里面的条件可不可以是byte、long、String?使用时候还应注意什么?

在这里插入图片描述
从左到右的字节数分别是1,2,4,8。
switch里面的条件只能是能隐式转换为int的基本数据类型。所以可以作为switch的条件的表达式类型为byte,short,char,int
(上网查阅之后jdk 8之后支持String和long,因此是可以的,但是不使用long的根本原因是是long转换为int会损失精度)。
使用switch时候应该注意穿透,每个case之后都要跟一个break。

short s1=1;s1=s1+1;有什么错?short s1 = 1;s1+=1 有什么错?

前者的情况下,s1+1的运算会将运算类型自动提升表达式的类型为int。运算结果赋值给short类型s1时编译器会提示强制类型转换错误。
后者是没有问题的,因为+=是java特殊处理过的运算符,因此可以正确编译。

char为什么能存储一个汉字?

char类型变量是用来存储Unicode类型的字符的,Unicode类型字符包含了世界上的全部字符,其中就包含汉字。

用最效率的方法算出2乘以8等于几?

可以使用位运算符。 8 = 2 3 8=2^3 8=23,所以 2 ∗ 8 2*8 28可以按照2<<3进行运算。
位移运算是最底层的运算,直接操作二进制,因此运算效率最快。
<<: 左移运算符,num << 1,相当于num乘以2(右边补0)
>>:右移运算符,num >> 1,相当于num除以2(正数左边补0,负数左边补1)
>>>: 无符号右移,忽略符号位,空位都以0补齐(左边补0)

final修饰变量时,该变量是对象时,对象的值可不可以改变?

final修饰的变量的引用不可变,但是引用的值是可变的。
什么意思呢。
以下是对象创建的过程 :1

在这里插入图片描述

Web服务器

触发器的作用?

触发器是一种特殊的存储过程,主要是通过事件来触发被执行的。它可以强化约束,维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。

索引的作用?和它的优点缺点是什么?

索引是一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。类似于现实生活中书的目录。
索引可以是唯一的,可以用索引指定单个列或者多个列。
缺点是使数据库尺寸增大、减慢数据录入的速度。

什么是事务?

事务是一个逻辑单元执行的一系列操作。一个逻辑单元有4个属性:ACID(原子性、一致性、隔离性、持久性)

数据库有几种隔离级别?

串行化、可重复读、读已提交、读未提交

ajax原理

Ajax的工作原里,在用户与服务器之间加了一个中间层使用户操作与服务器响应异步化

sql注入攻击

SQL注入是一种将SQL代码添加到输入参数中,传递到服务器解析并执行的一种攻击手法

如何防止sql注入攻击

利用新对象PreparedStatement完成。先将SQL骨架单独发送给数据库服务器,然后再将参数发送给数据库服务器。

sql优化

  1. select子句中避免使用’*’
  2. sql语句用大写的
  3. 用IN替换OR
  4. 尽量减少子查询,使用关联查询

SSM框架

何为Spring Bean容器?Spring Bean容器与Spring IOC 容器有什么不同吗?

创建Bean对象,管理Bean对象的容器。
Spring IOC容器本质上就是Spring Bean容器。
Spring Bean容器中的一个核心机制就是IOC(控制反转)机制,所以Spring Bean容器就叫做Spring IOC容器。

Spring IOC如何理解?

IOC是Spring中的一种控制反转机制,将项目中对象的依赖管理交给Spring实现。实现对象关系解耦,提高程序可扩展性。

Spring DI 如何理解?

DI是Spring中依赖注入机制,IOC的实现需要这种机制。Spring bean容器中的IOC是一种目标,而DI是实现这种目标的手段。

Spring 中基于注解如何配置对象作用域?以及如何配置延迟加载机制?

@Scope(“singleton”),@Scope(“prototype”)
@Lazy(value=true)

Spring 工厂底层构建Bean对象借助什么机制?当对象不使用了要释放资源,目的是什么?何为内存泄漏?

借助反射机制。
防止内存泄漏。
内存泄漏是指对象已经不再使用了但仍然占用内存,内存泄漏是内存溢出的导火索,内存溢出会导致系统崩溃。

描述Spring MVC处理流程

在这里插入图片描述

分为6步。

  1. 客户端发送http请求到web服务器,web服务器对http请求进行解析,如果匹配了DispatcherServlet(分发器/前端控制器)的前端映射路径,就将请求转发给DispatcherServlet。
  2. DispatcherServlet接收到请求后,根据请求的信息以及HandlerMapping(处理器映射器)的配置找到处理请求的Handler(处理器)。
  3. 由具体的HandlerAdapter对Handler进行具体的调用。
  4. Handler处理完数据之后返回一个ModelAndView()对象给DispatcherServlet。
  5. DispatcherServlet通过ViewResolver(视图解析器)将ModelAndView()转化为真正的View(视图)
  6. DispatcherServlet通过model对View进行视图渲染,向客户端返回完整View。

Spring中的事务处理方式及优缺点

解释Spring支持的几种bean的作用域

singleton,prototype,request,session,global-session,


  1. 原文链接:https://blog.youkuaiyun.com/weixin_43884234/article/details/116455968 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值