![](https://img-blog.csdnimg.cn/20210419143909737.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java InterView
文章平均质量分 78
总结java面试中常见问题,涉及集合、IO、多线程、并发等等
不会叫的狼
人类最大的进步就是学会共享!
展开
-
Java笔试题
5.18:JAVA面试题Java笔试题目及答案原创 2023-11-17 21:35:14 · 86 阅读 · 0 评论 -
线程池的使用场景
线程池的使用场景原创 2023-02-20 22:56:56 · 6151 阅读 · 0 评论 -
异步执行结果-Callable、Future、FutureTask
异步执行结果-Callable、Future、FutureTask原创 2023-02-17 17:44:39 · 246 阅读 · 0 评论 -
面试网址汇总
整理Java学习&&面试指南原创 2023-02-11 16:28:19 · 98 阅读 · 0 评论 -
线程池整理汇总
线程池原创 2023-02-11 13:46:33 · 948 阅读 · 0 评论 -
面试题--框架篇
面试题--框架篇原创 2022-09-26 16:33:25 · 575 阅读 · 0 评论 -
面试题--基础篇
Java面试题--基础篇原创 2022-09-19 20:30:01 · 352 阅读 · 0 评论 -
分析函数-over(partition by ... order by ...)
1、分析函数可以返回明细加统计结果。2、分析函数主要体现于自身表的关联查询,大大提升了sql的查询效率。3、row_number的用途非常广泛,排序最好用它,它会为查询出来的每一行记录生成一个序号,依次排序且不会重复。4、rank、dense_rank排序字段值相同的情况,如果使用rank函数来生成序号,over子句中排序字段值相同的序号是一样的。原创 2022-06-06 15:37:43 · 535 阅读 · 0 评论 -
外连接和自连接
外连接:全连接、左连接、右连接内连接:连接的源表和目的表是同一个,一般用于查询表的分层数据。原创 2022-06-06 13:35:04 · 183 阅读 · 0 评论 -
Java常见拷贝以及框架常见拷贝
1、System.arraycopy()实现数组拷贝,native方法,效率高。2、Arrays.copyOf()生成新的数组对象,指定数组长度。3、Apache的BeanUtils.copyProperties浅拷贝,populate方法可以Map集合封装JavaBean4、Spring的BeanUtils、CGLIB BeanCopier浅拷贝,CGLIB BeanCopier效率高5、orika实现对象拷贝是深拷贝原创 2022-05-22 02:28:59 · 460 阅读 · 0 评论 -
Java对象拷贝
1、clone(浅拷贝)会创建一个对象的副本,是native方法,效率高。2、浅拷贝,如果原型对象的成员变量是值类型,将复制一份给拷贝对象;如果原型对象的成员变量是引用类型,则将引用对象的地址复制一份给拷贝对象。原型对象和拷贝对象的引用类型变量指向相同的内存地址。3、深拷贝,无论原型对象的成员变量是值类型还是引用类型,都将复制一份给拷贝对象。4、建议使用序列化的方式来实现对象的深拷贝。原创 2022-05-22 00:32:19 · 2591 阅读 · 0 评论 -
Java创建对象方式
Java创建对象有5种方式:1、通过 new 关键字2、通过 Class 类的 newInstance() 方法3、通过 Constructor 类的 newInstance 方法4、clone 方法5、序列化原创 2022-05-21 18:08:52 · 649 阅读 · 0 评论 -
asm(Java字节码操控框架)和 CGlib(Code Generation Library)
1、asm 是一个 Java 字节码操控框架。它能够以二进制形式修改已有类或者动态生成类。2、CGLib基于asm,将代理对象类的class文件加载进来,通过修改其字节码动态生成子类,在子类中采用方法拦截的技术拦截所有父类方法的调用并顺势织入横切逻辑。3、FastClass可以直接定位到要调用的方法进行调用,这样省去了反射调用,所以效率比JDK动态代理快。...原创 2022-06-01 00:48:37 · 2126 阅读 · 0 评论 -
Java枚举-enum
1、枚举用于声明一组常量。可与switch结合使用,可以直接判断枚举类型。2、如果枚举类中只有一个对象,则可以作为单例模式的实现方式。3、枚举类内置的方法:values()、valueOf()、ordinal(),枚举成员默认都被 final、public, static 修饰4、可以自定义枚举方法,编写属性对应构造方法、get方法5、枚举可以实现接口原创 2022-06-02 01:07:16 · 207 阅读 · 0 评论 -
说说concurrenthashmap的底层实现?说说hashmap和concurrenthashmap的区别
ConccurrentHashMap,通过分段锁的形式来实现高效的并发操作。转载 2022-06-05 16:23:56 · 245 阅读 · 0 评论 -
Java并发-ThreadLocal
1、ThreadLocal为变量在每个线程中都创建了一个副本,且该副本只能由当前 Thread 使用,其它 Thread 不可访问,那就不存在多线程间共享的问题。2、Synchronized用于线程间的数据共享,而ThreadLocal则用于线程间的数据隔离。3、Thread线程包含ThreadLocalMap属性,ThreadLocal的弱引用作为key。4、ThreadLocal 变量通常被private static修饰。...原创 2022-05-31 02:10:38 · 633 阅读 · 0 评论 -
Java四大引用
1、Java四大引用:强引用、软引用、弱引用、虚引用。2、强引用:不可能被垃圾回收器回收的,造成 Java 内存泄露的原因之一。3、软引用:只有当内存不足时垃圾回收器才会去清理这些对象。适合用在缓存中。4、弱引用:无论内存够不够,只要垃圾回收器启动,弱引用关联的对象肯定被回收。解决内存泄露的问题5、虚引用:管理堆外内存的原创 2022-05-25 02:12:48 · 277 阅读 · 0 评论 -
synchronized关键字面试题
synchronized面试题原创 2022-06-05 01:14:47 · 443 阅读 · 0 评论 -
synchronized原理
synchronized四大特性:原子性、可见性、有序性、可重入性synchronized在JSK1.6之前是互斥锁,JDK1.6后对它进行优化,引入了偏向锁,轻量级锁,自旋锁等概念。锁消除:去除不可能存在共享资源竞争的锁。偏向锁:偏向锁是在单线程执行代码块时使用的机制,把线程的ID记录在对象的Mark Word中,当同一个线程再次进入时,就不再进行同步操作。自适应的CAS自旋:不断地循环检测锁是否被释放轻量级锁:将对象的Mark Word复制到当前线程的Lock Record中,并将对象的Mar原创 2022-06-04 16:01:18 · 614 阅读 · 0 评论 -
CAS机制面试题
CAS是乐观锁,线程不堵塞,但是CPU开销大,适合并发不太高的场景。synchronized是悲观锁,会使获取不到锁的线程堵塞,涉及线程上下文切换,效率低,但保证线程安全,适合高并发场景。原创 2022-06-05 15:48:50 · 869 阅读 · 0 评论 -
CAS和自旋锁
1、CAS:Compare And Swap即比较并替换,先检查旧值一致后才会替换。2、CAS自旋锁:指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待获取,直到获取到锁才会退出循环。3、原子操作类:AtomicInteger、AtomicLong、AtomicBoolean、AtomicReference4、CAS机制ABA问题.........原创 2021-04-19 17:01:08 · 4235 阅读 · 1 评论 -
Java并发编程概述-学习路线
并发编程解决的就是多线程访问共享变量时线程安全问题,同步机制保证线程安全。原创 2022-06-03 19:52:02 · 355 阅读 · 0 评论 -
Java类加载器-ClassLoader
1、ClassLoader用来加载class字节码文件,生成类对象。2、系统内置的ClassLoader通过双亲委托机制来加载指定路径下的class和资源。3、ContextClassLoader与线程相关,可以获取和设置类加载器。4、灵活运行自定义ClassLoader,可以解决类冲突问题,实现热加载以及热部署,甚至可以实现jar包的加密保护。转载 2022-05-27 18:21:02 · 1862 阅读 · 0 评论 -
JMM-Java Memory Model(Java内存模型)
1、JMM屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果。2、线程的工作内存是主内存的副本拷贝3、JMM三大特性:原子性,可见性,有序性4、JMM八种内存交互操作:lock read load use assign store write unlock5、volatile:保证线程间变量的可见性、禁止CPU进行指令重排序...原创 2022-05-30 17:33:54 · 194 阅读 · 0 评论 -
JVM-Java Virtual Machine(Java虚拟机)
1、JVM内存模型包括线程共享区域、线程私有区域。2、线程共享区域:包括堆和方法区,堆上存放对象和数组,方法区存放类的信息、静态变量和常量。3、线程私有区域:包括虚拟机栈、本地方法栈和程序计数器。4、虚拟机栈中是一个个栈帧,每个栈帧对应一个被调用的方法,本地方法栈执行的是本地方法。5、程序计数器中保存的是当前需要执行的指令地址。......原创 2022-05-30 01:23:34 · 1258 阅读 · 0 评论 -
什么是JVM?什么是JMM?
什么是JVM?什么是JMM?https://blog.csdn.net/qq_39681830/article/details/105777124JVM内存模型讲解https://blog.csdn.net/qq_33589510/article/details/116423830?utm_medium=distribute.pc_feed.none-task-blog-yuanlijihua_tag_v1-1.nonecase&dist_request_id=undefined&de原创 2021-05-06 17:03:36 · 92 阅读 · 0 评论