
java知识目录
java知识目录加精
GeekLeee
这个作者很懒,什么都没留下…
展开
-
六 类加载器(18)
回顾一下类加载过程类加载器总结双亲委派模型双亲委派模型介绍双亲委派模型实现源码分析双亲委派模型的好处如果我们不想要双亲委派模型怎么办?自定义类加载器推荐回顾一下类加载过程类加载过程:加载->连接->初始化。连接过程又可分为三步:验证->准备->解析。一个非数组类的加载阶段(加载阶段获取类的二进制字节流的动作)是可控性最强的阶段,这一步我...转载 2019-07-04 10:42:27 · 255 阅读 · 0 评论 -
五 类加载过程(17)
类加载过程加载验证准备解析初始化公众号JavaGuide 后台回复关键字“1”,免费获取JavaGuide配套的Java工程师必备学习资源(文末有公众号二维码)。类加载过程Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚拟机是如何加载这些 Class 文件呢?系统加载 Class 类型的文件主要三步:加载->连接->初始化。连接过程又可分...转载 2019-07-04 10:20:37 · 564 阅读 · 0 评论 -
四 类文件结构(16)
类文件结构一 概述二 Class 文件结构总结2.1 魔数2.2 Class 文件版本2.3 常量池2.4 访问标志2.5 当前类索引,父类索引与接口索引集合2.6 字段表集合2.7 方法表集合2.8 属性表集合参考类文件结构一 概述在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只...转载 2019-07-03 21:12:34 · 512 阅读 · 0 评论 -
三 JDK 监控和故障处理工具(15)
JDK 监控和故障处理工具总结JDK 命令行工具jps:查看所有 Java 进程jstat: 监视虚拟机各种运行状态信息jinfo: 实时地查看和调整虚拟机各项参数jmap:生成堆转储快照jhat: 分析 heapdump 文件jstack :生成虚拟机当前时刻的线程快照JDK 可视化分析工具JConsole:Java 监视与管理控制台连接 Jconsole查...转载 2019-07-03 20:34:00 · 415 阅读 · 0 评论 -
二 JVM垃圾回收(14)
JVM 垃圾回收写在前面本节常见面试题本文导火索1 揭开 JVM 内存分配与回收的神秘面纱1.1 对象优先在 eden 区分配1.2 大对象直接进入老年代1.3 长期存活的对象将进入老年代1.4 动态对象年龄判定2 对象已经死亡?2.1 引用计数法2.2 可达性分析算法2.3 再谈引用2.4 不可达的对象并非“非死不可”2.5 如何判断一个常量是废...转载 2019-07-03 11:47:26 · 340 阅读 · 0 评论 -
一 Java内存区域(13)
Java 内存区域详解写在前面 (常见面试题)基本问题拓展问题一 概述二 运行时数据区域2.1 程序计数器2.2 Java 虚拟机栈2.3 本地方法栈2.4 堆2.5 方法区2.5.1 方法区和永久代的关系2.5.2 常用参数2.5.3 为什么要将永久代 (PermGen) 替换为元空间 (MetaSpace) 呢?2.6 运行时常量池2.7 直接...转载 2019-06-25 09:58:26 · 312 阅读 · 0 评论 -
AQS 原理以及 AQS 同步组件总结(12)
目录:1 AQS 简单介绍2 AQS 原理2.1 AQS 原理概览2.2 AQS 对资源的共享方式2.3 AQS底层使用了模板方法模式3 Semaphore(信号量)-允许多个线程同时访问4 CountDownLatch (倒计时器)4.1 CountDownLatch 的三种典型用法4.2 CountDownLatch 的使用示例4.3 CountDownLatc...转载 2019-06-14 10:57:32 · 260 阅读 · 0 评论 -
JUC 中的 Atomic 原子类总结(11)
个人觉得这一节掌握基本的使用即可!本节思维导图:1 Atomic 原子类介绍Atomic 翻译成中文是原子的意思。在化学上,我们知道原子是构成一般物质的最小单位,在化学反应中是不可分割的。在我们这里 Atomic 是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。所以,所谓原子类说简单点就是具有原子/原子操作特征的类。并发包 java...转载 2019-06-13 14:14:16 · 249 阅读 · 0 评论 -
乐观锁与悲观锁(10)
何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它...转载 2019-06-13 10:56:12 · 235 阅读 · 0 评论 -
并发容器总结(9)
一 JDK 提供的并发容器总结二 ConcurrentHashMap三 CopyOnWriteArrayList3.1 CopyOnWriteArrayList 简介3.2 CopyOnWriteArrayList 是如何做到的?3.3 CopyOnWriteArrayList 读取和写入源码简单分析3.3.1 CopyOnWriteArrayList 读取操作的实现3.3....转载 2019-06-05 23:17:04 · 181 阅读 · 0 评论 -
Java并发进阶(8)
Java 并发进阶常见面试题总结1. synchronized 关键字1.1. 说一说自己对于 synchronized 关键字的了解1.2. 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗1.3. 讲一下 synchronized 关键字的底层原理1.4. 说说 JDK1.6 之后的synchronized 关键字底层做了哪些优化,可以详细介绍一下这些优...转载 2019-06-05 13:36:40 · 405 阅读 · 0 评论 -
Java 并发基础(7)
Java 并发基础常见面试题总结1. 什么是线程和进程?1.1. 何为进程?1.2. 何为线程?2. 请简要描述线程与进程的关系,区别及优缺点?2.1. 图解进程和线程的关系2.2. 程序计数器为什么是私有的?2.3. 虚拟机栈和本地方法栈为什么是私有的?2.4. 一句话简单了解堆和方法区3. 说说并发与并行的区别?4. 为什么要使用多线程呢?5. 使用多线...转载 2019-06-05 13:35:15 · 392 阅读 · 0 评论 -
HashMap(JDK1.8)源码学习(6)
HashMap 简介底层数据结构分析JDK1.8之前JDK1.8之后HashMap源码分析构造方法put方法get方法resize方法HashMap常用方法测试感谢 changfubai 对本文的改进做出的贡献!HashMap 简介HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。JDK1.8 之前 Has...转载 2019-06-05 10:47:21 · 205 阅读 · 0 评论 -
LinkedList 源码学习(5)
简介内部结构分析LinkedList源码分析构造方法添加(add)方法根据位置取数据的方法根据对象得到索引的方法检查链表是否包含某对象的方法:删除(remove/pop)方法LinkedList类常用方法测试:简介LinkedList是一个实现了List接口和Deque接口的双端链表。LinkedList底层的链表结构使它支持高效的插入和删除操作,另外它实现了...转载 2019-05-29 18:06:49 · 174 阅读 · 0 评论 -
ArrayList 源码学习(4)
ArrayList简介ArrayList核心源码ArrayList源码分析System.arraycopy()和Arrays.copyOf()方法两者联系与区别ArrayList核心扩容技术内部类ArrayList经典DemoArrayList简介ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元...转载 2019-05-17 09:30:57 · 174 阅读 · 0 评论 -
Java transient关键字使用小记
Java transient关键字使用小记转载 2019-05-16 15:08:56 · 196 阅读 · 0 评论 -
JDK1.7-LinkedList循环链表优化
原文https://juejin.im/post/5bb3026b5188255c393f7cf2https://cloud.tencent.com/developer/article/1336307最近在看jdk1.7的时候,发现LinkedList 和1.6中的变化。首先,简单介绍一下LinkedList:LinkedList是List接口的双向链表实现。由于是链表结构,所以长度没有...转载 2019-05-16 13:55:34 · 768 阅读 · 0 评论 -
JVM运行时数据区(Run-Time Data Areas) - Java内存分配
译文链接Java虚拟机(JVM)定义了在程序执行期间使用的各种运行时数据区域。其中一些JVM数据区域是按线程创建的,而其他JVM数据区域是在JVM启动时创建的,而内存区域是在线程之间共享的。根据使用情况,JVM运行时数据区域可分为六个区域程序计数器(PC)寄存器Java虚拟机(JVM)堆栈本机方法堆栈堆方法区域运行时常量池如上所述,这些记忆区域可分为两类 -每个线程创建 -...转载 2019-05-16 11:27:38 · 311 阅读 · 0 评论 -
ArrayList 的扩容机制
一 先从 ArrayList 的构造函数说起ArrayList有三种方式来初始化,构造方法源码如下: /** * 默认初始容量大小 */ private static final int DEFAULT_CAPACITY = 10; private static final Object[] DEFAULTCAPACITY_EMPTY_ELEM...转载 2019-05-15 16:56:04 · 292 阅读 · 0 评论 -
Java集合框架(3)
剖析面试最常见问题之Java基础知识说说List,Set,Map三者的区别?Arraylist 与 LinkedList 区别?补充内容:RandomAccess接口补充内容:双向链表和双向循环链表ArrayList 与 Vector 区别呢?为什么要用Arraylist取代Vector呢?说一说 ArrayList 的扩容机制吧HashMap 和 Hashtable 的...转载 2019-05-15 15:32:11 · 292 阅读 · 0 评论 -
J2EE基础知识(2)
Servlet总结阐述Servlet和CGI的区别?CGI的不足之处:Servlet的优点:Servlet接口中有哪些方法及Servlet生命周期探秘get和post请求的区别什么情况下调用doGet()和doPost()转发(Forward)和重定向(Redirect)的区别自动刷新(Refresh)Servlet与线程安全JSP和Servlet是什么关系JSP工...转载 2019-05-15 15:06:53 · 261 阅读 · 0 评论 -
Collections 工具类和 Arrays 工具类常见方法
Collections 工具类和 Arrays 工具类常见方法Collections排序操作查找,替换操作同步控制Arrays类的常见操作排序 : sort()查找 : binarySearch()比较: equals()填充 : fill()转列表 asList()转字符串 toString()复制 copyOf()Collections 工具...转载 2019-05-15 11:46:52 · 605 阅读 · 0 评论 -
final、static、this、super
final,static,this,super 关键字总结final 关键字static 关键字this 关键字super 关键字参考static 关键字详解static 关键字主要有以下四种使用场景修饰成员变量和成员方法(常用)静态代码块静态内部类静态导包补充内容静态方法与非静态方法static{}静态代码块与{}非静态代码块(构造代码块)参考...转载 2019-05-15 11:24:56 · 235 阅读 · 0 评论 -
Java基础知识(1)
1. 面向对象和面向过程的区别面向过程面向对象2. Java 语言有哪些特点3. 关于 JVM JDK 和 JRE 最详细通俗的解答JVMJDK 和 JRE4. Oracle JDK 和 OpenJDK 的对比5. Java和C++的区别6. 什么是 Java 程序的主类 应用程序和小程序的主类有何不同7. Java 应用程序与小程序之间有那些差别8. 字符型...原创 2019-05-07 10:17:06 · 849 阅读 · 0 评论