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源码】
进击的Android工程师之Java基础: 注解
@Target(ElementType.METHOD)@Retention(RetentionPolicy.SOURCE)public@interfaceOverride{}在
java源码
中,
Magicer
·
2021-06-04 07:20
一 java体系的理解
通常把java分为编译期和运行期,但此处的编译和c语言的编译意义不同,javac的编译是将
java源码
编译为".class"字节码文件,而不是可以直接执行的机器码.在运行时,JVM通过class-loader
BeYearn
·
2021-06-04 06:19
Java源码
分析-【HashMap】深入浅出的源码分析(JDK1.7版本)
每日一句有望得到的要努力,无望得到的不介意,则无论输赢姿态都会好看。概念回顾HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的,如果定位到的数组位置不含链表(当前entry的next指向null),那么对于查找,添加等操作很快,仅需一次寻址即可;如果定位到的数组包含链表,对于添加操作,其时间复杂度依然为O(1),因为最新的Entry会插入链表头部,急
洛神灬殇
·
2021-06-03 14:20
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
【Android 组件化】路由组件 ( 使用 JavaPoet 生成路由表类 )
文章目录一、要生成的路由表类二、生成路由表过程1、获取其它类节点2、生成参数3、路由表结构4、函数创建5、Java类创建6、写出
Java源码
到文件中三、完整注解处理器及运行结果1、完整注解处理器代码2、
韩曙亮
·
2021-05-24 14:24
组件化
Android
APT
组件化
注解处理器
JavaPoet
编译时注解
路由组件
java源码
浅析之Spring容器
前言通过上一篇文章对AOP的初步探究,慢慢理清了bean的创建流程,找时间从头粗略读了一遍源码,在此做一个记录。感觉Spring源码挺好读的,注释也写得很详细,我从零阅读spring源码用了一天多的时间,下一篇对读源码心得进行一个自我总结吧背景知识关于spring源码,有人觉得苦涩难懂,有人享受探索的乐趣,我认为区别就在于底子是否牢,如果动态代理都不了解就想去看懂AOP的源码那肯定是不行的。建议先
DaHuangXiao
·
2021-05-23 16:21
随笔
java
Java源码
解析之ClassLoader
一、前言一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方法,如果另外一个文件不存在的,则会引发系统异常。而程序在启动的时候,并不会一次性加载程序所要用的所有class文件,而是根据程序的需要,通过Java的类加载机制(ClassLoader)
·
2021-05-23 12:06
java源码
浅析之AOP
前言继之前写了一篇Proxy源码浅析后打算去看AOP,由于本人刚学java不久,Spring看得很粗,以至于看源码比较慢,不过在学习过程中逐渐提高了探索源码的能力,觉得整个过程也挺有趣,故做此记录。主要记录一下作为一名java初学者是怎么探索Spring框架的预备知识所谓磨刀不误砍柴功,在探索源码之前,我通过B站以下两个系列视频稍微了解了一下Spring的大体框架,但听的时候似懂非懂雷神的注解驱动
DaHuangXiao
·
2021-05-22 14:03
随笔
java
Java源码
解析之Iterable接口
这里我们给定一个集合strings一、写法1–循环for(inti=0,len=strings.size();iiterator();意思就是,如果想让任意一个Java对象支持foreach,只要实现iterable接口,然后就可以通过Iteratoriterator=strings.iterator()的方式,想集合那样遍历了。五、IteratorIterator是foreach遍历的主体,我们
·
2021-05-22 11:38
使用Intellij IDEA查看
Java源码
技巧
1查看接口的实现类:Ctrl+Alt+B选中按快捷键,然后跳到实现类的地方去2返回上/下个光标地方:Alt+可通过修改快捷键(搜关键字left、right)找到对应并改为Ctrl+J。。。。3查看Java方法调用树(被调/主调):Ctrl+Alt+H分为调用当前方法的树、当前方法调用的下级方法4查看表达式、变量、方法参数的传递关系:主菜单中选择Analyze|Dataflowfrom/toHere
·
2021-05-21 13:05
Android简单的反编译
这里主要讲的是使用apktool,dex2jar,jd-gui,进行apk的反编译apktool作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看dex2jar作用:将apk反编译成
Java源码
子丿龙
·
2021-05-20 19:06
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
浅谈
Java源码
ConcurrentHashMap
一、记录形式打算直接把过程写在源码中,会按序进行注释,查阅的时候可以按序号只看注释部分二、ConcurrentHashMap直接模拟该类的使用过程,从而一步步看其怎么运作的吧,当然最好还是带着问题一遍思考一遍总结会比较好,我阅读源码的时候带着以下几个问题并发体现在哪里?怎么保证线程安全的怎么扩容的?扩容是怎么保证线程安全的?怎么put的?put是怎么保证线程安全的?用了哪些锁?这些锁的作用是什么?
·
2021-05-19 17:18
thrift简介+idea上的使用
服务和HTTP服务对比RPC架构Thrift二、Thrift的使用首先下载安装thrift编写IDL文件编写idea中的java代码服务端:[1]定义一个TProcess对象,在根据Thrift文件生成
java
你是爸爸的好儿子
·
2021-05-19 11:22
Android-proguard理解
代码最终被执行是要被Javac编译成JVM上的可执行码(class)才可以被JVM运行,但是字节码的复杂度不高,网上一些可以反编译字节码的工具,比如jd(javadecompiler),可以把jar包反编译成
java
hyzhang98
·
2021-05-19 03:36
Java源码
分析-LinkedHashMap
LinkedHashMap继承自HashMap,同时也维护了元素的插入顺序。内部多了一个双向循环链表的维护,该链表是有序的,可以按元素插入顺序或元素最近访问顺序(LRU)排列。来看下源码吧。支持原创,转载请注明出处。LinkedHashMap是一个维护了一个双向链表的HashMap:图片来自网络.jpg继承关系publicclassLinkedHashMapextendsHashMapimplem
gatsby_dhn
·
2021-05-18 22:16
JAVA源码
分析-HashMap源码分析(二)
本文继续分析HashMap的源码。本文的重点是resize()方法和HashMap中其他的一些方法,希望各位提出宝贵的意见。话不多说,咱们上源码。finalNode[]resize(){Node[]oldTab=table;//如果老的数组为空,老的数组容量设为0intoldCap=(oldTab==null)?0:oldTab.length;intoldThr=threshold;intnewC
端木轩
·
2021-05-18 03:38
java源码
浅析之线程池ThreadPoolExecutor
前言打算把JUC下常用的几个类源码都看一遍并做记录,今天是线程池ThreadPoolExecutorThreadPoolExecutor看源码前我会先通过其作用猜测源码的大概流程,带着问题去看源码那么我们复习一下ThreadPoolExecutor的作用是什么调用excute执行一个tasktask会派给线程池中的线程执行如果线程池所有线程都正在执行任务则将task丢入等待队列待有空闲线程后从队列
DaHuangXiao
·
2021-05-17 23:36
随笔
java
java源码
浅析之Proxy动态代理
前言最近学反射的时候了解了一下其应用——动态代理,觉得挺有意思,在此记录一些对动态代理的理解,并对源码进行简单的梳理反射浅析动态代理之前先复习一下什么是反射?简单理解反射就是以类对象作为入口,能够获得类内所有内容的一种方式比如调用某个类中的方法时有两种方式常见的就是创建一个对象实例,然后调用其公共方法另一种就是通过反射,先获取类对象,通过类对象根据方法名获取对应的方法,用invoke(obj,ar
DaHuangXiao
·
2021-05-17 12:38
随笔
java
Android反编译apk
需要用到的工具介绍:apktool作用:资源文件获取,提取图片和布局dex2jar作用:把apk反编译成
java源码
(classes.dex转化成jar文件)jd-gui作用:查看APK中classes.dex
你在笑吗
·
2021-05-17 00:59
自己动手实现springboot运行时执行
java源码
(运行时编译、加载、注册bean、调用)
依然是由于apaas平台越来越流行了,如果apaas平台选择了java语言作为平台内的业务代码,那么不仅仅面临着IDE外的断点、单步调试,还面临着为了实现预览效果,需要将写好的
java源码
动态的装载到spring
码小D
·
2021-05-16 10:00
springboot
运行时
java
RxJava2 源码解析——线程调度 Scheduler
Rx
Java源码
解析第二篇。我们知道,在使用RxJava的时候,线程的调度是其内部帮我们实现的,这让我们可以便捷的实现函数式编程。
Robin_Lrange
·
2021-05-15 10:45
RxJava 源码解析之观察者模式
提到事务驱动和响应就不得不说说,设计模式中观察者模式,已经了解的朋友,可以直接跳过观察者模式的介绍,直接到Rx
Java源码
中对于观察者的应用。
骑摩托马斯
·
2021-05-13 18:44
1.2 Java虚拟机以及跨平台原理
我们编写的
Java源码
,编译后会生成一种.class文件,称为字节码文件。Java虚
李序锴
·
2021-05-12 18:22
Java源码
解析之HashMap的put、resize方法详解
一、HashMap简介HashMap底层采用哈希表结构数组加链表加红黑树实现,允许储存null键和null值数组优点:通过数组下标可以快速实现对数组元素的访问,效率高链表优点:插入或删除数据不需要移动元素,只需要修改节点引用效率高二、源码分析2.1继承和实现publicclassHashMapextendsAbstractMapimplementsMap,Cloneable,Serializabl
·
2021-05-12 16:50
【
Java源码
计划】LongAdder
LongAdder源码解读源码解读部分按照我得理解翻译和解读注解并添加相关的部分代码解读保持一个或者多个变量,初始值设置为零用于求和。当出现多个线程竞争进行一个数的更新时,这个变量集合可以动态的扩展。最后当需要求和的时候或者说需要这个Long型的值时,可以通过把当前这些变量求和,合并后得出最终的和。这个类在一些多线程环境下表现要比AtomicLong这个类好,比如多个线程同时更新一个求和的变量,比
DeanChangDM
·
2021-05-11 07:42
Java源码
分析-带你认识什么是AQS(上)
前提概要AQS三部曲之上篇,本篇文章主要面向与对于AQS各个组件的实现的方式和原理。了解过JUC的源码,我们就可以知道JUC下面很多工具的实现都是依靠AQS,而AQS中用于保存等待线程的队列就是CLH,下图就是并发编程AQS的基础家族谱图。image.pngCLH队列定义概念CLH是一个FIFO的队列,队列的每一个节点都是一个Node对象。当前线程获取同步状态失败的时候就会进入CLH队列。而当首节
洛神灬殇
·
2021-05-10 20:55
Java源码
分析-带你认识ThreadLocal的原理
前言 ThreadLocal是开发中常会使用的一个工具,从类的名字就可以看出,它为线程提供本地变量。即:每个线程私有的数据。提供的实际上就是一种线程隔离,不同的线程的变量归属不同的线程,线程之间不能想问访问各自的变量,当线程生命周期结束的时候,线程会被销毁。之前只知道它的作用,大概还了解一点原理知道内部用的是Map,今天又遇见了,于是有了这篇源码分析。使用方法Entity存放线程要保存的信息Th
洛神灬殇
·
2021-05-10 18:22
认识JAVA
Java语言版本:JavaSE:标准版JavaEE:企业版JavaME:微缩版Java语言的特点:跨平台:Java编译器将
Java源码
编译成一种与体系无关的中间文件格式,只要有Java运行系统的机器都能执行这种中间代码
想吃热干面了
·
2021-05-07 03:02
Rx
Java源码
1.2.0 阅读笔记(一)
RxJava,它是一个实现异步操作的库,异步操作很关键的一点是程序的简洁性,而RxJava正是实现了这一点。一.创建被观察者Observable1.首先我们在create中传入了一个创建的新的Onsubscribe对象,其实这个Onsubscribe对象是一个Observable中的内部类,它是一个接口,继承自Action1,而Action1又继承自Action,Action又继承自Functio
贾歌
·
2021-05-06 19:08
java源码
- ReentrantReadWriteLock写锁介绍
ReentrantReadWriteLock的数据结构介绍
java源码
-Re
晴天哥_374
·
2021-05-02 03:29
Rx
Java源码
分析(1)
Rx
Java源码
分析(1)Rxjava相信大家都不陌生,是现在很流行的一种解决异步通信的框架,分析源码,不会对RxJava2的源码逐字逐句的阅读,只寻找关键处,我们平时接触得到的那些代码进行分析。
JCJIE
·
2021-04-30 19:22
电子商务平台 b2b2c
java源码
根据微服务化设计思想,结合springcloud一些优秀的项目,如服务发现、治理、配置化管理、路由负载、安全控制等优秀解决方案,使用Maven技术将框架进行模块化、服务化、原子化封装并构建,也为后期的灰度发布、持续集成提前做好准备工作。另外在搭建环境之前,大家需要熟练掌握maven的使用及相关问题的处理(这里不再重复介绍)。HongHu云架构使用maven来构建,使用maven不仅仅是jar包的管
swiftie10
·
2021-04-30 18:29
Android面试Android进阶(十九)-RxJava相关问题-未分析完,先跳过
在看Rx
Java源码
的过程中发生了以下的事情艹.gif头昏脑涨,怀疑人生,生无可恋还有啥欢迎补充!!
肖义熙
·
2021-04-29 17:45
学Java怎么看API(详细图解)+查看
Java源码
(IDEA)
前言无论是刚开始学java还是开始做项目的小伙伴,大部分少用的类和方法总是需要查一下API才能引用,这里特别给小白留了一个API的入口以及阅读指南,后面也附上一些查
Java源码
的方法,希望有帮助。
是我,Zack
·
2021-04-28 23:16
疑难杂症
Java
java
class
api
源码
【
Java源码
计划】AtomicBoolean
AtomicBoolean这个类是Automic包下的类,用于提供对应类型的原子操作源码解析这个类提供了一个可以原子更新的Boolean值。有关原子变量属性的描述,请参照java.util.concurrent.atomic包规范。AtomicBoolean可以用于作为原子更新的标志,但是不能作为java.lang.Boolean的替代使用。这个类自JDK1.5开始提供这个类实现了java.io.
DeanChangDM
·
2021-04-28 12:39
无符号右移-1?关于Java位移,多数人不知道的
之前看
java源码
的时候,看到有一个语句,整型无符号右移一个负数(如1024>>-22),当时惊呼:“还有这种操作,老师没教过啊”,老师确实没教过!
李不言被占用了
·
2021-04-27 08:37
java源码
-WeakHashMap
开篇 作为Map系列的最后一篇,我觉得有必要讲讲WeakHashMap这个类,因为这个类可以解决一些oom的问题,典型的场景是在一个HashMap中put不同的key/value对象,如果此时设置key为null而未清除map当中的key对象,那么就无法通过gc回收该对象。 在这篇文章中我希望能够讲明白WeakHashMap是如何解决key和value的gc回收问题,希望能够对一些应用场景产生帮助
晴天哥_374
·
2021-04-27 00:18
Java源码
解析(二): 从源码角度彻底搞懂ArrayList
*本篇文章已授权微信公众号guolin_blog(郭霖)独家发布欣赏我们常用集合ArrayList的源码,学习API背后的故事.引言学Java很久了,一直处于使用API+查API的状态,不了解原理,久而久之总是觉得很虚,作为一名合格的程序员这是不允许的,不能一直当APIPlayer,我们要去了解分析底层实现,下次在使用时才能知己知彼.知道在什么时候该用什么方法和什么类比较合适.之前写的第一篇Jav
潇风寒月
·
2021-04-21 23:22
算法分析(1)经典排序算法实现
概述前面花了很多时间研究数据结构,就是为算法的分析作铺垫,从今天开始打算分析一下算法,先看一下算法的整体分类:算法整体结构Android中其实平时用到的算法比较少,因为JDK跟SDK都帮我封装好了,在看
Java
wustor
·
2021-04-18 15:56
JDK核心
JAVA源码
解析(4) - 堆外内存、零拷贝、DirectByteBuffer以及针对于NIO中的FileChannel的思考
想写这个系列很久了,对自己也是个总结与提高。原来在学JAVA时,那些JAVA入门书籍会告诉你一些规律还有法则,但是用的时候我们一般很难想起来,因为我们用的少并且不知道为什么。知其所以然方能印象深刻并学以致用。本篇文章针对堆外内存与DirectBuffer进行深入分析,了解Java对于堆外内存处理的机制,为下一篇文件IO做好准备Java堆栈内存与堆外内存首先我们扔出一个公式:java程序最大可能占用
干货满满张哈希
·
2021-04-15 11:16
程序员必知的技术官网系列--java篇
其中查阅官网资料是一个效率极高的学习方式.本系列目标就想通过官网资料来达到快速学习和掌握的目的,对这些技术的整体架构和模块功能有个整体性的把握.关于java的学习资源有很多种:书籍,网络博客,java官网,
java
crow_n
·
2021-04-15 10:12
设计模式入门
前言不知道是否有许多萌新跟我一样,在看
java源码
的时候,脑袋容易晕。通常查一个方法,要跳几个类出来,有些类动不动就上千行。像我这样血气方刚的少年,哪静得下心来理解这么多结构复杂的代码!
点先生在这
·
2021-04-14 02:32
Java虚拟机(JVM)为什么可以实现跨平台 甚至语言无关性?
JVM结构图
Java源码
编译机制如何实现跨平台?JVM、JDK、JRE的区别引言今天,我遇到了一个提问:为什么Java可以跨平台?大多数人都知道Java可以跨平台得益于JVM(java虚拟机)。
Javachichi
·
2021-04-13 16:10
java
jvm
编程语言
JVM,JRE,JDK之间的区别和联系
JRE,JRE包含了JVMJDK:java开发工具包,针对java开发人员,可以编译运行java程序JRE:java运行时环境,针对使用java程序的客户,可以运行字节码(.class),但是不能编译
Java
·
2021-03-18 01:24
jdkjrejvm
上一页
37
38
39
40
41
42
43
44
下一页
按字母分类:
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
其他