java
文章平均质量分 86
Wayne_y
这个作者很懒,什么都没留下…
展开
-
String类源码分析
String类介绍 String 类是日常开发中使用最频繁的类之一,同时也是非常重要的一个类,因此很有必要针对String类的进一步的理解和分析,而不能仅仅停留在会用的地步。如下图所示,String类实现了Serializable, Comparable, CharSequence接口。String类被final所修饰,也就是说String对象是不可变类,是线程安全的,至于为什么这么设计,后面将...转载 2018-03-01 15:42:01 · 305 阅读 · 0 评论 -
Java中==、equals()和hashCode()的比较分析
1、前言在Java语言中,==、equals()、hashCode()这三个方法都和对象的比较有关,但这三个方法各有什么用处,也就是说为什么要设计三种对象的比较方法呢?2、关于====设计的目的就是为比较两个对象是否是同一个对象。比较对象的相等不仅要比较对象内容相等,还要比较对象引用地址是否相等。对于基本数据类型而言,比较就是判断这两个数值是否相等,(基本数据类型没有方法),不存在equals()...转载 2018-05-13 12:15:34 · 1087 阅读 · 1 评论 -
ConcurrentHashMap详解
一、背景:线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。 效率低下的HashTable容器 HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方法时,其他...转载 2018-05-10 23:01:07 · 498 阅读 · 0 评论 -
HashMap详解
HashMap概述① 基于哈希表的Map接口的非同步实现②允许使用null值与null键③提供所有可选的映射操作④不保证映射顺序,特别不保证该顺序恒久不变HashMap数据结构HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储...原创 2018-05-10 15:51:22 · 464 阅读 · 0 评论 -
java 多线程
Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别? 答:sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间进入阻塞状态,将执行机会(CPU)让给其他线程,但是对象的锁依然保持,因此休眠时间结束后会自动恢复(线程回到就绪状态)。wait()是Object类的方法,调用对象的wait()方法导致当前线程放...原创 2018-03-12 21:42:37 · 170 阅读 · 0 评论 -
自动装箱与拆箱
什么是自动装箱拆箱基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。 一般我们要创建一个类的对象实例的时候,我们会这样: Class a = new Class(parameter); 当我们创建一个Integer对象时,却可以这样: Integer i = 100; (注意:不是 int i = 100; )实际上,执行上面那句代码的时候...转载 2018-03-10 11:02:27 · 222 阅读 · 0 评论 -
equals()与 “==”的区别
Java中默认的 equals方法实现如下:public boolean equals(Object obj){ return(this==obj);//如果两个引用指向同一个对象,则返回true,否则返回false}但是String类覆盖了这个方法(注意看注释):public boolean equals(Object anObject) { if (this == anObj...原创 2018-02-23 17:21:43 · 349 阅读 · 0 评论 -
String,StringBuffer,StringBuilder
Java中的字符串都是作为对象处理的,用字符串类来封装一个字符串的字符串序列以及有关的信息,如长度等。字符串类位于java.lang包中。有三个类:其中string类用来处理常量字符串, 而StringBuffer与StingBuilder则用来处理长度与内容可变的字符串,这三个类都被声明而final,不能被继承。StringBuilder类是JDK1.5引入的,与StringBuffer几乎完全...原创 2018-03-01 16:48:42 · 238 阅读 · 0 评论 -
软引用、弱引用、虚引用
为什么会有这4种引用Java中的引用的定义很传统:如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。 这种定义很纯粹,但是太过狭隘,一个对象在这种定义下只有被引用或者没有被引用两种状态,对于如何描述一些“食之无味,弃之可惜”的对象就显得无能为力。 我们希望能描述这样一类对象:当内存空间还足够时,则能保留在内存之中;如果内存空间在进行垃圾收集...原创 2019-04-17 18:26:43 · 371 阅读 · 1 评论