java技术
coder_hezi
日积月累,不断前行
展开
-
java浅拷贝与深拷贝
文章目录概述浅拷贝的实现深拷贝的实现写在最后概述简单来说,浅拷贝对于基本数据类型,会拷贝他们的值,而对于引用类型,会拷贝他们的引用地址。下图为浅拷贝。而对于深拷贝来说,会对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容。基本类型(8大基本类型):整形:byte(1字节)、short(2字节)、int(4字节)、long(8字节);浮点型:float(4字节,单...原创 2020-03-21 19:07:41 · 294 阅读 · 0 评论 -
java字节码《java虚拟机》要点精炼
文章目录字节码基础字节码指令本文图片以及部分内容来自Java字节码增强探秘。Java字节码的介绍 字节码基础.java文件通过javac编译后将得到一个.class文件,如下图所示,class文件中都是16进制数。java字节码主要包括以下几部分。(1)魔数,魔数固定的值是CAFEBABY,占用四个字节,用此来判断该文件是否可以被虚拟机所接收。我理解在类加载过程中,校验的第一步格式...原创 2020-03-20 21:34:37 · 230 阅读 · 0 评论 -
java虚拟机之类加载《JAVA虚拟机》要点精炼
文章目录类加载机制类加载的流程0.类加载的时机1.加载2.验证3.准备4.解析5.初始化类加载器类加载器的种类双亲委派机制常量池主要存放两大类常量:字面量与符号引用。字面量是java意义中的常量,诸如final,或文本字符串。而符号引用则是编译原理中的概念,主要包括:类和接口的全限定名(com/enjoy/learn/core/oop/method/TestClass(理解为加上包名的完整名...原创 2020-03-13 20:59:00 · 345 阅读 · 0 评论 -
Java虚拟机之内存管理与GC机制《JAVA虚拟机》要点精炼
帮助读者理清内存管理与GC机制的重点。原创 2020-03-12 21:23:17 · 685 阅读 · 0 评论 -
Java集合之ArrayList(源码层面上的分析)
文章目录ArrayList简介自动扩容的流程ArrayList的属性构造函数1.无参数的构造函数2.带int类型的构造函数ArrayList简介大家都知道ArrayList是由数组实现的,有自动扩容的功能,在超出限制时,会自动扩容50%,并通过Arrays.copyOf()复制到新的数组。无参数创建时,第一次插入元素时,默认创建大小为10的数组。自动扩容的流程ArrayList的属性...原创 2020-02-04 20:59:15 · 515 阅读 · 0 评论 -
java面试基础题
文章目录题目汇总1.java面向对象编程的四大特性与含义2.String、StringBuffer和StringBuilder的区别?3.String a=""和String a=new String("")的的关系和异同?4.Object的equal()和==的区别?5.装箱、拆箱什么含义?6.int和Integer的区别7.遇见过哪些运行时异常?异常处理机制知道哪些?8.什么是反射,有什么作用...原创 2020-08-27 12:58:40 · 420 阅读 · 2 评论 -
java泛型与反射总结
泛型基础类型变量的限定例如我们有一个泛型方法min,其中的形参是也是一个泛型数组。我们要使用泛型变量smallest的comparTo方法,就要求类型变量T是可以实现Comparable接口的类。为了解决这种问题,我们可以使用这种方式。虽然是接口,但这里也使用了extends。因为这里的含义表示T是绑定类型的子类型。这里T和绑定类型可以是类,也可以是接口。同时一个类型变量可以有多个限定,使...转载 2020-02-29 18:30:38 · 1208 阅读 · 0 评论 -
java集合之HashMap源码分析(常用函数,扩容,哈希冲突,线程不安全问题,HashSet)
深入理解HashMap原创 2020-02-17 00:25:24 · 1487 阅读 · 3 评论 -
java集合之ArrayList与LinkedList的区别
总结1.ArrayList是由动态数组实现的,LinkedList是由双向链表实现的。2.ArrayList的扩充是通过Arrays.copyOf,底层是System.arraycopy,即创建新数组,再将旧数组的元素全部拷贝过去,这个过程的时间复杂度为O(n)。扩充的长度为:Math.max(所需最小容量,1.5倍当前数组长度)。3.Arraylist在add(index,e)或remov...原创 2020-02-14 11:14:07 · 201 阅读 · 0 评论 -
Java集合之LinkedList(源码层面上的分析)
文章目录简介构造方法与链式节点1.构造方法2.节点结构增操作addAll方法参考链接简介概括的说,LinkedList 是线程不安全的,允许元素为null的双向链表。相对于ArrayList,LinkedList的增加和删除操作都节省时间(不需要移动,直接更改节点指向),更改和查找操作都费时间(需要遍历数组去找到目标节点)。因其底层数据结构是链表,所以可想而知,它的增删只需要移动指针即可,...原创 2020-02-13 23:17:00 · 474 阅读 · 0 评论 -
java之双向链表与哈希表实现LRU缓存机制
背景在研究双向队列之前,是遇到了这么一道题。146. LRU缓存机制这道题的思路是HashMap与双向队列的组合。LRU就是删除最近最少使用的数据值。比如我先打开了支付宝,之后打开了手机淘宝,之后打开微信,此时在后台就是如下排列之后我又点击支付宝,在后台中就会来到队友假如缓存容量为3的话,此时又打开了时钟,就会把淘宝从缓存中删除,因为他是最近最少使用的应用。那么这道题的思路很清...原创 2019-10-27 21:01:59 · 721 阅读 · 0 评论 -
Java优先队列/最小堆(PriorityQueue)讲解
参考文章链接定义我们知道队列是遵循先进先出(First-In-First-Out)模式的,但有些时候需要在队列中基于优先级处理对象。举个例子,比方说我们有一个每日交易时段生成股票报告的应用程序,需要处理大量数据并且花费很多处理时间。客户向这个应用程序发送请求时,实际上就进入了队列。我们需要首先处理优先客户再处理普通用户。在这种情况下,Java的PriorityQueue(优先队列)会很有帮助...原创 2019-05-13 22:48:02 · 4964 阅读 · 4 评论 -
深入理解Java的接口和抽象类
深入理解Java的接口和抽象类参考链接抽象类与类的区别抽象类不可以创建实例子类继承抽象类时需要实现抽象方法抽象方法必须是public或者是protected[public] abstract class ClassName { abstract void fun(); } 接口接口是行为的抽象。[public] interface InterfaceName {...原创 2019-10-24 20:30:41 · 174 阅读 · 0 评论