E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
jdk源码解析
设计模式(七):结构型之适配器模式
创建型之原型模式设计模式(五):创建型之建造者模式设计模式(六):结构型之代理模式设计模式(七):结构型之适配器模式目录一、设计模式分类二、适配器模式1、概述2、结构3、类适配器模式4、对象适配器模式5、
JDK
冬天vs不冷
·
2023-06-07 22:24
设计模式
设计模式
适配器模式
设计模式:创建者模式 - 适配器模式
文章目录1.概述2.结构3.类适配器模式4.对象适配器模式5.应用场景6.
JDK源码解析
-Reader与InputStream1.概述如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。
Jm呀
·
2023-04-21 03:13
设计模式
设计模式
适配器模式
java
jdk源码解析
之object(二)
参考http://www.cnblogs.com/lwbqqyumidi/p/3693015.html1publicfinalnativevoidnotify();/***Wakesupasinglethreadthatiswaitingonthisobject's*monitor.Ifanythreadsarewaitingonthisobject,oneofthem*ischosentobea
柴崎越
·
2023-03-31 02:56
Java并发编程解析 | 基于
JDK源码解析
Java领域中并发锁之同步器Semaphore,CyclicBarrier以及CountDownLatch等的设计思想与实现原理 (四)
苍穹之边,浩瀚之挚,眰恦之美;悟心悟性,善始善终,惟善惟道!——朝槿《朝槿兮年说》写在开头在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。主要原因是,对于多线程实现实现并发,一直以来,多线程都存在2个问题:线程之间内存共享,需要通过加锁进行控制,但是加锁会导致性能下降,同时复杂的加锁机制也会增加编程编码难度过多线程造成线程之
朝槿木兮
·
2023-03-22 09:42
jdk源码解析
之object类(一)
参考http://www.cnblogs.com/lwbqqyumidi/p/3693015.html1,在idea中进入object类图片.png2,阅读源码2,1object类的结构图片.png没有定义属性,一共有13个方法2.2publicObject()构造方法,实际是存在的,但没有写2.3privatestaticnativevoidregisterNatives();static{re
柴崎越
·
2023-03-13 07:31
Java 并发编程解析 | 基于
JDK源码解析
Java领域中的并发锁,我们可以从中学习到什么内容?
苍穹之边,浩瀚之挚,眰恦之美;悟心悟性,善始善终,惟善惟道!——朝槿《朝槿兮年说》写在开头在Java领域中,尤其是在并发编程领域,对于多线程并发执行一直有两大核心问题:同步和互斥。其中:互斥(MutualExclusion):一个公共资源同一时刻只能被一个进程或线程使用,多个进程或线程不能同时使用公共资源。即就是同一时刻只允许一个线程访问共享资源的问题。同步(Synchronization):两个
·
2022-12-01 10:31
linux
设计模式(三)结构型之代理模式、适配器模式、装饰者模式、桥接模式、外观模式、组合模式、享元模式
2.1.5CGLIB动态代理2.1.6三种代理的对比2.1.7优缺点2.1.8使用场景2.2适配器模式2.2.1概述2.2.2结构2.2.3类适配器模式2.2.4对象适配器模式2.2.5应用场景2.2.6
JDK
LeslieGuGu
·
2022-10-12 11:38
设计模式
设计模式
代理模式
适配器模式
装饰者模式
桥接模式
Java 并发编程解析 | 基于 JDK 源码解析 Java 领域中 ReentrantLock 锁的设计思想与实现原理
Java并发编程解析|基于
JDK源码解析
Java领域中ReentrantLock锁的设计思想与实现原理最近我从cnaaa.com购买了云服务器。
奋斗的工程师
·
2022-09-23 16:01
java
jvm
开发语言
Java并发编程解析 | 基于
JDK源码解析
Java领域中并发锁之三大同步器的设计思想与实现原理 (四)
苍穹之边,浩瀚之挚,眰恦之美;悟心悟性,善始善终,惟善惟道!——朝槿《朝槿兮年说》写在开头在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。主要原因是,对于多线程实现实现并发,一直以来,多线程都存在2个问题:线程之间内存共享,需要通过加锁进行控制,但是加锁会导致性能下降,同时复杂的加锁机制也会增加编程编码难度过多线程造成线程之
·
2022-09-22 10:06
java
Java并发编程解析 | 基于
JDK源码解析
Java领域中并发锁之StampedLock锁的设计思想与实现原理 (三)
苍穹之边,浩瀚之挚,眰恦之美;悟心悟性,善始善终,惟善惟道!——朝槿《朝槿兮年说》写在开头在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。主要原因是,对于多线程实现实现并发,一直以来,多线程都存在2个问题:线程之间内存共享,需要通过加锁进行控制,但是加锁会导致性能下降,同时复杂的加锁机制也会增加编程编码难度过多线程造成线程之
·
2022-09-22 10:36
java
Java并发编程解析 | 基于
JDK源码解析
Java领域中ReentrantLock锁的设计思想与实现原理 (一)
苍穹之边,浩瀚之挚,眰恦之美;悟心悟性,善始善终,惟善惟道!——朝槿《朝槿兮年说》写在开头在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。主要原因是,对于多线程实现实现并发,一直以来,多线程都存在2个问题:线程之间内存共享,需要通过加锁进行控制,但是加锁会导致性能下降,同时复杂的加锁机制也会增加编程编码难度过多线程造成线程之
·
2022-09-22 10:35
java
Java 并发编程解析 | 基于
JDK源码解析
Java领域中的并发锁,我们可以从中学习到什么内容?
苍穹之边,浩瀚之挚,眰恦之美;悟心悟性,善始善终,惟善惟道!——朝槿《朝槿兮年说》写在开头在Java领域中,尤其是在并发编程领域,对于多线程并发执行一直有两大核心问题:同步和互斥。其中:互斥(MutualExclusion):一个公共资源同一时刻只能被一个进程或线程使用,多个进程或线程不能同时使用公共资源。即就是同一时刻只允许一个线程访问共享资源的问题。同步(Synchronization):两个
·
2022-09-17 14:00
linux
JDK源码解析
之 Java.lang.Enum
Enum是一个特殊的类.我们不能以classXxxextendsEnum的方式手动继承,必须写成enumXxx的形式;然而这段枚举类的定义在编译之后又变回了classXxxextendsEnum.一、类定义publicabstractclassEnum>implementsComparable,Serializable{}Enum是一个虚基类,继承了Number抽象类,可以用于数字类型的一系列转换
栗筝i
·
2022-09-12 11:24
早期内容
java
enum
详解23种设计模式(基于Java)—— 行为型模式(四 / 五)
目录4.行为型模式(11种)4.1.模板方法模式4.1.1.概述4.1.2.结构4.1.3.案例实现4.1.4.优缺点4.1.5.
JDK源码解析
——InputStream4.2.策略模式4.2.1.概述
小城老街
·
2022-07-19 20:32
Java设计模式
设计模式
行为型模式
Java
线程崩溃不会导致 JVM 崩溃的原因解析
目录线程崩溃,进程一定会崩溃吗进程是如何崩溃的-信号机制简介为什么线程崩溃不会导致JVM进程崩溃open
JDK源码解析
总结参考文章网上看到一个很有意思的据说是美团的面试题:为什么线程崩溃崩溃不会导致JVM
·
2022-06-29 12:26
JDK源码解析
实战 - AbstractQueuedSynchronizer源码解析
AbstractQueuedSynchronizer抽象同步队列简称AQS,它是实现同步器的基础组件,并发包中锁的底层就是使用AQS实现的.大多数开发者可能永远不会直接使用AQS,但是知道其原理对于架构设计还是很有帮助的,而且要理解ReentrantLock、CountDownLatch等高级锁我们必须搞懂AQS.1整体感知1.1架构图imageAQS框架大致分为五层,自上而下由浅入深,从AQS对
JavaEdge
·
2022-02-18 21:25
详解23种设计模式(基于Java)—— 创建者模式(二 / 五)
目录2.创建者模式(5种)2.1.单例模式2.1.1.结构2.1.2.实现2.1.3.存在的问题2.1.4.问题解决2.1.5.
JDK源码解析
——Runtime类2.2.工厂方法模式2.2.1.简单工厂模式
一瓢江湖我沉浮
·
2021-11-12 11:20
设计模式
设计模式
Java
Java设计模式之java命令模式详解
目录命令模式的介绍角色订单案例命令模式的优点适用场景示例代码应用宏命令----执行一组命令示例代码总结
JDK源码解析
Runable是一个典型命令模式,Runnable担当命令的角色,Thread充当的是调用者
·
2021-10-14 18:26
Open
JDK源码解析
之System.out.println详解
一、前戏可能不少小伙伴习惯在代码中使用sout打印一些信息,就像这样:System.out.println("helloworld!")做为一位资深干码人,本着弘扬党求真务实的精神,必须得来看看这个sout有何玄机~~首先看调用就知道,out是System类的一个公共静态成员变量,进入System.java中:publicfinalstaticPrintStreamout=null;嗯,不止是pu
·
2021-04-25 18:10
Java设计模式-工厂模式
概述2.简单工厂模式2.1结构2.2实现2.3优缺点2.4扩展3工厂方法模式3.1概念3.2结构3.3实现3.4优缺点4抽象工厂模式4.1概念4.2结构4.3实现4.4优缺点4.5使用场景5模式扩展6
JDK
Java硬件工程师
·
2021-02-09 12:45
Java
设计模式
java
设计模式
全面解析Arrays.sort——
JDK源码解析
一.简介Arrays.sort()方法,是我们常用排序方法,所在包java.util.Arrays;该方法提供了对所有类型的排序方法,不同类型采用的排序策略也不尽相同。今天我们一起来讨论下关于Arrays.sort()对不同类型排序的支持和策略,和对不同类型的排序又做了哪些优化。如下是JDK1.8的Arrays.sort()方法:二.源码解析1.对Primitive的支持在对原生类型的排序支持上,
Roy_Ruan
·
2020-09-17 12:44
JDK源码
JDK源码解析
之集合篇2--Collection
为什么80%的码农都做不了架构师?>>>源码解析仅个人记录,若有不正确,请留言修改packagejava.util;importjava.util.function.Predicate;importjava.util.stream.Stream;importjava.util.stream.StreamSupport;/****@authorjclyzx*@time2018年9月21日上午10:3
weixin_34032792
·
2020-09-17 02:23
java
【
JDk源码解析
之二】LinkedList源码解析
1.LinkedList的继承关系如图,和ArrayList一样都实现了List接口。但是ArrayList是基于动态数组的实现,LinkedList是基于链表的实现。2.LinkedList是基于链表实现的,增加和删除容易,查找相对费时间。首先来看LinkedList的Node节点定义,如图所示。可以看到Node节点不仅有只向下一个节点的引用,还有只向前一个节点的引用,是双向的。所以Linked
StackOverFlower
·
2020-09-17 02:18
JAVA
LinkedList
源码
jdk
链表
JDK源码解析
之Stack
前言:Stack一般来说用的比较少点,因为其数据结构特殊性,所以在一些特殊的场景,还是能发挥出巨大作用的。Stack(栈):参照java.util.Stack的注释来看,它具有后进先出的特性(LIFO)。从网络上截一个图(如有侵权,请联系作者),简单表示下链表结构可以看到,其主要操作就是入栈和出栈操作,a0元素是最早入栈的,现在在栈底,an是最后一个入栈的,在栈顶,执行出栈操作时an先出来,最后才
恐龙弟旺仔
·
2020-09-17 01:58
CoreJava
JDK源码解析
Stack
(学习总结)
JDK源码解析
目录一、
Jdk源码解析
过程二、java虚拟机运行时数据区1、Java虚拟机的五大分区三、OutOfMemory异常实践(OOM)1、Java堆溢出2、虚拟机栈和本地方法栈溢出3、方法区和运行时常量池溢出
喻小清
·
2020-09-17 01:55
JDK
JDK源码解析
集合篇--综述
Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。在JDK1.5后,util包下加入了concurrent包,更加完善了集合框架对于并发多线程情况下的处
冷面寒枪biu
·
2020-09-17 00:59
源码解析
集合框架
fail-fast
迭代器
源码
jdk
jdk源码解析
--深入探讨Iterator模式
java.util包中包含了一系列重要的集合类。本文将从分析源码入手,深入研究一个集合类的内部结构,以及遍历集合的迭代模式的源码实现内幕。下面我们先简单讨论一个根接口Collection,然后分析一个抽象类AbstractList和它的对应Iterator接口,并仔细研究迭代子模式的实现原理。本文讨论的源代码版本是JDK1.4.2,因为JDK1.5在java.util中使用了很多泛型代码,为了简化
谭倩倩
·
2020-09-17 00:58
jdk源码
jdk
源码
jdk
jdk源码解析
--集合类
最近在整理JAVA基础知识,从jdk源码入手,今天就jdk中java.util包下集合类进行理解先看图从类图结构可以了解java.util包下的2个大类:1、Collecton:可以理解为主要存放的是单个对象2、Map:可以理解为主要存储key-value类型的对象一、CollectionCollection继承了Iterate接口,Iterate用于集合内迭代器抽象接口,其子类均实现接口中方法,
谭倩倩
·
2020-09-17 00:58
jdk源码
jdk
JDK源码解析
---LinkedList
文章目录1.概述2.类图3.属性4.构造方法5.添加元素5.1添加单个元素5.2添加多个元素6.删除元素7.获取元素8.判断是否包含某元素9.计算链表长度10.修改元素11.序列化链表12.反序列化链表13.克隆1.概述LinkedList,是基于节点实现的双向链表的List,每个节点都指向前一个和后一个节点从而形成链表。LinkedList提供队列、双端队列、栈的功能。LinkedList随机访
三木加两木
·
2020-09-17 00:21
#
JDK源码解析
链表
java
jdk
linkedlist
JDK源码解析
---Vector
文章目录1.概述2.类图3.属性4.构造方法5.方法介绍5.1copyInto5.2trimToSize5.3ensureCapacity5.4setSize5.5capacity5.6size5.7isEmpty5.8elements5.9contains5.10lastIndexOf5.11elementAt5.12firstElement5.12lastElement5.13setEleme
三木加两木
·
2020-09-17 00:22
#
JDK源码解析
java
jdk
Vector
JDK源码解析
---Queue
文章目录1.概述2.特点2.1ArrayDeque2.2LinkedList2.3PriorityQueue1.概述Queue在java中是一个接口,规定了一些队列实现的基本操作。Queue是一个队列,先进先出。他有一个子接口是Deque,是一个双端队列。可以在两端进行进出操作。本文着重比较java.util包下实现这两个接口的类的特点。首先来看看java.util包下有哪些实现这两个接口的类。A
三木加两木
·
2020-09-17 00:50
#
JDK源码解析
java
jdk
JDK源码解析
之String与包装类
文章目录Integer内部存储数据格式构造器常量池常用方法自动拆装箱String成员变量构建String对象常量池常用方法Integer内部存储数据格式/***Thevalueofthe{@codeInteger}.**@serial*/privatefinalintvalue;所以Integer类中只有构造器和getter方法,并没有setter方法,原因就是value被final修饰不可再更改
white_156
·
2020-09-14 16:33
java
java
字符串
jvm
jdk
jdk源码解析
三之JUC并发容器
文章目录本篇文章主要是对JUC包下,一些并发类的源码分析,如果想了解具体实例,请点击并发容器ConcurrentHashMapput初始化扩容getreplace#remove总结:CopyOnWriteArrayListaddremovegetset总结LinkedBlockingQueueputoffer阻塞时间的offertakepollpeekremove迭代器总结ArrayBlockin
Nuan_Feng
·
2020-08-21 08:05
jdk源码
详细学习JDK源码系列之、ArrayList
前言
JDK源码解析
系列文章,都是基于JDK8分析的,虽然JDK15马上要出来了,但是JDK8我还不会,我…类图实现了RandomAccess接口,可以随机访问实现了Cloneable接口,可以克隆实现了
gg7894125
·
2020-08-17 08:43
Stack源码解析及用LinkedList实现Stack
(1)
JDK源码解析
类Stack代表的是一种后进先出的堆对象。继承Vector类的5个方法以允许vector被作为一个栈。
bluesnail95
·
2020-08-16 02:31
java
通过
JDK源码解析
Thread(Runable target ...)调用的是哪个run方法
如下代码段1:[java]viewplaincopyprint?newThread(newRunnable(){@Overridepublicvoidrun(){System.out.println("RunofRunnable");}}){publicvoidrun(){System.out.println("RunofThread");}}.start();执行上述代码段,到底会调用哪个run
pinkeman
·
2020-08-06 12:37
JDK源码解析
之HashMap
但是每次聊到HashMap的时候,总会有知识点是模糊的,应该还是眼高手低的缘故,所以还是决心写一下(很多参考大神的文章)注意:笔者的JDK是1.8.3版本的,所以包括之前写的
JDK源码解析
系列都是这个版本的
恐龙弟旺仔
·
2020-08-05 10:45
CoreJava
JDK源码解析
Jdk源码解析
Jdk源码解析
HashMap源码部分1.HashMap初始化/***ConstructsanemptyHashMapwiththedefaultinitialcapacity*(16)andthedefaultloadfactor
Coder_Boy_
·
2020-08-05 09:10
Java必备基础技能
Jdk源码解析
_HashMap翻译版
#
Jdk源码解析
HashMap源码部分1.HashMap初始化/***ConstructsanemptyHashMapwiththedefaultinitialcapacity*(16)andthedefaultloadfactor
Coder_Boy_
·
2020-08-05 09:38
java
Jdk源码解析
Jdk源码解析
HashMap源码部分1.HashMap初始化/***ConstructsanemptyHashMapwiththedefaultinitialcapacity*(16)andthedefaultloadfactor
Coder_Boy_
·
2020-08-05 09:29
笔记
java
深入学习JDK源码系列之、ArrayList
前言
JDK源码解析
系列文章,都是基于JDK8分析的,虽然JDK15马上要出来了,但是JDK8我还不会,我...类图实现了RandomAccess接口,可以随机访问实现了Cloneable接口,可以克隆实现了
iisheng
·
2020-08-04 14:00
JDK源码解析
之ArrayList和LinkedList
共同点:两者都实现了List、Cloneable、Serializable接口,说明二者都可以序列化,但是需要注意使用subList方法用于获取部分list时由于返回的对象是SubList,SubList这个类没有实现序列化,如果此时进行序列化时就会抛出异常;具体的源码实现如下:publicListsubList(intfromIndex,inttoIndex){returnnewSubList(
我是胡杨
·
2020-08-04 02:28
JDK源码解析
jdk源码解析
八之RPC实现(包含序列化源码解析)
文章目录实现简单的RPC功能RpcFrameworkServiceConsumerProvider序列化解释ObjectInputStream反序列化填充字段值读取类描述以及属性ObjectOutputStream实现简单的RPC功能RpcFrameworkpackagerpc;importjava.io.*;importjava.lang.reflect.InvocationHandler;im
Nuan_Feng
·
2020-08-03 13:16
jdk源码
JDK源码解析
基础篇-String、StringBuilder、StringBuffer
首先向搞懂常量池的知识点:触摸Java常量池常量池技术java.lang包的最后一篇基础篇。搞完这篇就开始集合框架和并发包等内容。Sting、StirngBuilder、StringBuffer的内容很早之前写过String、StringBuffer和StringBuilder的区别和应用场景,但写的太简单了。这次再重新梳理一下这部分内容,留作以后复习。在java语言中,用来处理字符串的的类常用的
冷面寒枪biu
·
2020-07-30 17:31
源码解析
JDK源码解析
之ArrayBlockingQueue
前言:之前介绍的关于Queue的实现类,LinkedList、PriorityQueue都是非线程安全的队列,那么有没有线程安全的Queue实现类呢?当然是有的,在java.util.concurrent中有几个关于Queue的线程安全实现/***@seejava.util.concurrent.ArrayBlockingQueue*@seejava.util.concurrent.LinkedB
恐龙弟旺仔
·
2020-07-30 16:16
CoreJava
JDK源码解析
BigInteger类实例的构造过程——
JDK源码解析
最近看了下JDK1.6版本的BigInteger类,仔细研究了下大整数实例的构造过程,现在把自己的所得所想分享给大家.首先,为什么需要大整数类?简单的说就是因为内部的数据类型能表示的最大数是64位长度,当需要更大长度位数的数据时,基本的数据类型无法处理.跟密码学相关的加密算法常涉及到好几百位的整数的加减乘除,因此需要设计一种有效的数据结构能够满足这样的需求.其实要实现大整数类也不难,简单一想,我们
zhaoyunfullmetal
·
2020-07-30 06:21
JDK源码解析
jdk源码解析
三之ConcurrentHashMap
文章目录ConcurrentHashMapput初始化扩容getaddCountreplace#remove总结:什么时候扩容?JDK1.8放弃分段锁jdk1.8的map实现为什么不用ReentrantLock而用synchronized?多个线程又是如何同步处理的呢?ConcurrentHashMap//使用了unSafe方法,通过直接操作内存的方式来保证并发处理的安全性,使用的是硬件的安全机制
Nuan_Feng
·
2020-07-29 16:48
jdk源码
jdk源码解析
二之HashMap
这里写自定义目录标题HashMapputremovereplaceget扩容resize迭代器总结什么时候采用红黑树?为什么每次扩容后,是2的幂次方?为什么扩容后,相同的在原位置保存,而不同的则当前索引+之前原位置索引保存?为啥用尾插法?为什么线程不安全?HashMapHashMap的loadFactor为什么是0.75?主要涉及到泊松分布的概念,猝!!!一个bucket空和非空的概率为0.5,通
Nuan_Feng
·
2020-07-29 16:48
jdk源码
jdk源码解析
三之ThreadLocal
文章目录ThreadLocalset初始化ThreadLocalMapset赋值重新使用失效节点清空无效节点扩容getremove总结为何存在内存泄漏问题?ThreadLocalsetpublicvoidset(Tvalue){//当前线程的.ThreadLocalMap绑定了当前ThreadLocal对象和value//获取当前线程Threadt=Thread.currentThread();/
Nuan_Feng
·
2020-07-29 16:48
jdk源码
jdk源码解析
五之Executor框架
文章目录ExecutorExecutorServiceScheduledExecutorServiceAbstractExecutorService总结ThreadPoolExecutor成员变量以及方法构造executetryTerminateinterruptIdleWorkersrunshutdownshutdownNow总结ScheduledThreadPoolExecutor//todo
Nuan_Feng
·
2020-07-29 16:47
jdk源码
上一页
1
2
3
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他