随笔分类 - Java
摘要:前言 多线程在面试中基本上已经是必问项了,面试官通常会从简单的问题开始发问,然后再一步一步的挖掘你的知识面。 比如,从线程是什么开始,线程和进程的区别,创建线程有几种方式,线程有几种状态,等等。 接下来自然就会引出线程池,Lock,Synchronized,JUC的各种并发包。然后就会引出 AQS、
阅读全文
摘要:前言 上篇文章介绍了 "HashMap" 源码后,在博客平台广受好评,让本来己经不打算更新这个系列的我,仿佛被打了一顿鸡血。真的,被读者认可的感觉,就是这么奇妙。 然后,有读者希望我能出一版 ConcurrentHashMap 的解析。所以,今天的这篇文章,我准备讲述一下 ConcurrentHas
阅读全文
摘要:做Java开发的,现在普遍都用上idea了。可以说,idea是当之无愧的Java开发神器。如果,你现在还没用idea,那肯定是你还没有感受过它的强大。 好了,话不多说,今天的主题主要是教大家怎么通过idea快速的查看一个类的类图关系,即一个类继承了哪些类,实现了哪些接口,以及接口有哪些子接口和实现类
阅读全文
摘要:背景 最近,idea又被整治了,所以一大批激活码都失效了。我之前已经有2018版的永久激活了,所以非常淡定~,也没打算升级版本。但是,最近发现周围的人都在讨论这个问题。于是,我也找到了2019.3最新版的破解方法,感受了一下最新版有什么不同。 破解步骤 如果,你已经安装过最新版的idea了,就不需要
阅读全文
摘要:通常,我们在写java程序的时候,似乎很少关注内存分配和垃圾回收的问题。因为,这部分工作,JVM已经帮我们自动实现了。 这样看起来,好像很美好,但是任何事情都有两面性。虽然JVM会自动的进行垃圾回收,但是,如果遇到有些问题,JVM自己也处理不了呢? 因此,我们需要了解一下JVM垃圾回收是怎样运作的,
阅读全文
摘要:前言 之前详细介绍了Java类的整个加载过程( "类加载机制详解" )。虽然,篇幅较长,但是也不要被内容吓到了,其实每个阶段都可以用一句话来概括。 1)加载:查找并加载类的二进制字节流数据。 2)验证:保证被加载的类的正确性。 3)准备:为类的静态变量分配内存,并设置默认初始值。 4)解析:把类中的
阅读全文
摘要:之前在介绍JVM内存模型的时候(参看: "JVM内存模型" ),提到了在运行时数据区之前,有个Class Loader,这个就是类加载器。用以把Class文件中的描述信息加载到内存中运行和使用。以下是《深入理解Java虚拟机第二版》对类加载器机制的定义原文: 虚拟机把描述类的数据从Class文件加载
阅读全文
摘要:在JVM中,为了减少字符串对象的重复创建,维护了一块特殊的内存空间,这块内存就被称为字符串常量池。 在JDK1.6及之前,字符串常量池存放在方法区中。到JDK1.7之后,就从方法区中移除了,而存放在堆中。以下是《深入理解Java虚拟机》第二版原文: 对于HotSpot虚拟机,根据官方发布的路线图信息
阅读全文
摘要:如果想了解JVM内存模型,首先我们要知道JVM是什么?JVM全称 Java Virtual Machine ,即Java虚拟机,是用于运行Java程序编译后的字节码文件。 JVM最常见的三种有: 1.Sun公司的 HotSpot,是目前使用最广泛的Java虚拟机。 2.BEA公司的 JRockit,
阅读全文
摘要:单例模式,是特别常见的一种设计模式,因此我们有必要对它的概念和几种常见的写法非常了解,而且这也是面试中常问的知识点。 所谓单例模式,就是所有的请求都用一个对象来处理,如我们常用的Spring默认就是单例的,而多例模式是每一次请求都创建一个新的对象来处理,如structs2中的action。 使用单例
阅读全文
摘要:集合排序,Comparator,Comparable
阅读全文
摘要:代理模式,静态代理,JDK动态代理,cglib动态代理
阅读全文