java基础面试题2

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

余额充值