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
JAVA源码解析
java源码浅析之dubbo
原理图如下[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9fEwo2Az-1623312993257)(
java源码解析
之dubbo.assets
DaHuangXiao
·
2024-08-24 07:05
随笔
java
java源码解析
- Iterator
定义Iterator是一个泛型接口,里面分别定义了四个方法booleanhasNext();Enext();defaultvoidremove();defaultvoidforEachRemaining(Consumeraction);其中hashNext()和next()方法在集合中经常用到,其在ArrayList中的实现如下:实现ArrayList中Iterator的实现类如下,类中定义的属性
KK的任意门
·
2024-01-02 09:44
java源码学习
java
java源码解析
之HashMap
Map是java中用于存储建值对的一种数据结构方式。键不能重复,每一个键可以匹配多个值(也就是一个链表)。这个接口是用于替换Dictionary这个抽象类的。HashMap用于存储键值对,其中key可以为null,同时他的key存放索引方式是通过hash方式来实现的,所以他能快速的定位到你需要的key处。在HashMap内部是存放的一个Entry的数组。Entry的定义如下:Entry(inth,
A阿狸A
·
2023-12-06 16:24
Java源码解析
第16讲:MySQL 的运行机制是什么?它有哪些引擎?
数据库是Java程序员面试必问的知识点之一,它和Java的核心面试点共同组成了一个完整的技术面试。而数据库一般泛指的就是MySQL,因为MySQL几乎占据了数据库的半壁江山,即使有些公司没有使用MySQL数据库,如果你对MySQL足够精通的话,也是会被他们录取的。因为数据库的核心与原理基本是相通的,所以有了MySQL的基础之后,再去熟悉其他数据库也是非常快的,那么接下来的几个课时就让我们好好的学习
源码头
·
2023-11-17 13:52
java
java
mysql
数据库
GRPC
Java源码解析
GRPC
Java源码解析
引言1服务端1.1逻辑架构1.1.1概述1.1.2服务管理(ServerPack)1.1.3服务注册(RegistryPack)1.1.4传输逻辑(TransportPack)1.1.5
Victor Fung
·
2023-10-31 07:51
技术大杂烩
【
Java源码解析
】如何严谨地重写 equals 方法、getClass 方法与 instanceof 关键词用法比较
文章目录如何严谨地重写equals方法1equals方法概述2String类中的equals方法3自定义equals方法时出现的问题4instanceof关键词与getClass方法的比较5正确编写equals方法如何严谨地重写equals方法1equals方法概述equals方法我们都非常熟悉,equals是Object基类中的模板方法,每个类中都有它的的存在,多数类或其抽象父类都以不同方式重写
超周到的程序员
·
2023-10-21 16:57
Java
java
开发语言
后端
Java源码解析
第02讲:HashMap 底层实现原理是什么?JDK8 做了哪些优化?
HashMap是使用频率最高的类型之一,同时也是面试经常被问到的问题之一,这是因为HashMap的知识点有很多,同时它又属于Java基础知识的一部分,因此在面试中经常被问到。本课时的面试题是,HashMap底层是如何实现的?在JDK1.8中它都做了哪些优化?典型回答在JDK1.7中HashMap是以数组加链表的形式组成的,JDK1.8之后新增了红黑树的组成结构,当链表大于8并且容量大于64时,链表
源码头
·
2023-09-30 14:30
java
java
开发语言
链表
Java源码解析
,Integer
源码分析,基本上都加载注解上了,如有谬误,请指正,谢谢。jdk1.8.0_161publicclassInteger{/***最小值,-2的31次方*/@NativepublicstaticfinalintMIN_VALUE=0x80000000;/***最大值2的31次方减1*/@NativepublicstaticfinalintMAX_VALUE=0x7fffffff;/***int类型的c
Tomy_Jx_Li
·
2023-04-16 18:52
Android-Rx
Java源码解析
RxJava3.0已经发布了,但是这里还是以RxJava2.x来分析部分源码。RxJava采用的是响应式编程的原理,采用观察者模式。一、RxJava案例和流程Observableobservable=Observable.create(newObservableOnSubscribe(){@Overridepublicvoidsubscribe(@NonNullObservableEmittere
zzq_nene
·
2023-04-05 08:44
2018技术栈总结
rx
java源码解析
线程切换https://www.jianshu.com/p/a36e5d257b03https://juejin.im/post/5c05f43ce51d4503fb449c7bsubscribeOn
帽子lucio
·
2023-03-28 11:09
Rx
Java源码解析
Rx
Java源码解析
一,简单使用Observableobservable=Observable.create(newObservableOnSubscribe(){@Overridepublicvoidsubscribe
CallMeMrZ
·
2023-03-24 17:14
5.从架构设计角度分析AAC源码-Rxjava2源码解析第0篇:Rxjava2开篇大纲
前言如果对RxJava2一点都不了解建议先去使用,再来(或者去)看Rx
java源码解析
,否则云里雾里的很难理解Rxjava2。这篇文章主要提供和Rxjava2源码相关的概念性知识。
佛学徒-代码搬运工
·
2022-12-26 12:33
jetpack源码解析
rxjava
android
Java源码解析
重写锁的设计结构和细节
目录引导语1、需求2、详细设计2.1、定义锁2.2、定义同步器Sync2.3、通过能否获得锁来决定能否得到链接3、测试4、总结引导语有的面试官喜欢让同学在说完锁的原理之后,让你重写一个新的锁,要求现场在白板上写出大概的思路和代码逻辑,这种面试题目,蛮难的,我个人觉得其侧重点主要是两个部分:考察一下你对锁原理的理解是如何来的,如果你对源码没有解读过的话,只是看看网上的文章,或者背面试题,也是能够说出
·
2022-08-18 09:15
类加载器
Java源码解析
Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。与那些在编译时需要进行连接的语言不同,在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略让Java语言进行提前编译会面临额外的困难,也会让类加载时稍微增加一些性能开销,但是却为Java应用提供了极高
程序员札记
·
2022-06-12 10:17
Java源码解析
之Gateway请求转发
Gateway请求转发本期我们主要还是讲解一下Gateway,上一期我们讲解了一下Gateway中进行路由转发的关键角色,过滤器和断言是如何被加载的,上期链接://www.jb51.net/article/211824.htm好了我们废话不多说,开始今天的Gateway请求转发流程讲解,为了在讲解源码的时候,以防止大家可能会迷糊,博主专门画了一下源码流程图,链接地址://www.jb51.net/
·
2022-02-22 09:22
rx
java源码解析
线程切换原理image.png案例apiService.getBoundAppInfo(pageNumber).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).bindLifecycle(owner).subscribe{}subscribeOn切换子线程先看subscribe的执行,最后会执行Obser
帽子lucio
·
2022-02-17 08:14
Rx
Java源码解析
(二)
前言本篇主要解析RxJava的线程切换的原理实现subscribeOn首先,我们先看下subscribeOn()方法,老样子,先上DemoObservableobservable=Observable.create(newObservableOnSubscribe(){@Overridepublicvoidsubscribe(ObservableEmitteremitter)throwsExcep
toothpickTina
·
2022-02-16 03:03
Java源码解析
之详解ReentrantLock
ReentrantLockReentrantLock是一种可重入的互斥锁,它的行为和作用与关键字synchronized有些类似,在并发场景下可以让多个线程按照一定的顺序访问同一资源。相比synchronized,ReentrantLock多了可扩展的能力,比如我们可以创建一个名为MyReentrantLock的类继承ReentrantLock,并重写部分方法使其更加高效。当一个线程调用Reent
·
2021-11-03 17:57
RxJava
作为一开发者,既然没有造轮子的能力,那就先看看轮子的构造吧Rxjava使用Rx
java源码解析
操作符#创建操作justjust将单个数据转换为发射那个数据的ObservableObservable.just
云木杉
·
2021-06-26 13:52
Java源码解析
之详解ImmutableMap
一、案例场景遇到过这样的场景,在定义一个static修饰的Map时,使用了大量的put()方法赋值,就类似这样——publicstaticfinalMapdayMap=newHashMapdayMap=ImmutableMap.builder().put("Monday","今天上英语课").put("Tuesday","今天上语文课").put("Wednesday","今天上数学课").put
·
2021-06-23 12:50
Rxjava2.1 线程切换原理解析
一、前提说明本文是在Rxjava2.1的基础上进行的,目前只对Rxjava进行解析,未搭配Retrofit食用,如果想看Rxjava+Retrofit源码解析,请移步Retrofit2.1+Rx
java
innovatorCL
·
2021-06-14 21:20
Java源码解析
ThreadPoolExecutor 线程池
1线程池的好处小编整理了一些java进阶学习资料和面试题,需要资料的请加JAVA高阶学习Q群:664389243这是小编创建的java高阶学习交流群,加群一起交流学习深造。群里也有小编整理的2019年最新最全的java高阶学习资料!线程使应用能够更加充分合理地协调利用CPU、内存、网络、I/O等系统资源.线程的创建需要开辟虚拟机栈、本地方法栈、程序计数器等线程私有的内存空间;在线程销毁时需要回收这
java高级编程中心
·
2021-06-11 09:01
Rxjava 2.1 订阅流程源码解析
一、前提说明本文是在Rxjava2.1的基础上进行的,目前只对Rxjava进行解析,未搭配Retrofit食用,如果想看Rxjava+Retrofit源码解析,请移步Retrofit2.1+Rx
java
innovatorCL
·
2021-06-08 02:57
Java源码解析
之ConcurrentHashMap
早期ConcurrentHashMap,其实现是基于:分离锁,也就是将内部进行分段(Segment),里面则是HashEntry的数组,和HashMap类似,哈希相同的条目也是以链表形式存放。HashEntry内部使用volatile的value字段来保证可见性,也利用了不可变对象的机制以改进利用Unsafe提供的底层能力,比如volatileaccess,去直接完成部分操作,以最优化性能,毕竟U
·
2021-05-26 15:22
Java源码解析
之LinkedHashMap
一、成员变量先来看看存储元素的结构吧:staticclassEntryextendsHashMap.Node{Entrybefore,after;Entry(inthash,Kkey,Vvalue,Nodenext){super(hash,key,value,next);}}这个Entry在HashMap中被引用过,主要是为了能让LinkedHashMap也支持树化。在这里则是用来存储元素。//双
·
2021-05-25 11:15
Java源码解析
之ClassLoader
一、前言一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方法,如果另外一个文件不存在的,则会引发系统异常。而程序在启动的时候,并不会一次性加载程序所要用的所有class文件,而是根据程序的需要,通过Java的类加载机制(ClassLoader)
·
2021-05-23 12:06
Java源码解析
之Iterable接口
这里我们给定一个集合strings一、写法1–循环for(inti=0,len=strings.size();iiterator();意思就是,如果想让任意一个Java对象支持foreach,只要实现iterable接口,然后就可以通过Iteratoriterator=strings.iterator()的方式,想集合那样遍历了。五、IteratorIterator是foreach遍历的主体,我们
·
2021-05-22 11:38
Java源码解析
之SortedMap和NavigableMap
一、前言由于乱序的数据对查找不利,例如无法使用二分法等降低算法的时间复杂度,如果数据在插入时就排好序,查找的性能聚会提升很多。sortedMap接口就是为这种有序的数据服务的。二、sortedMap接口sortedMap接口需要数据的key支持Comparable,或者可以被指定的Comparator接受。sortedMap主要提供了以下方法://返回排序数据所用的ComparatorCompar
·
2021-05-20 18:17
Java源码解析
之接口List
前言List接口是Collection接口的三大接口之一,其中的数据可以通过位置检索,用户可以在指定位置插入数据。List的数据可以为空,可以重复。我们来看看api文档是怎么说的:一、List特有的方法我们这里就只关注和Collection不同的方法,主要有以下这些://在指定位置,将指定的集合插入到当前的集合中booleanaddAll(intindex,Collectionc);//这是一个默
·
2021-05-20 16:15
Java源码解析
之超级接口Map
前言我们在前面说到的无论是链表还是数组,都有自己的优缺点,数组查询速度很快而插入很慢,链表在插入时表现优秀但查询无力。哈希表则整合了数组与链表的优点,能在插入和查找等方面都有不错的速度。我们之后要分析的HashMap就是基于哈希表实现的,不过在JDK1.8中还引入了红黑树,其性能进一步提升了。今天我们来说一说超级接口Map。一、接口MapMap是基于Key-Value的数据格式,并且key值不能重
·
2021-05-20 16:44
Java源码解析
之平衡二叉树
一、平衡二叉树的定义平衡二叉树是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于1。它是一种高度平衡的二叉排序树。意思是说,要么它是一棵空树,要么它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。我们将二叉树上结点的左子树深度减去右子树深度的值称为平衡因子BF(BalanceFactor),那么平衡二叉树上所有结点的平衡因子只可能是-1、0和1。这里举个栗
·
2021-05-20 14:04
Java源码解析
之接口Collection
一、图示二、方法定义我们先想一想,公司如果要我们自己去封装一些操作数组或者链表的工具类,我么需要封装哪些功能呢?不妨就是统计其大小,增删改查、清空或者是查看否含有某条数据等等。而collection接口就是把这些通常操作提取出来,使其更全面、更通用,那现在我们就来看看其源码都有哪些方法。//返回集合的长度,如果长度大于Integer.MAX_VALUE,返回Integer.MAX_VALUEint
·
2021-05-20 10:10
RxJava2 源码解析——线程调度 Scheduler
Rx
Java源码解析
第二篇。我们知道,在使用RxJava的时候,线程的调度是其内部帮我们实现的,这让我们可以便捷的实现函数式编程。
Robin_Lrange
·
2021-05-15 10:45
Java源码解析
之HashMap的put、resize方法详解
一、HashMap简介HashMap底层采用哈希表结构数组加链表加红黑树实现,允许储存null键和null值数组优点:通过数组下标可以快速实现对数组元素的访问,效率高链表优点:插入或删除数据不需要移动元素,只需要修改节点引用效率高二、源码分析2.1继承和实现publicclassHashMapextendsAbstractMapimplementsMap,Cloneable,Serializabl
·
2021-05-12 16:50
Java源码解析
(二): 从源码角度彻底搞懂ArrayList
*本篇文章已授权微信公众号guolin_blog(郭霖)独家发布欣赏我们常用集合ArrayList的源码,学习API背后的故事.引言学Java很久了,一直处于使用API+查API的状态,不了解原理,久而久之总是觉得很虚,作为一名合格的程序员这是不允许的,不能一直当APIPlayer,我们要去了解分析底层实现,下次在使用时才能知己知彼.知道在什么时候该用什么方法和什么类比较合适.之前写的第一篇Jav
潇风寒月
·
2021-04-21 23:22
JDK核心
JAVA源码解析
(4) - 堆外内存、零拷贝、DirectByteBuffer以及针对于NIO中的FileChannel的思考
想写这个系列很久了,对自己也是个总结与提高。原来在学JAVA时,那些JAVA入门书籍会告诉你一些规律还有法则,但是用的时候我们一般很难想起来,因为我们用的少并且不知道为什么。知其所以然方能印象深刻并学以致用。本篇文章针对堆外内存与DirectBuffer进行深入分析,了解Java对于堆外内存处理的机制,为下一篇文件IO做好准备Java堆栈内存与堆外内存首先我们扔出一个公式:java程序最大可能占用
干货满满张哈希
·
2021-04-15 11:16
Rx
Java源码解析
2.2.6版本
前言上一篇文章分析了okhttp的源码,因为一个网络请求框架一般都是使用rxjava+okhttp+retrofit进行封装,所以现在对rxjava的源码进行解析。观察者模式介绍众所周知,rxjava是使用的观察者的模式,观察者模式是一个使用率非常高的模式,这个模式的一个重要的作用就是解耦,将被观察者和观察者解耦,使得他们之间的依赖性更小,甚至毫无依赖。观察者模式的定义定义对象间一种一对多的依赖关
freak_csh
·
2020-09-16 08:24
源码解析
Rx
Java源码解析
(三)背压+源码+同步异步+原理
系列文章第三篇承接上文:RXjava解析(二)我把RXjava的源码和这份面试都给你了,你还告诉我面不过拿不到offer?(顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找)https://github.com/xiangjiana/Android-MS更多完整项目下载。未完待续。源码。图文知识后续上传github。可以点击关于我联系我获取背压问题背压是指在异步场景中,被观察者发送事
初壹十五a
·
2020-09-16 07:37
Android
原理源码
android
RXJava
源码
原理
Rx
java源码解析
前言Rxjava可能是现在最流行的异步请求框架了。经常可以听到各种关于他的话题,具体有多好用我原来还真不知道,因为公司里面根本不用!!!。用到异步的时候直接自己手撸一个线程池就好了,如果涉及到切换线程的时候比如到主线程,直接handler。用习惯了还是有点小骄傲的,唯手顺耳。哎,还是tooyangertoosimple啊。直到详细了解了Rxjava,并自己敲了几个demo后,才知道tmd之前自己是
xuduker
·
2020-09-16 07:07
android开源库学习
Android Rx
Java源码解析
文章目录1Single.just()2Single.map()3AtomicReference4delay()6Schedulers线程切换6.1subscribeOn(schedulers)6.2observeOn(schedulers)在RxJava源码分析之前,先说一下需要关注的两个方法:onSubscribe()和onSuccess()。1Single.just()我们会从RxJava使用
VincentWei95
·
2020-09-16 07:56
进阶
原理
Java源码解析
HashMap的resize函数
HashMap的resize函数,用于对HashMap初始化或者扩容。首先看一下该函数的注释,如下图。从注释中可以看到,该函数的作用是初始化或者使table的size翻倍。如果table是null,那么就申请空间进行初始化。否则,因为我们在使用2的指数的扩张,在原来table的每个位置的元素,在新的table中,他们要么待在原来的位置,要么移动2的指数的偏移。从这里可以看出,扩容前table每个位
bugcoder321
·
2020-09-14 22:20
Java源码解析
Java源码解析
Iterator
位置:java.util.Iterator类型:interface用途:对集合进行遍历,Iterator替换Enumeratior在JAVA的集合框架中.Iterator与Enumeratior的不同之处有两点·Iterator允许调用者删除元素在底层集合中迭代,·方法名称改善属于JAVA集合框架(JavaCollectionsFramework)的一部分。参数:代表这个iterator返回的类型
mingjie1212
·
2020-09-14 14:55
Java
Collection
Framework
Java源码解析
JDK核心
JAVA源码解析
(1) - Object
想写这个系列很久了,对自己也是个总结与提高。原来在学JAVA时,那些JAVA入门书籍会告诉你一些规律还有法则,但是用的时候我们一般很难想起来,因为我们用的少并且不知道为什么。知其所以然方能印象深刻并学以致用。首先我们从所有类的父类Object开始:1.Object类(1)hashCode方法和equals方法publicnativeinthashCode();publicbooleanequals
张哈希
·
2020-09-14 13:04
java碎片收集
JDK源码剖析
JDK框架JAVA源码解析
Java并发编程:Thread.
java源码解析
Java并发编程:Thread.
java源码解析
1.前言 最近发现对于线程还不是很熟悉只是停于理解,便对Thread.java类做一个系统的研究,并记录在此。
Eric Coolerwu
·
2020-09-12 16:21
JDK源码
java源码解析
--Map
Map集合Anobjectthatmapskeystovalues.Amapcannotcontainduplicatekeys;eachkeycanmaptoatmostonevalue.–将键映射到值的对象。不能包含重复的键;每个键最多可以映射一个值。//Map的类信息publicinterfaceMap关注的实现类HashMapHashtableTreeMapConcurrentHashMa
熊人族无所畏惧
·
2020-08-23 00:35
java
JUC---多线程下控制并发流程(JDK13)
java.util.concurrent包系列文章JUC—ThreadLocal源码解析(JDK13)JUC—ThreadPoolExecutor线程池源码解析(JDK13)JUC—各种锁(JDK13)JUC—原子类Atomic*.
java
Mistra丶
·
2020-08-20 14:29
JUC
JAVA
多线程
并发编程
java
Rx
Java源码解析
:Observable
本文主要目的是梳理Rxjava的核心调用流程,主要涉及以下3个类核心类:Observable调用者传入的subscriber的包装类:SafeSubscriberObservable所持有的onSubscribe1.首先是核心类Observable的源码Observable通过构造创建的时,持有了onSubscribe对象而subscribe()方法就做了两件事:将传入的Subscriber包装为
Jessewo
·
2020-08-20 13:44
java源码解析
之反射(三)
接着便是开始调试该体系。大致过了一遍代码,发现自己懵懵懂懂,恍恍惚惚。没有思绪,因此适时的调试一下十分有必要。根据原来的联系小例子进行断点调试。对于反射中所涉及的类和对象,进行了一个查看。需要知道,有些时候可以通过基本规则实现,有些时候可以通过方法实现类。就像1+1=2,水往低处流,int不用声明一样,有些东西是跟随它整个生态共存的。实例化类对象分别使用了三种方式:Class.forName(St
Automannnn
·
2020-08-16 20:57
java基础源码查看
使用JavaParser进行
java源码解析
JavaParser下载地址:http://code.google.com/p/javaparser/downloads/list刚开始接触的时候觉得和JDT里的Parser类不太一样。查了一下WiKi,发现它访问编译单元成员,需要调用相应子元素对应的Visitor类的visit()方法。此方法可以通过复写来实现自己需要的功能。我需要的功能是将编译单元里的所有MethodDeclaration取出
weixin_30381317
·
2020-08-15 03:24
Java源码解析
之Object类
Object是我们非常熟悉的一个类了,它是所有类的基类,一个类即时没有直接继承任何类,它默认也会继承Object类,也就是所有的类都直接或者间接的基础了Object类,这就是说Object类是所有类的基类的原因Object是java.lang下的类,细心的小伙伴可能都已经发现了,该包下的所有类在使用的时候都不需要手动导入,系统会在编译的时候自动导入,类似的还有Integer、String类等都是属
明天的地平线
·
2020-08-10 16:36
java源码专题
上一页
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
其他