
底层原理
森森之火
这个作者很懒,什么都没留下…
展开
-
java集合的底层原理(Map的底层原理(ConcurrentHashMap) 五)
主要就是为了应对hashmap在并发环境下不安全而诞生的,ConcurrentHashMap的设计与实现非常精巧,大量的利用了volatile,final,CAS等lock-free技术来减少锁竞争对于性能的影响。我们都知道Map一般都是数组+链表结构(JDK1.8该为数组+红黑树)。ConcurrentHashMap避免了对全局加锁改成了局部加锁操作,这样就极大地提高了并发环境下的操作速度,由于ConcurrentHashMap在JDK1.7和1.8中的实现非常不同,接下来我们...原创 2020-07-21 16:03:37 · 216 阅读 · 0 评论 -
java集合的底层原理(Map的底层原理(WeakHashMap) 四)
WeakHashMap ,从名字上看, 有点特别原创 2020-06-30 10:41:57 · 344 阅读 · 0 评论 -
java集合的底层原理(Map的底层原理(LinkedHashMap) 三)
LinkedHashMap继承于HashMap一、 LinkedHashMap使用与实现先来一张LinkedHashMap的结构图,不要虚,看完文章再来看这个图,就秒懂了,先混个面熟:LinkedHashMap结构.png1.1 应用场景HashMap是无序的,当我们希望有顺序地去存储key-value时,就需要使用LinkedHashMap了。 Map<String, String> hashMap = new HashMap<St..原创 2020-06-02 20:13:10 · 327 阅读 · 0 评论 -
java集合的底层原理(Map的底层原理(TreeMap) 二)
一、TreeMap 1.1 数据结构源码定义如下public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, java.io.SerializableTreeMap继承AbstractMap,实现NavigableMap、Cloneable、Serializable三个接口。其中AbstractMap...原创 2020-06-02 19:51:25 · 365 阅读 · 0 评论 -
java集合的底层原理(Map的底层原理 一)
此文承接java集合的底层原理(List的底层原理),具体可以此文的开头讲述,此处简要概述的map的结构如下Map 接口 键值对的集合 (双列集合)├———Hashtable 接口实现类, 同步, 线程安全├———HashMap 接口实现类 ,没有同步, 线程不安全-│—————–├ LinkedHashMap 双向链表和哈希表实现│—————–└ WeakHashMap├ ——–TreeMap 红黑树对所有的key进行排序└———IdentifyHashMap———————————...原创 2020-06-01 22:25:42 · 6374 阅读 · 0 评论 -
Tomcat的原理及架构
一、Tomcat顶层架构先上一张Tomcat的顶层结构图(图A),如下:Tomcat中最顶层的容器是Server,代表着整个服务器,从上图中可以看出,一个Server可以包含至少一个Service,用于具体提供服务。Service主要包含两个部分:Connector和Container。从上图中可以看出 Tomcat 的心脏就是这两个组件,他们的作用如下:1、Connector用于处理连接相关的事情,并提供Socket与Request和Response相关的转化;2、Container转载 2020-05-12 09:56:55 · 408 阅读 · 0 评论 -
mysql查询底层原理及join的底层分析
mysql查询底层原理原创 2020-05-23 16:17:32 · 2592 阅读 · 0 评论 -
java集合的底层原理(List的底层原理)
java集合的底层原理及扩充规律原创 2020-05-28 19:57:37 · 5729 阅读 · 1 评论 -
细说Java中hashCode
一、作用 HashCode的官方文档定义是这样写的: hashcode方法返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈希表。hashCode 的常规协定是:在 Java 应用程序执行期间,在同一对象上多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是对象上 equals 比较中所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。如果根据 equals...原创 2020-05-19 22:27:31 · 549 阅读 · 0 评论 -
java对象的内存地址与hashcode值关系
为了比较java对象的内存地址与hashcode的关系,必须想办法获取这两个值 Java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作,在java中内存中的对象地址是可变的,所以获得的内存地址有可能会变化。要获得内存地址也只能通过Unsafe的方法来获得,具体下看的代码package com.test.democlass;import sun.misc.Unsafe;import java.lang.re...原创 2020-05-19 12:44:57 · 3662 阅读 · 0 评论 -
java的字母ASCII 值与 hashcode的关系??
概念ASCII : ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符hashcode java中,就是把任意长度的输入,通过散列算...原创 2020-05-19 10:56:21 · 1804 阅读 · 1 评论