
Core Java
文章平均质量分 79
Java基础知识;JDK
小哥骑单车
Nobody can go back and start a new begining, but anyone can start today and make a new ending.
展开
-
ArrayList 、 LinkedList 的优缺点和区别
ArrayList 与 LinkedList 区别1、ArrayList我们把他ArrayList拆开看,Array 和 List;说明他首先是一个数组,在Java中,创建数组时,会在内存中分配一块连续的空间,然后与数据存储的时候,会将数据按照顺序存储在这块连续的内存中,当要读取数据时,需要提供数组中的索引,然后数组根据索引内存中的数据取出来,返回给调用者。在Java中并不是所有的数...原创 2019-07-14 14:30:02 · 1628 阅读 · 0 评论 -
关于原码、反码、补码的一点小知识
在计算机中,二进制数值是以补码的形式存储的,并且简化了减法运算,把减法转化成了加法运算;所以需要把二进制数作为补码的形式存储起来方便计算;比如1-1的运算,在底层是转换成1+(-1)去操作的:1、正数的原码、反码、补码都是一样的,例如int类型的数据,在大多jvm中,是32位存储的,正整数1的原码形式 , 00000000 00000000 0000...原创 2019-08-16 15:20:25 · 1015 阅读 · 0 评论 -
Java进阶之博客大牛优秀好文之文章友情链接与好书推荐
目录经常读读系列并发、多线程系列:分布式架构设计,系统存储Lucene/Solr/ElasticSearch 全文检索好书推荐:可以读读,Java总结与面试:JavaEE综合Spring Security安全权限框架Shiro安全权限框架WebService数据库NoSql系列(非关系型数据库)NIONetty 网络通讯架构Sprin...转载 2019-07-04 20:28:58 · 1301 阅读 · 0 评论 -
JDK各个版本的新特性
JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言。今天先为大家介绍一下JDK1.5版本到JDK1.7版本的特性。希望能给予帮助。JDK1.5新特性: 1.自动装箱与拆箱:自动装箱的过程:每当需要一种类型的对象时,这转载 2014-11-11 09:34:01 · 4231 阅读 · 0 评论 -
HashMap源码详解分析,基于jdk1.8
在Java集合中,有一种基于哈希表键值对key-value的形式, 实现了Map接口,并且允许使用 null key 和 null value;在和jdk1.8版本对之前的hashMap对比,做了很大的优化,包括实现方式:底层存储由之前的“数组+链表”改为“数组+链表+红黑树”,还有扩容的一些细节改造等;目录1、源码前瞻思考(1)、hashMap 的数据结构形式?...原创 2019-07-13 18:34:14 · 3516 阅读 · 0 评论 -
jdk 1.7 HashMap 多线程导致的死循环问题
一、先来看1.7 HashMap,里面的扩容代码void transfer(Entry[] newTable, boolean rehash) { int newCapacity = newTable.length; for (Entry<K,V> e : table) { while(null != e) { //代码1:获取e指向的Entry Entry<K,V> next = e.next;原创 2021-03-04 12:02:55 · 253 阅读 · 1 评论 -
深入理解线程安全的单例模式
1、单例模式是一种常用的设计模式,定义该对象的类只能允许一个实例存在。为什么需要单例模式?在有的时候,系统需要全局唯一的对象,例如系统时间、某些统一配置数据,只有单例模式才能正常的管理和应用这些数据;2、常见的创建单例模式的写法,先私有构造器,然后提供 public static getInstance()方法 返回该对象实例,例如java.util.Calendar 中的日期时间类: Calendar now = Calendar.getInstance();还有Runti.原创 2020-05-31 23:04:21 · 535 阅读 · 1 评论 -
JAVA强制类型转换
object对象转换为String的一些总结--------------------------------------------------------------------------------在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能。本文将对常用的转换方法进行一个总结。常用的方法有Object.toString(),(Stri转载 2015-08-09 20:50:46 · 902 阅读 · 0 评论 -
Java集合的fast-fail机制
fail-fast 机制是java集合(Collection)中的一种错误机制。在我们常用的ArrayList和LinkedList中,采用了该机制当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程B所改变了;那么线程A访问集合时,就会抛出ConcurrentModifica...转载 2019-07-14 14:48:47 · 902 阅读 · 0 评论 -
String.valueOf(a)和(String)a有什么区别
哪个说的没有(String)a这种语法在Object类里 就定义了一个toString()方法每个类都有其字符串表示形式第一种,它是将当前的a类转化成字符串,无论你是什么,有可能转化成的结果不是一个正常的字符串,是本质上的转换第二种,是引用类型的转换,就是说如果转换的结果a的本质没变,只是我引用你的方式变了,,举个例子吧 那里有一只猴子 现在我要把他变成人第转载 2013-05-18 16:15:30 · 2673 阅读 · 0 评论 -
String 与 StringBuffer 与 StringBuilder的深刻理解
最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下。关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String转载 2013-03-13 23:24:10 · 713 阅读 · 0 评论 -
Java中==和equals的区别联系
==和equals的区别联系1、“==”运算符 (1)比较基本数据类型变量 当两个基本数据类型的操作元通过“==”运算符比较是否相等时,比较的是这两个操作元的值是否相等,如果相等结果为True,否则为False,在比较时不考虑操作元的数据类型。例如: Java代码int i = 98;int j = -98;float f = 98.0f;System.ou转载 2013-04-01 11:46:12 · 1040 阅读 · 0 评论