![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java_提高_源码
文章平均质量分 88
Simba_cheng
低调,低调
展开
-
Java - 提高(1) - 抽象类与接口
Java基础系列学习笔记参考资料来源 :http://www.cnblogs.com/chenssy/ , 以及其他网络上的学习资料如有错误 , 烦请指正 , 欢迎讨论抽象类在面向对象的领域中一切都是对象,同样所有的对象都是通过类来描述的,但并不是所有的类都来描述对象的.如果一个类没有足够的信息来描述一个具体对象,而需要其他具体的类来支撑它,那这样的类,我们称之原创 2017-05-22 22:19:54 · 419 阅读 · 0 评论 -
深入 -- 双引号字符串加号(+)拼接 创建了几个对象?
双引号字符串加号(+)拼接 创建了几个对象?结论先行:双引号字符串 加号(+) 拼接,不论多少,只创建了一个对象。昨天看到一个题目,挺有意思的。大意是:String a = "1"+"2"+"3"+"4";创建了几个对象??我当时第一反应是1个对象。为什么呢?因为 双引号字符串 直接写是在编译器就直接生成一个对象,class在编译的时候直接放入字符串常量池的。这个知识点,可能时间有点久,自己也不太...原创 2018-06-23 11:17:43 · 5551 阅读 · 2 评论 -
深入 -- Class反射
Class反射是深入学习Java必须的,而且也是学习Spring内幕所需要的。前言反射是Java语言的特征之一,它允许运行中的Java程序获取自身的信息,并且可以操作类或对象的内部属性。Java语言允许通过程序化的方式间接对Class进行操作,Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象。通过该元信息对象可以获取Class的结构信息:如构造函数、属性和方法等....原创 2018-06-24 18:21:28 · 308 阅读 · 0 评论 -
深入 -- 为什么不能根据返回类型来区分重载?
昨天上网乱翻,看到一个问题,挺有意思的。重载(方法名相同、参数列表不同)这个概念,相信大家都知道了,很多面试都会问到。但为什么不能根据返回类型来区分重载?首先重载是Java多态的一种体现,它实现的是编译时的多态。举个例子:float max(int a, int b);int max(int a, int b);上面两个方法,别人调用的时候,不要返回值,直接就是:max(...),你能区分出它想...原创 2018-06-27 22:49:23 · 23373 阅读 · 7 评论 -
深入 -- 代理模式与动态代理
代理模式与动态代理本文只讲使用、设计逻辑,略微分析,不会深入源码。先在实际场景中使用,再去怼源码,否则,早晚也是忘记…代理模式先简单叙述下代理模式。很经典的例子就是,西门庆、王婆、潘金莲了吧…西门庆并不能直接去找潘金莲,而是通过王婆找到了潘金莲,进而发生了后面的事情。在这里,王婆就是代理类,而潘金莲则是被代理的类。代码先行:创建一个汽车接口CarInter,里面两个方法,开车、按喇叭。packag...原创 2018-06-26 05:05:08 · 278 阅读 · 0 评论 -
Java - 提高-源码(4) - LinkedHashMap
LinkedHashMap源码解析源码解析对应JDK1.7JDK1.7源码下载地址:JDK1.7源码下载JDK 源码注释Hash table and linked list implementation of the Map interface, with predictable iteration order. This implementation differs from HashMap i...原创 2017-07-04 23:54:21 · 462 阅读 · 0 评论 -
Java - 提高-源码(10) - HashMap
HashMap的实现HahsMap 继承AbstractMap;HashMap 的key和value都是可以为null;HashMap 是无序的;HashMap 不是同步的,如果需要线程安全的HahsMap,可以通过Collections类的静态方法synchronizedMap获得线程安全的HashMap。原创 2017-06-18 00:14:20 · 486 阅读 · 0 评论 -
Java - 提高-源码(2) - ArrayList
ArrayList源码对应JDK1.7JDK1.7源码下载地址:JDK1.7源码JDK 源码注释Resizable-array implementation of the List interface. Implements all optional list operations, and permits all elements, including null. In addition to ...原创 2017-06-25 19:31:05 · 483 阅读 · 0 评论 -
Java - 提高(8) - equals和hashCode
equals和hashCodeHashCode的作用Object的源码中,hashCode是这样定义的:public native int hashCode();JDK API中对HashCode的描述:返回该对象的哈希码值。支持此方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。实际上,由 Object 类定义的 hashCode原创 2017-07-05 23:20:50 · 400 阅读 · 0 评论 -
Java - 提高(0) - Collection
Java容器类类库的用途是"保存对象",并将其划分为两个不同的概念Collection:一个独立元素的序列,这些元素都服从一条或多条规则。List必须按照插入的顺序保存元素,而Set不能有重复元素。Queue按照排队规则来确定对象产生的顺序(通常与它们被插入的顺序相同)....... Map:一组成对的"键值对"对象,允许你使用键来查找值。ArrayList允许你使用数字(下标)来查找值,因此在某...原创 2018-03-30 10:44:28 · 212 阅读 · 0 评论 -
Java - 提高-源码(5) - HashTable
HashTable源码解析HashTable键值对不允许为nullHashTable线程安全因为主要的public方法都是synchronized原创 2017-07-05 21:59:41 · 347 阅读 · 0 评论 -
Java - 提高(9) - 集合
集合1. Collection接口 Collection接口是最基本的集合接口,它不提供直接的实现,如List/Set 都是继承自Collection接口 Collection所代表的是一种规则,它所包含的元素都必须遵循一条或者多条规则。如有些允许重复有原创 2017-10-22 09:34:59 · 222 阅读 · 0 评论 -
Java - 提高(7) - 内部类
内部类为什么要使用内部类?在《Think in java》中有这样一句话:使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。在我们程序设计中有时候会存在一些使用接口很难解决的问题,这个时候我们可以利用内部类提供的、可以继承多个具体的或者抽象的类的能力来解决这些程序设计问题。原创 2017-07-05 23:12:48 · 300 阅读 · 0 评论 -
Java - 提高-源码(6) - HashSet
HashSet源码解析源码解析对应JDK1.7JDK1.7源码下载地址:JDK1.7下载地址HashSet源码中官方注释是这样描述的:This class implements the Set interface, backed by a hash table (actually a HashMap instance). It makes no guarant原创 2017-07-05 22:12:00 · 325 阅读 · 0 评论 -
Java - 提高-源码(3) - LinkedList
LinkedList源码解析链表LinkedList是基于链表实现的,链表与数组一样,都作为数据的基本存储结构,但是在存储原理上二者是不同。数组中,数据是存储在一段连续的内存空间中,可以通过下标方式访问数组中的元素。链表中,元素是存储在不同的内存空间中,前一个元素的位置维护了后一个元素在内存中的地址。单向链表我们将链表中的每一个元素称之为一个节点原创 2017-07-02 21:41:18 · 408 阅读 · 0 评论 -
深入 -- 方法的参数传递
方法参数传递有两种方式按值调用:表示方法接收的是调用者提供的值。按引用调用:表示方法接收的是调用者提供的变量地址。Java程序设计语言总是采用按值调用。也就是说,方法得到的是所有参数值的一个拷贝。举个例子:public static void main(String[] args) { TestMethod testMethod = new TestMethod(); int a = 10;...原创 2018-07-05 20:27:36 · 497 阅读 · 0 评论