《Java面试核心知识》突击系列
文章平均质量分 92
Java面试的核心知识,面试前必看突击系列。
一只IT攻城狮
一个喜欢诗和远方的程序媛
展开
-
MySQL数据库优化看这一篇就够了(最全干货篇)
当面试官让你聊聊MySQL数据库性能优化,你还是只能回答优化sql,建索引吗?让我们看看还可以从哪些方面聊聊吧。其实你还可以从网速、数据量、数据库日志、内存等问题、硬件配置,当前占用资源、硬盘碎片或索引碎片等等诸多方面分析聊聊。原创 2023-06-02 09:58:10 · 1554 阅读 · 1 评论 -
Java动态代理详解
JDK动态代理:适用于实现了接口的类,通过InvocationHandler处理代理逻辑。CGLIB动态代理:适用于没有实现接口的类,通过继承实现代理,使用MethodInterceptor处理代理逻辑。性能更优。动态代理在AOP(面向切面编程)、拦截器、权限控制、事务管理等领域有广泛应用,提供了灵活的方式来在运行时增强对象行为。原创 2024-06-19 19:20:16 · 473 阅读 · 0 评论 -
Java内存模型(JMM)详解
Java内存模型(JMM)提供了一组规则,确保多线程程序在不同平台上的一致性和正确性。通过理解JMM的核心概念、关键字和同步机制以及 happens-before 规则,开发者可以编写出高效且线程安全的并发程序。原创 2024-06-18 11:05:45 · 926 阅读 · 0 评论 -
Java高频面试题整理(几万字)
吐血整理万字面试题原创 2024-06-16 14:33:05 · 1106 阅读 · 0 评论 -
sql优化常用的方法
要查询的数据就不能只在索引树里找了,得需要回表操作才能完成查询的工作,再加上是左模糊匹配,无法利用索引树的有序性来快速定位数据,所以得在索引树逐一遍历,获取主键值后,再到聚簇索引树检索到对应的数据行,这样实在太累了。离散型非常的差,优化器可能直接就选择不走索引了,因为优化器可能认为,走索引和全表扫描差不多。SQL语句中IN包含的值不应过多,MySQL对于IN做了相应的优化,即将IN中的常量全部存储在一个数组里面,而且这个数组是排好序的。) 是例外,并不会把全部字段取出来,而是专门做了优化,不取值。原创 2023-05-29 15:40:56 · 1793 阅读 · 0 评论 -
Java基础面试题突击系列1
Java基础面试题突击1:一、JDK 和 JRE 有什么区别? 二、Java为什么能跨平台? 三、Java基本数据类型 四、java中的异常分类及处理 五、== 和 equals的区别是什么? 六、创建对象的几种方法 七、重载和重写 八、权限修饰符 九、String、String StringBuffffer 和 StringBuilder 的区别是什么? 十、Collection与Collections的区别原创 2023-05-16 17:41:36 · 932 阅读 · 0 评论 -
Java基础面试题突击系列2
Java基础面试题突击2:一、ArrayList和linkedList的区别二、HashMap和HashTable的区别三、Java自动装箱与拆箱四、线程和进程的区别五、什么是java的局部变量、成员变量和全局变量?六、Java的四种引用,强弱软虚七、volatile关键字八、final有哪些用法?九、static都有哪些用法十、a=a+b与a+=b有什么区别吗原创 2023-05-18 18:16:50 · 586 阅读 · 0 评论 -
Java基础面试题突击系列3
Java基础面试题突击3:一、接口和抽象类有什么区别?二、获取一个类Class对象的方式有哪些?三、String str="i"与 String str=new String("i")一样吗?四、Object类常用方法五、wait()、notify区别六、notify和notifyAll的区别七、try catch finally,try里有return,finally还执行么?八、深拷贝和浅拷贝的区别是什么?九、HashMap 与ConcurrentHashMap 的异同十、Java原创 2023-05-19 16:00:44 · 632 阅读 · 0 评论 -
Java基础面试题突击系列4
一、守护线程(服务线程)二、红黑树有哪几个特征?三、线程的 run() 和 start() 有什么区别和关系?四、多线程的上下文切换五、get方式和post方式有何区别六、Java中用到的线程调度算法七、创建线程有哪几种方式?八、线程有哪些状态?九、线程池都有哪些状态?十、线程池实现原理十一、线程池4种拒绝策略十二、Java中CycliBarriar和CountdownLatch的区别十三、怎么检测一个线程是否拥有锁十四、不可变对象十五、线程池中 submit() 和 execu原创 2023-05-23 09:43:30 · 350 阅读 · 0 评论 -
Java基础面试题突击系列5
一、java反射二、静态变量和实例变量的区别三、Java 序列化中如果有些字段不想进行序列化,怎么办?四、&和&&的区别?五、3*0.1 == 0.3返回值是什么六、用最有效率的方法计算 2 乘以 8?七、float f=3.4;是否正确?八、Java 中的Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?九、switch 是否能作用在 byte 上,是否能作用在 long 上?十、char 型变量中能不能存贮一个中文汉字?十一、String s =原创 2023-05-24 15:17:11 · 852 阅读 · 0 评论 -
Java基础面试题突击系列6
当线程 A 持有独占锁a,并尝试去获取独占锁 b 的同时,线程 B 持有独占锁 b,并尝试获取独占锁 a 的情况下,就会发生 AB 两个线程由于互相持有对方需要的锁,而发生的阻塞现象,我们称为死锁。线程局部变量是局限于线程内部的变量,属于线程自身所有,不在多个线程间共享。Java 提供 ThreadLocal 类来支持线程局部变量,是一种实现线程安全的方式。但是在管理环境下(如 web 服务器)使用线程局部变量的时候要特别小心,在这种情况下,工作线程的生命周期比任何应用变量的生命周期都要长。原创 2023-05-28 09:39:25 · 293 阅读 · 0 评论 -
ThreadLocal为什么容易内存泄露?
而key被保存到了弱引用WeakReference对象中,ThreadLocal在没有外部强引用时,发生GC时会被回收(弱引用就是只要JVM垃圾回收器发现了它,就会将之回收),而这个Entry对象中的value就有可能一直得不到回收,那时就会发生内存泄露。ThreadLocal提供了线程的局部变量,每个线程都可以通过set()和get()来对这个局部变量进行操作,但不会和其他线程的局部变量进行冲突,实现了线程的数据隔离。3、弱引用:弱引用就是只要JVM垃圾回收器发现了它,就会将之回收。原创 2023-05-22 17:32:30 · 932 阅读 · 0 评论 -
JAVA自定义注解
根据注解是否包含成员变量,可以分为如下两类:1、标记注解:没有定义成员变量的注解类型被称为标记注解。这种注解仅利用自身的存在与否来提供信息,如前面介绍的 @Override、@Test 等都是标记注解。2、元数据注解:包含成员变量的注解,因为它们可以接受更多的元数据,所以也被称为元数据注解。原创 2023-05-26 11:45:37 · 3301 阅读 · 0 评论 -
Java内部类(成员内部类、静态嵌套类、方法内部类、匿名内部类)
Java 类中不仅可以定义变量和方法,还可以定义类,这样定义在类内部的类就被称为内部类。根据定义的方式不同,Java内部类分为: 成员内部类、静态嵌套类、方法内部类、匿名内部类四种。原创 2023-05-26 14:16:40 · 1210 阅读 · 0 评论 -
Java反射
Java 中的反射机制:是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能成为 Java 语言的反射机制。原创 2023-05-16 11:26:14 · 232 阅读 · 0 评论