随笔分类 -  【java八股文】

摘要:1.mysql的执行顺序 宏观上大致是这么几个步骤: 首先通过连接器和mysql建立连接,然后再通过分析器、优化器和执行器最终返回一个执行结果,优化器会根据一些成本的计算决定具体走哪个索引或者是连表的一些顺序,最终会生成一个执行计划,执行器会根据这个执行计划去调用存储引擎层的API接口,然后存储引擎 阅读全文 »
posted @ 2022-11-18 19:15 求道之愚者 阅读(25) 评论(0) 推荐(0) 编辑
摘要:封装: 把客观事务封装成抽象的一个类,并且类可以通过4个修饰限制符,把自己的数据和方法只让可信的类或者是对象来操作,对不可信的进行信息隐藏, 对数据提供了保护,保证数据的安全 对外部隐藏了细节,使调用者不必关心内部实现,便于开发者使用和维护 继承: 是一种能力,使新类能够继承现有类的属性和方法的能力 阅读全文 »
posted @ 2022-11-11 17:44 求道之愚者 阅读(21) 评论(0) 推荐(0) 编辑
摘要:ArrayList是一个数组类型的存储容器,默认大小是10个容量的数组,容量也可以在构件ArrayList的时候通过构造器指定大小,当容量不够时会进行自动扩容到原来的1.5倍,由于底层是数组,所以和数组的扩容原理是一致的,基本是三步: 首先创建一个新的数组,容量是原来的1.5倍 其次再调用Array 阅读全文 »
posted @ 2022-11-10 15:54 求道之愚者 阅读(35) 评论(0) 推荐(0) 编辑
摘要:Java反射的优点: 增加程序的灵活性,可以在程序运行过程中动态的对类进行修改和操作。 提高代码的复用率,比如动态代理,就是利用了反射来实现。 可以在运行时轻松获取任意一个类的方法、属性,并且还能通过反射进行动态调用。 Java反射缺点: 反射会涉及动态类型的解析,所以JVM无法对这些代码进行优化, 阅读全文 »
posted @ 2022-10-25 19:30 求道之愚者 阅读(57) 评论(0) 推荐(0) 编辑
摘要:a1==a2的执行结果是true,原因是Integer内部用到了一个享元模式的设计,也就是对于-128~127之间的数字做了一个缓存,使用Integer a1=100这个方式进行复制的时候,java默认会通过valueOf这个方法对100这个数字进行一个装箱操作,从而触发了一个缓存机制,使得a1和a 阅读全文 »
posted @ 2022-10-24 16:30 求道之愚者 阅读(52) 评论(0) 推荐(0) 编辑
摘要:首先,在同一个bean里面不能出现存在id相同的两个bean,否则spring容器在启动时会报错。因为id是表示bean里面的唯一标志符号,所以spring在启动的时候回去验证id的唯一性,一旦发现重复就会报错,而错误发生在spring在对xml的文件的解析转化为BeanDefinition的一个过 阅读全文 »
posted @ 2022-10-24 16:10 求道之愚者 阅读(1041) 评论(0) 推荐(0) 编辑
摘要:1.下面的结果是false String str = new String("aa");String str1 = new String("aa");System.out.println(str == str1); new出来的对象都是在堆上分配对象,==此时比较的是内存地址,str和str1是指向 阅读全文 »
posted @ 2022-10-22 18:23 求道之愚者 阅读(90) 评论(0) 推荐(0) 编辑
摘要:面试场景 Redis作为时下最火的缓存中间件之一,面试的时候面试官肯定会问Redis的相关内容,而往往问的第一个问题就是:你知道Redis有哪几种数据结构吗?你们项目中使用到了哪些数据结构?是怎么使用的? 当你收到这样的三连击之后,是不是蒙了,于是你就如实回答:Redis支持存储5种类型的值:Str 阅读全文 »
posted @ 2022-10-20 19:48 求道之愚者 阅读(60) 评论(0) 推荐(0) 编辑
摘要:双亲委派目的好处: 主要是为了安全性,避免用户自己写的类动态替换了Java的核心类,比如自己写了String替换了Java的String 同时避免了类的重复加载,JVM对于类的区分,不仅仅根据类名,不同的类加载器加载的相同class文件也是不同的两个类。 原理: jdk中存在三个类加载器:BootS 阅读全文 »
posted @ 2022-10-20 18:49 求道之愚者 阅读(18) 评论(0) 推荐(0) 编辑
摘要:==对比的是栈中的值,基本类型是变量的值,引用类型是堆中内存对象的地址 equals,object默认是==,一般会重写。 阅读全文 »
posted @ 2022-10-18 20:51 求道之愚者 阅读(11) 评论(0) 推荐(0) 编辑
摘要:Integer和int的区别: 1.Integer默认值是null,int是0;int只需要定义类型直接赋值,而Integer需要创建对象 2.Integer值存储在堆内存里面,int是存储在栈空间里面 3.Integer作为对象类型,封装了一些方法属性,我们可以利用方法属性操作对象 为什么要设计成 阅读全文 »
posted @ 2022-10-12 12:19 求道之愚者 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 阅读全文 »
posted @ 2022-10-12 12:19 求道之愚者 阅读(17) 评论(0) 推荐(0) 编辑
摘要:先说几个关键点: 栈: 1.每个线程创建一个栈,栈存方法执行信息 2.栈线程私有无法共享 堆: 1.JVM全局唯一的 2.所有线程共享的 3.堆中存对象信息,对象中的值引用直接存在对象内也就是堆内,但是字符串要存在堆中的方法区中,对象中只存引用地址 Java内存模型 执行流程 阅读全文 »
posted @ 2022-10-10 07:57 求道之愚者 阅读(19) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示