Java基础
etron_jay
自信满满地让自己的自信满满
展开
-
《Thinking in Java》第一章笔记
前言:我们之所以将自然界分解,组织成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共同遵守的协定的参与者。这个协定以语言的形式固定下来……除非赞成这个协定中规定的有关语言信息的组织和分类,否则我们根本无法交谈。 ——Benjamin Lee Whorf(1897~1941)第一章 对象导论1.1抽象过程一、编程语言人们所能够解决的问题的复杂性直接取决于抽象的类型和质量...原创 2019-04-28 20:43:45 · 217 阅读 · 0 评论 -
LinkedHashSet源码分析
LinkedHashSet源码分析继承结构public class LinkedHashSet<E> extends HashSet<E> implements Set<E>, Cloneable, java.io.Serializable { private static final long serialVersionU...原创 2019-10-05 22:28:09 · 337 阅读 · 0 评论 -
TreeSet源码分析
TreeSet源码分析TreeSet简介java.lang.Object ↳ java.util.AbstractCollection<E> ↳ java.util.AbstractSet<E> ↳ java.util.TreeSet<E>public class TreeSe...原创 2019-10-05 22:07:51 · 238 阅读 · 1 评论 -
TreeMap源码分析
TreeMap源码分析前言TreeMap的基本概念:TreeMap集合是基于红黑树(Red-Black tree)的 NavigableMap实现。该集合最重要的特点就是可排序,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。这句话是什么意思呢?就是说TreeMap可以对添加进来的元素进行排序,可以按照默认的排序方式,...原创 2019-10-05 21:53:54 · 182 阅读 · 0 评论 -
HashSet源码分析
HashSet源码分析对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成。利用HashMap且将所有的Entry值都设置为PRESENT,而key用来存数据,则保证当前HashMap存的key为唯一性。HashSet特点...原创 2019-10-05 20:47:42 · 194 阅读 · 0 评论 -
Vector源码分析
转载来源:https://blog.csdn.net/hla199106/article/details/47356165Vector简介Vector也是基于数组实现的,是一个动态数组,其容量能自动增长。Vector是JDK1.0引入了,它的很多实现方法都加入了同步语句,因此是线程安全的(其实也只是相对安全,有些时候还是要加入同步语句来保证线程的安全),可以用于多线程环境。接口的作用:...原创 2019-10-05 19:30:50 · 162 阅读 · 0 评论 -
LinkedList类
LinkedList类一、LinkedList定义LinkedList是一个用链表实现的集合,元素有序且可以重复。[外链图片转存失败(img-Z7rrHGkO-1568202117573)(F:\typora笔记\源码笔记\ArrayList\图片\09.png)][外链图片转存失败(img-sixJKbPo-1568202117574)(F:\typora笔记\源码笔记\ArrayLis...原创 2019-09-11 19:42:36 · 861 阅读 · 0 评论 -
ArrayList
ArrayList一、ArrayList简介1.1ArrayList概述ArrayList是可以动态增长和缩减的索引序列,它是基于数组实现的List类封装了一个动态再分配的Object[] 数组/*** Default initial capacity.*一个类对象都有一个capacity属性,表示它们所封装的Object[]数组的长度,当向ArrayList中添加元素时,该属性值会...原创 2019-09-10 19:37:56 · 13718 阅读 · 3 评论 -
《深入理解Java虚拟机》笔记07之类加载器
7.4 类加载器虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便**让应用程序自己决定如何取获取所需要的类**。实现这个动作的代码模块称为“类加载器”。7.4.1 类与类加载器对于任何一个类,都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。比较...原创 2019-07-01 17:43:35 · 181 阅读 · 0 评论 -
《深入理解Java虚拟机》笔记06之类加载过程
7.1 概述我们知道,在Class文件中描述的各种信息,最终都需要加载到虚拟机中之后才能运行和使用。而虚拟机如何加载这些Class文件?Class文件中的信息进入到虚拟机后会发生什么变化?虚拟机的类加载机制:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。与那些在编译时需要进行连接工作的语言(比如C语言)...原创 2019-07-01 15:26:31 · 218 阅读 · 0 评论 -
《深入理解Java虚拟机》笔记03之对象已死吗
第三章 垃圾收集器与内存分配策略Java与C++之间有一堵由内存动态分布和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。3.1 概述垃圾收集(Garbage Collection,GC),GC的历史比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期时,人们就在思考GC需要完成的3件事情:那些...原创 2019-06-11 12:42:19 · 154 阅读 · 0 评论 -
Java利用爬虫实现记录IP地址和博客网站访客量以及总访问量
背景:我的博客网站地址:www.zengzhongjie.com上线个人网站的时候便在想应该做一个访客记录功能,最终在一些机缘巧合下,自己终于实现了这个本该一开始就实现的小功能。思考过程:ok,记得那天决定实现这个功能后,便在思考应该怎么去实现。整个思考过程如下:首先应该在访客打开首页的时候就应该拿到该访客的IP(因为每一次的访问都是TCP连接,也就是说IP地址不会重复,一个IP便可以...原创 2019-06-04 21:53:46 · 1507 阅读 · 2 评论 -
《深入理解Java虚拟机》笔记05之垃圾收集器
3.5垃圾收集器如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。这里讨论的收集器基于JDK1.7 Update 14之后的HotSpot虚拟机(在这个版本中正式提供了商用的G1收集器,之前G1仍处于实验状态)如下是该虚拟机所包含的所有收集器:在介绍这些收集器各自的特性之前,我们先来明确一个观点:虽然我们是在对各个收集器进行比较,但并非为了挑选出一个最好的收集器。...原创 2019-06-15 19:18:18 · 150 阅读 · 0 评论 -
《深入理解Java虚拟机》笔记02之HotSpot虚拟机对象探秘
2.3 HotSpot虚拟机对象探秘基于实用优先的原则,作者以常用的虚拟机HotSpot和常用的内存区域Java堆为例,深入探讨HotSpot虚拟机在Java堆中对象分配、布局和访问的全过程。2.3.1 对象的创建在语言层面上,创建对象(例如克隆,反序列化)通常仅仅是一个new关键字而已,而在虚拟机中,对象(文中讨论的对象限于普通Java对象,不包括数组和Class对象等)的创建又是怎样一个...原创 2019-06-08 21:26:07 · 283 阅读 · 0 评论 -
《深入理解Java虚拟机》笔记01之运行时数据区域
第一部分-走进Java1.1概述Java能获得如此广泛的认可,除了它拥有一门结构严谨、面向对象的编程语言之外,还有许多不可忽视的优点:它摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想:它提供了一个相对安全的内存管理和访问机制,避免了绝大部分的内存泄漏和指针越界问题:它实现了热点代码检测和运行时编译及优化,这使得Java应用能随着运行时间的增加而获得更高的性能;它有一套完整的应...原创 2019-06-07 18:58:26 · 256 阅读 · 0 评论 -
《深入理解Java虚拟机》笔记04之垃圾收集算法
3.3 垃圾收集算法由于垃圾手机算法的实现涉及大量的程序细节,而且各个平台的虚拟机操作内存的方法又各不相同,这里只是介绍几种算法的思想及其发展过程。3.3.1 标记-清除算法**最基础的收集算法**是“标记-清除”(Mark-Sweep)算法,见名知意,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象,它的标记过程请回忆上一篇博客的“生...原创 2019-06-12 22:06:21 · 214 阅读 · 0 评论 -
HashTable源码解析
HashTable源码解析转载出处:blog.csdn.net/android_jia…Hashtable与HashMap有哪些区别?1.关于null,HashMap允许key和value都可以为null,而Hashtable则不接受key为null或value为null的键值对。2.关于线程安全,HashMap是线程不安全的,Hashtable是线程安全的,因为Hashtable的许多操...原创 2019-10-05 23:01:24 · 333 阅读 · 0 评论