java基础面试题2

文章详细介绍了HTTP请求的组成部分,包括请求行、头部、空行和数据,并对比了GET和POST方法的区别。接着,阐述了Java反射的概念,如何获取方法以及反射在动态代理、依赖注入等场景的应用。此外,讨论了事务的ACID特性以及四种事务隔离级别。最后,提到了SQL优化的方法,如利用索引、减少数据访问和交互次数等。

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

1. HTTP请求结构?HTTP请求头中有什么?
- ⼀个HTTP请求报⽂由四个部分组成:请求⾏、请求头部、空⾏、请求数据
- 请求头
1.Accept:浏览器可接受的mime类型。
2.Accept-Charset:浏览器可接受的字符集。
3.Accept-Encoding:浏览器能够进⾏解码的⽅式。
4.Content-Length:表⽰请求消息的⻓度。
5.Host: 客户端告诉服务器,想访问的主机名。
6.Cookie:客户端可以向服务器带数据,只是⾮常重要的信息之⼀。
2. GET和POST的区别
- GET⽅式是通过请求⾏传递⽤户所输⼊的内容,其内容会全部显⽰的浏览器的地址栏中;
- GET提交具有⻓度限制
- GET是从服务器上获取数据
- GET请求没有HTTP消息体
- POST提交将⽤户所输⼊数据放到HTTP消息体中发送到服务器端
- POST没有提交⻓度限制
- POST是向服务器传送数据
3. 如何⽤反射获取⽅法?
1 ⾸先找到类型的Class对象
Class.forName(类型)
类型.class
对象.getClass()
2 然后在类型上查找⽅法
getMethods();//获取包括⾃⾝和继承(实现)过来的所有的public⽅法
getDeclaredMethods();//获取⾃⾝所有的⽅法
getMethod(⽅法签名);//表⽰获取指定的⼀个公共的⽅法,包括继承的
getDeclaredMethod(⽅法签名);//表⽰获取本类中的⼀个指定的⽅法,不包括继承的
⽅法
⽅法签名包括:⽅法的名字,参数的Class类型列表
4. 什么是反射
- ava反射(Java Reflection) 是指在运⾏时获取程序的类型信息并可以操作对象的机制。通过反
射,可以在运⾏时获取类的成员变量、⽅法、构造函数等信息,并可以在运⾏时调⽤对象的⽅法,创建对象的实例,操作对象的属性等。
- 在Java中,反射机制主要通过以下⼏个类实现:
- Class类:表⽰类的类型,通过该类可以获取类的构造函数、成员变量、⽅法等信息。
- Constructor类:表⽰类的构造函数类型,通过该类可以创建类的实例。
- Field类:表⽰类的成员变量类型,通过该类可以获取、设置类的成员变量的值。
- Method类:表⽰类的⽅法类型,通过该类可以调⽤类的⽅法。
- 反射机制在Java中具有⼴泛的应⽤,例如:
- 动态代理:可以通过反射⽣成实现了某个接⼝的代理类,实现动态代理。
- 依赖注⼊:可以通过反射获取类的构造函数、成员变量等信息,实现依赖注⼊。- 注解处理器:可以通过反射获取类的注解信息,实现注解处理器。
- 配置⽂件解析器:可以通过反射获取类的属性信息,实现配置⽂件解析器。
- 尽管反射机制可以⽅便地获取类的信息并进⾏操作,但是它也具有⼀定的缺点,如性能较差、代
码可读性差、安全性差等。因此,在实际开发中,应该根据实际情况谨慎使⽤反射机制。
5.什么是事,以及事⽤,
:指构成 逻辑 ⼯作 元的操作集合
是指是程序中⼀系列 密的 逻辑 操作,⽽且所有操作必 全部成功完成,否 则在每个操作中所作的所有更改都会被撤消。可以通俗理解 :就是把多件事情当做⼀件事情来 处理,好⽐⼤家同在⼀条船上,要活⼀起活,要完⼀起完
6. 对SQL的优化⽅式有哪些
减少数据 访问 置合理的字段类型,启⽤ 压缩 ,通 索引 访问 等减少磁 IO
返回更少的数据: 只返回需要的字段和数据分 ⻚处 理 减少磁 io 及⽹ io
减少交互次数: 批量 DML 操作,函数存 等减少数据 接次数
减少服 CPU : 尽量减少数据 排序操作以及全表 查询 ,减少 cpu 内存占⽤
利⽤更多 源: 使⽤表分区,可以增加并⾏操作,更⼤限度利⽤ cpu
总结 SQL 化中,就三点 :
最⼤化利⽤索引;
尽可能避免全表 描;
减少⽆效数据的 查询
分析 句,是否加 了不必要的字段 / 数据。
分析 SQL 划(
explain extended ),思考可能的 化点,是否命中索引等。
SQL 涉及的表 构和索引信息。
如果 SQL 很复 SQL 构。
按照可能的 化点 ⾏表 更、增加索引、 SQL 改写等操作。
化后的 时间 划。
如果表数据量太⼤,考 分表。
利⽤ 存,减少 查询 次数。
7. 说ACID和隔离
原⼦性(Atomicity
       操作 些指令 ,要么全部 ⾏成功,要么全部不 ⾏。只要其中⼀个指令
⾏失 ,所有的指令都 ⾏失 ,数据 ⾏回滚,回到 ⾏指令前的数据状
⼀致性(Consistency
        事 ⾏使数据从⼀个状 态转换为 另⼀个状 ,但是 于整个数据的完
整性保持 定。
隔离性(Isolation
       隔离性是当多个⽤ 发访问 数据 库时 ,⽐如操作同⼀ ,数据 库为
⼀个⽤ 开启的事 ,不能被其他事 的操作所⼲ ,多个并 要相互隔离。
持久性(Durability
       当事 正确完成后,它 于数据的改 是永久性的。
了达到事的四⼤特性,数据4 种不同的事隔离别:
READ-UNCOMMITTED 取未提交):最低的隔离 别,允 许脏读 ,也就是可能 取到其他会 话中未提交事 修改的数据,可能会 脏读 、幻 或不可重复
READ-COMMITTED 取已提交): 只能 取到已 提交的数据。 Oracle 等多数数据 都是该级 别 (不重复 ),可以阻⽌ 脏读 ,但是幻 或不可重复 仍有可能 ⽣。
​​​​​​​
REPEATABLE-READ(可重复 ): 同⼀字段的多次 果都是⼀致的,除⾮数据是被本⾝事 务⾃⼰所修改,可以阻⽌ 脏读 和不可重复 ,但幻 仍有可能 ⽣。
SERIALIZABLE (可串⾏化):最⾼的隔离 别,完全服从 ACID 的隔离 别。所有的事 依次逐个执⾏, 这样 就完全不可能 ⽣⼲ ,也就是 该级 别可以防⽌ 脏 读 、不可重复 以及幻
MySQL 采⽤的 REPEATABLE_READ 隔离 别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值