Java八股文
文章平均质量分 69
Java八股文,学习记录
做一道光
互联网软件开发,已转汽车嵌入式软件开发
展开
-
华为面试100题:java开发工程师(下)
非聚簇索引:叶子节点不存储数据,存储的是数据行地址,也就是说根据索引查找数据行的位置再去磁盘查找数据,这个就类似于一本书的目录,比如我们想要找第三章第一节,先去目录中找,找到对应的页码后再去对应的页码中看文章。聚簇索引:将数据存储与索引放到了一块,并且是按照一定的顺序组织的,找到索引也就找到了数据,数据的物理存放顺序与索引顺序是一致的,即:只要索引是相邻的,那么对应的索引也一定是相邻的存放在磁盘上的。4.在查询时,先拿到倒排表中的内容,在取出数据地址链,从而拿到具体数据。1.把创建了索引列的内容进行排序。原创 2022-10-10 17:56:47 · 226 阅读 · 0 评论 -
华为面试100题:java开发工程师(中)
而如果sleep是该线程有锁,那么sleep不会释放这个锁,而是带着锁进入冻结状态,也就是说其他需要这个锁的线程根本不可能得到这个锁,也就是说无法执行程序。网络上有个如下的例子,列举出runable在数据共享上更好用,其实这个推断是不对的,这个例子的代码设计就产生了错误,第一个new了两个对象,第二个new了一个对象,导致产生的错误。当一个多线程访问一个对象时,如果不进行额外的同步控制或其他协调操作,调用这个对象的行为都可以获得正确的结果,我们就说这个线程是安全的。原创 2022-10-09 21:57:17 · 5841 阅读 · 2 评论 -
华为面试100题:java开发工程师(上)
操作数栈:该数值在未给局部变量表中的变量赋值时,存储在该操作数栈中;赋值后给局部变量表后,该数值存储到局部变量表中,操作数栈中的该数值移除。该局部变量表中的变量和堆中的对象是有关系的,局部变量表中的变量存储的是该对象在堆中的内存地址。栈:主要存储变量,这里java中的栈和数据结构的栈的概念是一样的,符合先进后出的概念。该静态变量user和堆中的user的关系:该静态变量存放的是user在堆中的内存地址。==对比的是栈中的值,基本数据类型是变量值,引用类型是堆中内存对象的地址。jvm的大部分调优都是调的堆。原创 2022-10-05 21:44:31 · 1015 阅读 · 0 评论 -
jvm面试
分代回收的思想和依据以及不同垃圾回收算法的回收思路和适合场景。由垃圾回收器进行垃圾的回收管理。常用加载器分别加载哪种类型的类。线程执行方法是都会创建一个栈阵。保存着当前线程执行的字节码位置。每个线程工作时都有独立的计数器。几乎所欲的对象实例都会放在这里。用于存储已被虚拟机加载的类信息。的元空间都是方法区的一种实现。和执行模式部分偏向于理论基础。即时编译器优化后的代码等数据。也是用来保存执行方法的信息。根据对象的存活周期不同。但对只是深度要求较高。方法时使用本地方法栈。目的是存放对象的实例。原创 2022-10-02 21:47:06 · 99 阅读 · 0 评论 -
Spring Boot 面试题
Spring JavaConfig 是 Spring 社区的产品,它提供了配置 Spring IoC 容器的纯Java 方法。使用 Freemarker 的主要优点是表示层和业务层的完全分离。由于配置被定义为 JavaConfig 中的类,因此用户可以充分利用 Java 中的面向对象功能。只使用 JavaConfig 配置类来配置容器是可行的,但实际上很多人认为将JavaConfig 与 XML 混合匹配是理想的。了一种纯 Java 方法来配置与 XML 配置概念相似的 Spring 容器。原创 2022-10-02 20:14:46 · 104 阅读 · 0 评论 -
Linux 面试题
chmodu+xfile 给 file 的属主增加执行权限 chmod 751 file 给 file 的属主分配读、写、执行(7)的权限,给 file 的所在组分配读、执行(5)的权限,给其他用户。5、可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生(比如等待socket 连接、等待信号量),而被挂起。创建文件:典型的如 touch,vi 也可以创建文件,其实只要向一个不存在的文件输出,都会创建文件。1、不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。R 正在运行,或在队列中的进程。原创 2022-10-01 18:07:47 · 103 阅读 · 0 评论 -
微服务(java) 面试题
这是一种设计方法,我们通过调用多个服务来收集结果,然后编译组合响应。我们知道拥有自己的数据库的每个微服务都是一个可独立部署的程序单元,这反过来又让我们可以创建一个状态机。因此,我们可以为特定的微服务指定不同的。Order 状态的转换可以是 Order 微服务中的独立事件。是一种降低在生产中引入新软件版本的风险的技术。深入监控覆盖范围,从浏览器内前端性能指标,到应用程序性能,再到主机虚拟化基础架构指标。是分布式系统中非常流行的工具,与传统流程相反。为开发微服务的团队提供某些工具和技术的建议。原创 2022-09-27 22:19:18 · 346 阅读 · 0 评论 -
Spring 面试题
在依赖注入中,您不必创建对象,但必须描述如何创建它们。您不是直接在代码中将组件和服务连接在一起,而是描述配置文件中哪些组件需要哪些服务。BeanFactory - BeanFactory 就像一个包含 bean 集合的工厂类。它会在客户端要求时实例化 bean。身,而不是使用 XML 来描述 bean 装配。您可以通过在相关的类,方法或字段声明上使用注解,将 bean 配置为组件类本。因此,您需要在使用它之前在 Spring 配置文件中启用它。Spring 中的 IoC 的实现原理就是工厂模式加反射机制。原创 2022-09-27 22:10:10 · 88 阅读 · 0 评论 -
Java基础 面试题:下(重点)
Facade(门面模式),Adapter(适配器模式),Bridge(桥梁模式),Composite(合成模式),Decorator(装饰式),Flyweight(享元模式),Proxy(代理模式);Java 中的 String 类提供了支持正则表达式操作的方法,包括:matches()、replaceAll()、replaceFirst()、split()。Map 是键值对映射容器,与 List 和 Set 有明显的区别,而 Set 存储的零散的元素且不允许有重复元素(数学中的集合也是如此),List。原创 2022-09-22 20:38:59 · 224 阅读 · 0 评论 -
Java基础 面试题:上(重点)
简单的说,如果整型字面量的值在-128 到 127 之间,那么不会 new 新的 Integer对象,而是直接引用常量池中的 Integer 对象,所以上面的面试题中 f1f4 的结果。首先需要注意的是 f1、f2、f3、f4 四个变量都是 Integer 对象引用,所以下面的==运算比较的不。类的成员不写访问修饰时默认为 default。char 类型可以存储一个中文汉字,因为 Java 中使用的编码是 Unicode(不选择任何特定的编码,直接使用字符在字符集中的编号,这是统一的唯一方法),一。原创 2022-09-22 17:47:17 · 142 阅读 · 0 评论 -
MySQL 面试题
他们被用于保存值,该值的准确精度是极其重要的值,例如与金钱有关的数。一个 InnoDb 引擎存储在一个文件空间(共享表空间,表大小不受操作系统控制,一个表可能分布在多个文件里),也有可能为多个(设置为独立表空,表大小受。在缺省模式下,MySQL 是 autocommit 模式的,所有的数据库更新操作都会即时提交,所以在缺省情况下,MySQL 是不支持事务的。事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位,事务回滚是指将该事务已经完成的对数据库的更新操作撤。原创 2022-09-17 17:37:33 · 169 阅读 · 0 评论 -
Redis 面试题
答:Jedis 是 Redis 的 Java 实现的客户端,其 API 提供了比较全面的 Redis 命令的支持;答:如果你使用的是 32 位的 Redis 实例,可以好好利用 Hash,list,sorted set,set等集合类型数据,因为通常情况下很多小的 Key-Value 可以用更紧凑的方式存放。1、Master 最好不要写内存快照,如果 Master 写内存快照,save 命令调度 rdbSave函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性。单个操作是原子性的。原创 2022-09-15 18:00:01 · 132 阅读 · 1 评论 -
Dubbo 面试题
Dubbo 是通过 JDK 的 ShutdownHook 来完成优雅停机的,所以如果使用kill -9 PID 等强制关闭指令,是不会执行优雅停机的,只有通过 kill PID 时,才。Dubbo 的 Provider 启动时,需要与注册中心交互,先注册自己的服务,再订阅自己的服务,订阅时,采用了观察者模式,开启一个 listener。:服务接口透明代理,生成服务的客户端 Stub 和 服务端的 Skeleton,以 ServiceProxy 为中心,扩展接口为 ProxyFactory。原创 2022-09-14 18:56:31 · 174 阅读 · 0 评论 -
MyBatis 面试题
接口的全限名,就是映射文件中的 namespace 的值;它的原理是,使用 CGLIB 创建目标对象的代理对象,当调用目标方法时,进入拦截器方法,比如调用 a.getB().getName(),拦截器 invoke()方法发现 a.getB()是。Mapper 接口里的方法,是不能重载的,因为是使用 全限名+方法名 的保存和寻找策略。分页插件的基本原理是使用 Mybatis 提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的 sql,然后重写 sql,根据 dialect 方言,添加对应的物。原创 2022-09-13 22:16:59 · 161 阅读 · 0 评论