Java面试八股之每日5问「07」

1.Tomcat为什么要破坏双亲委派

Tomcat需要解决的问题

  1. 如有多个应用程序部署在Tomcat上,这些应用程序可能会依赖同一第三方类库的不同版本,因此Tomcat必须支持每个应用程序的类库可以相互隔离
  2. 部署在同一个Tomcat上的不同应用程序,相同类库的相同版本应该是共享的,否则就会出现大量相同的类加载到虚拟机中
  3. Tomcat本身也有依赖的类库,与应用程序依赖的类库可能会混淆,基于安全考虑,应该将两者进行隔离
  4. 要支持Jsp文件修改后,其生成的class能在不重启的情况下及时被加载进JVM

采用默认机制会出现的问题

参考文章:

2.Tomcat如何打破双亲委派

总结

Tomcat的Context组件为每个Web应用创建一个WebAppClassLoader类加载器,由于不同类加载器实例加载的类是互相隔离的,因此达到了隔离Web应用的目的,同时通过CommonClassLoader等父加载器来共享第三方JAR包。

参考文章:

3.最左匹配原则的底层原理

联合索引的底层还是一颗B+树,只不过联合索引的健值数量不是一个,而是多个。构建一颗B+树只能根据一个值来构建,因此数据库依据联合索引最左的字段来构建B+树。 例子:假如创建一个(a,b)的联合索引,那么它的索引树是这样的



4.like模糊查询%在前面为什么会失效

索引的数据结构是B+树,而索引是有序排列的。在进行模糊查询的时候,如果把 % 放在了前面,最左的 n 个字母便是模糊不定的,无法根据索引的有序性准确的定位到某一个索引,只能进行全表扫描,找出符合条件的数据。

如:where like '%abc'

参考文章:

5.Java 8大基本类型所占字节数(或 bit 数)

类型

存储需求

bit 数

取值范围

备注

int

4字节

4*8

-2147483648~2147483647

即 (-2)的31次方 ~ (2的31次方) - 1

short

2字节

2*8

-32768~32767

即 (-2)的15次方 ~ (2的15次方) - 1

long

8字节

8*8


即 (-2)的63次方 ~ (2的63次方) - 1

byte

1字节

1*8

-128~127

即 (-2)的7次方 ~ (2的7次方) - 1

float

4字节

4*8


float 类型的数值有一个后缀 F(例如:3.14F)

double

8字节

8*8


没有后缀 F 的浮点数值(例如:3.14)默认为 double

boolean

1字节

1*8

true、false


char

2字节

2*8


Java中,只要是字符,不管是数字还是英文还是汉字,都占两个字节。

参考文章:

如有侵权请联系删除

展开阅读全文

页面更新:2024-04-30

标签:次方   双亲   字段   字节   应用程序   索引   加载   模糊   文件   文章

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top