java面试题

1、html、css、js在网页开发中的作用
HTML (HyperText Markup Language):负责网页的结构,是网页内容的骨架,如文字、链接、图片等。
CSS (Cascading Style Sheets):负责网页的样式和布局,如颜色、字体、间距等。
JavaScript (JS):负责网页的行为和交互性,可以修改HTML和CSS,响应用户操作。
2、css常见的选择器
元素选择器:直接使用元素名,如 p、div。
类选择器:点号+类名,如 .class-name。
ID选择器:井号+ID名,如 #id-name。
属性选择器:方括号内写属性,如 [type="text"]
3、js和jquery获取节点对象的区别
JavaScript:使用如 document.getElementById() 或 document.querySelector() 等原生方法。
jQuery:使用 $() 函数,可以更简单地选择和操作节点,如 $('#id-name')。
4、mvc分层思想的理解
Model(模型):负责数据和业务逻辑。
View(视图):负责显示内容,用户界面。
Controller(控制器):负责接收用户的输入并调用模型和视图完成用户请求的处理。
5、接口和抽象类的特点
接口(Interface):只能有抽象方法和默认方法,不能有实现(Java 8前)。
抽象类(Abstract Class):可以有抽象方法和实现方法,可以有成员变量。
6、什么是编译期异常,什么是运行时异常
编译期异常(Checked Exception):必须在写代码时显式处理的异常,如 IOException。
运行时异常(Runtime Exception):不需要显式处理,通常是程序运行时的错误,如 NullPointerException。
7、jsp的本质和执行流程
本质:JSP是一个简化的Servlet设计,它是将Java代码嵌入到HTML页面中的技术。
执行流程:JSP文件被请求时,转换成Servlet源码,编译成.class文件,然后由Servlet容器执行。
8、jsp的四大域对象
page:与页面相关的对象。
request:包含客户端请求信息。
session:跨多个页面请求的用户数据。
application:所有用户共享的数据。
9、转发和重定向
转发(Forward):服务器内部的资源调用,用户不知道实际被访问的是哪个页面。
重定向 (Redirect):客户端跳转,地址栏会显示新的URL。
10、el表达式的作用
Expression Language:简化页面中的脚本代码,直接写表达式来读取或设置数据。
11、什么是事务
事务:一组不可分割的操作集合,这些操作要么全部成功,要么全部失败。
12、mysql数据库默认的事务隔离级别
默认级别:通常是 REPEATABLE READ,但配置可能不同。
13、基本sql语句 删除和张三成绩一样的学生信息
DELETE FROM students WHERE score = (SELECT score FROM students WHERE name = '张三');

14、java枚举的使用,如何自定义枚举类
使用:定义固定的常量集合,如 enum Color { RED, GREEN, BLUE }.
自定义:可以在枚举中添加方法和字段。
15、Java注解的理解,如何自定义注解
理解:注解是一种用于类、方法、变量等额外信息的标记,可以通过反射读取。
@interface MyAnnotation {
    String value();
}

16、反射的理解,获取类对象的方式
理解:反射是在运行时对类的属性和方法的访问和修改。
方式:Class.forName("className"), obj.getClass(), ClassName.class.
17、接口中的方法能否含有方法体
Java 8+:可以通过默认方法(default)和静态方法(static)有方法体。
18、jdbc连接数据库的步骤
加载驱动类
创建连接
创建语句
执行语句
处理结果
关闭连接
19、mysql常见的存储引擎
InnoDB:支持事务处理,支持外键。
MyISAM:不支持事务,访问速度快。
20、异常的处理机制,如何自定义异常
处理机制:try-catch-finally结构。
自定义异常:
class MyException extends Exception {
    public MyException(String message) {
        super(message);
    }
}

21、线程的生命周期
新建(New)、可运行(Runnable)、阻塞(Blocked)、等待(Waiting)、计时等待(Timed Waiting)、终止(Terminated)。
22、创建线程的方式有几种
继承 Thread 类。
实现 Runnable 接口。
使用 ExecutorService。
23、多线程的安全如何保证
使用同步(synchronized)关键字。
使用锁(例如 ReentrantLock)。
使用原子类(如 AtomicInteger)
24、el表达式获取域对象中取值的顺序
Page - 最先搜索,仅限于当前页面。
Request - 如果在Page域找不到,继续在Request域搜索。
Session - 如果前两者都未找到,搜索Session域。
Application - 最后在Application域中搜索,涵盖整个Web应用的范围。
25、事务的特点
Atomicity(原子性):事务作为一个整体执行,要么全部成功,要么全部失败。
Consistency(一致性):事务必须使数据库从一个一致性状态转换到另一个一致性状态。
Isolation(隔离性):多个事务并发执行时,一个事务的执行不能影响其他事务。
Durability(持久性):一旦事务提交,其结果就是永久的。
26、罗列编写代码过程中常见的异常
NullPointerException - 访问了未初始化的对象。
ArrayIndexOutOfBoundsException - 数组访问超出边界。
ClassCastException - 类型强制转换错误。
NumberFormatException - 尝试将字符串转换成数字,但字符串格式不正确。
ArithmeticException - 数学运算异常,如除以零。
IOException - 输入输出操作失败或中断。
27、集合和数组的特点
数组:
大小固定,一旦创建后不能改变。
可以存储基本数据类型或对象。
效率高,因为内存是连续的。
集合:
大小可变,可以根据需要添加或删除元素。
只能存储对象,不能存储基本数据类型(但可以通过包装类存储)。
提供更多的数据结构,如列表、集、映射等。
28、线程和进程,并发和并行
线程:
线程是进程的执行单元。
线程共享进程的内存和资源。
更轻量,创建和销毁的成本低于进程。
进程:
进程是操作系统分配资源和调度的基本单位。
每个进程有自己独立的内存空间。
并发(Concurrency):
多个任务在同一时间间隔内交替执行,但任一具体时刻点上只有一个任务执行。
并行(Parallelism):
多个任务在同一时刻同时执行,需要多核处理器。

30、js中变量和java中变量的区别
JavaScript:
动态类型,变量的类型在运行时可变。
使用 var, let, const 来声明变量。
允许变量未声明就使用(非严格模式)。
Java:
静态类型,声明时必须指定变量的类型。
强类型,一旦声明类型后不能改变。
使用 int, double, String 等来声明变量
32、集合的基本继承体系结构
Collection接口:是各种集合结构的父接口。
List - 元素有序、可重复。
Set - 元素无序、不可重复。
Map接口:存储键值对,键不可重复。
HashMap、TreeMap
34、方法的重载和重写
重载(Overloading):
同一类中,方法名相同,参数类型或数量不同。
返回类型可以不同,不受参数影响。
重写(Overriding):
子类中的方法与父类中的方法具有相同的方法名、返回类型及参数列表。
用于实现多态,子类提供具体实现。
35、final有哪些用法
变量:被声明为final的变量不可更改。
方法:防止方法被子类重写。
类:防止类被继承。
36、mysql事务的隔离级别
事务的隔离级别定义了一个事务可能受其他并发事务的影响程度:

READ UNCOMMITTED:未提交读
READ COMMITTED:提交读
REPEATABLE READ:可重复读
SERIALIZABLE:可序列化
37、Git与SVN的区别
https://blog.csdn.net/ACBEGF/article/details/105692567
38、耦合严重
39、序列号和反序列化
https://blog.csdn.net/qq_40036754/article/details/100886917
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值