首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Java架构师必看

    spring源码分析11

    spring源码分析11 强烈推介IDEA2020.2破解激活,IntelliJ

    40620发布于 2021-04-13
  • 来自专栏波波烤鸭

    11】Spring源码-分析篇-事务源码分析

    Spring源码分析-事务源码分析 一、事务的本质 1. details/87898161 隔离级别:https://blog.csdn.net/qq_38526573/article/details/87898730 二、Spring事务原理   然后我们来分析下 Spring中事务这块的源码实现。 1.Spring事务的源码设计 1.1 事务管理器   我们来看看事务管理器(PlatformTransactionManager). 在但数据源中的事务管理,这个是我们分析的重点。

    1.9K30编辑于 2022-10-28
  • 来自专栏专注于java领域技术分析

    11源码优化和分析Java工具

    摘要:enkatt Guhesan 分享了一些Java工具,帮助你优化代码以及检查源代码中的潜在问题。 1. 死代码——未使用的局部变量、参数、私有方 ... enkatt Guhesan 分享了一些Java工具,帮助你优化代码以及检查源代码中的潜在问题。 4.Mackerfromhttp://innig.net/macker/ Macker是一个适用于Java开发人员用来检查架构规则的工具。 Java程序中的缺少部分的测试覆盖率。 11.SonarSourcefromhttp://www.sonarsource.org/ Sonar是一个管理代码质量的开放平台。

    1.6K20发布于 2020-09-08
  • 来自专栏golang算法架构leetcode技术php

    golang源码分析:etcd(11

    我们继续在文件 server/etcdserver/server.go 中分析EtcdServer的初始化流程,它会先调用bootstrap函数初始化后端存储bolt-db然后初始化raftNode

    35440编辑于 2023-09-09
  • 来自专栏golang算法架构leetcode技术php

    golang源码分析:raft(11

    前面提到transport将远程对象分为两类:remote和peer,分别代表新建立的连接和已经加入集群的节点,下面简单分析下它们的核心逻辑: type remote struct {

    34620编辑于 2023-09-07
  • golang源码分析:langchaingo(11

    分析完核心功能使用的源码后,我们再按照目录依次总结下每个目录里的逻辑,在最外层的一些工具类说明类的文件就不再介绍了 CODE_OF_CONDUCT.md CONTRIBUTING.md

    8600编辑于 2026-03-18
  • 来自专栏Reck Zhang

    Java 11 - 逃逸分析

    逃逸分析 定义 逃逸分析是一种可以有效减少Java中同步负载和内存堆分配压力的跨函数全局数据流分析方法. 通过逃逸分析, 编译器能够分析出一个新的对象的引用范围, 从而决定是否要将这个对象分配在堆上. 这个实现是基于”封闭世界”的前提, 即所有可能被执行的方法在做逃逸分析前都已经得知, 并且, 程序的实际运行不会改变他们之间的调用关系. 但是在Java实际运行的时候, 这样的假设并不成立. 因为Java中的很多特性, 比如动态类加载, 调用本地函数, 反射程序调用都将打破”封闭世界”的约定. [info ][gc] GC(10) Pause Young (G1 Evacuation Pause) 7M->1M(10M) 0.334ms [0.281s][info ][gc] GC(11

    81240发布于 2021-08-11
  • 来自专栏python编程军火库

    11 | Tornado源码分析:Gen 对象(下)

    我们先看一下源码(我已经进行过整理的源码,主要方面大家去理解里面的实现逻辑,若想看完整的源码建议大家可以自行查看本机安装的 tornado 版本中的源代码),在源码中我做了一些批注,这样有利于大家更好的去结合代码来深入了解

    57930发布于 2020-09-09
  • 来自专栏二进制文集

    Java LinkedHashMap 源码分析

    分析 内部结构 LinkedHashMap继承自HashMap,内部额外维护了一个Entry的双向链表,用于记录访问和插入顺序。

    61930发布于 2019-02-25
  • 来自专栏程序员奇点

    Java String 源码分析

    Java String 源码分析 定义 Java 8 中 String 源码 public final class String implements java.io.Serializable String 是final 类型不能被继承,同时实现了 java.io.serializable Comparable charSequence 三个接口。 static final long serialVersionUID = -6849794470754667710L; String 实现了 Serializable 接口,支持序列化和反序列化支持,Java 使用字节数组来构建 String Java 中,String 实例中报错一个字符数组,char[] 字符数组时以 unicode 码来存储的。 Java 8 中采用的是 Array.copy 方法,避免了这个问题 public String(char value[], int offset, int count) { if (offset

    55810发布于 2020-10-23
  • 来自专栏二进制文集

    Java Stream 源码分析

    前言 Java 8 的 Stream 使得代码更加简洁易懂,本篇文章深入分析 Java Stream 的工作原理,并探讨 Steam 的性能问题。 image 源码结构 Stream 相关类和接口的继承关系如下图所示: ? image 操作叠加 Stream 的基础用法就不再叙述了,这里从一段代码开始,分析 Stream 的工作原理。 分析如下: 对于基本类型Stream串行迭代的性能开销明显高于外部迭代开销(两倍); Stream并行迭代的性能比串行迭代和外部迭代都好。 image 分析,对于复杂的归约操作: Stream API的性能普遍好于外部手动迭代,并行Stream效果更佳; 再来考察并行度对并行效果的影响,测试结果如下: ?

    59241发布于 2020-12-08
  • 来自专栏大数据学习笔记

    Java HashSet源码分析

    1、源码分析 废话不多说,直接上代码,相关解释请参见注释 package java.util; /** * * @param <E> the type of elements maintained HashMap * @since 1.2 */ public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable s) throws java.io.IOException { // Write out any hidden serialization magic s) throws java.io.IOException, ClassNotFoundException { // Read in any hidden serialization 通过源码可知,HashSet实际上由HashMap支持实现。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。

    35510编辑于 2022-05-06
  • 来自专栏二进制文集

    Java Stream 源码分析

    前言 Java 8 的 Stream 使得代码更加简洁易懂,本篇文章深入分析 Java Stream 的工作原理,并探讨 Steam 的性能问题。 操作分类详情如下图所示: [2020-12-03-030958.jpg] 源码结构 Stream 相关类和接口的继承关系如下图所示: [2020-12-03-031525.jpg] BaseStream [2020-12-03-033401.png] 操作叠加 Stream 的基础用法就不再叙述了,这里从一段代码开始,分析 Stream 的工作原理。 java.util.stream.StreamSupport#stream(java.util.Spliterator<T>, boolean) public static <T> Stream<T> 分析如下: 对于基本类型Stream串行迭代的性能开销明显高于外部迭代开销(两倍); Stream并行迭代的性能比串行迭代和外部迭代都好。

    3.4K53发布于 2020-12-03
  • 来自专栏全栈程序员必看

    Java volatile源码分析

    而针对volatile修饰的变量给java虚拟机特殊的约定,线程对volatile 变量的修改会立刻被其他线程所感知,即不会出现数据脏读,从而保证数据的一个可见性。 volatile 特性分析 特性一:可见性 前面介绍Java内存模型的时候,我们说过可见性是指当一个线程修改了共享变量的值,其他线程立即感知到这种变化。 特性二、禁止重排序 前面介绍Java 内存模型的时候,我们说过java中的有序性可以概况为一句话:如果在本线程中观察,所有的操作都是有序的;如果在另外一个线程中观察,所有的操作都是无序的。

    35150编辑于 2022-09-09
  • 来自专栏wannshan(javaer,RPC)

    java ThreadLocal 分析by 源码

    可以,通过inheritableThreadLocals属性子线程可以继承父线程的local变量,具体通过InheritableThreadLocal

    49730发布于 2021-03-18
  • 来自专栏后端Coder

    java进阶|java队列源码分析

    今天我要分享的是java里面比较常见的数据结构队列的源码分析,队列,先进先出模式,即FIFO的特点,日常生活中队列的特点也随处可见,超市购物排队,餐厅排队买饭等一系列都满足了队列的先进先出的特点,java 也不是,主要是之前我自己分析了ArrayList,LinkedList以及Stack的源码文章了,到这里就理所应当的应该分析队列的这种数据结构了,满足一下学生时代心心念的数据结构吧。 说了这么多,接下来就逐渐去分析队列的源码吧,写到这时下起了小雨,对,这个时间段是晚上十点左右,这篇文章是自己继五一放假来的第一篇文章,自己玩着玩着手机就突然想起了要写这篇文章了,索性就过来写了,要是学生时代这么努力多好 关于读源码,如何进行梳理整个过程,每个人都有着自己的一套,在这里我就以自己的一套来进行分析好了。 十,到这里就结束了自己对队列的源码分析,其实你会发现我这里没有对队列的每一个方法进行分析,其实都差不多,这里起到一个开头作用就可以了,下面的每个分析方法都差不多。

    97820发布于 2020-05-26
  • 来自专栏JUC并发原理与源码

    JUC并发—11.线程池源码分析

    提供的线程池2.ThreadPoolExecutor和Excutors创建的线程池3.如何设计一个线程池4.ThreadPoolExecutor线程池的执行流程5.ThreadPoolExecutor的源码分析 为了解决这个问题,Java提供了线程池技术。线程池运用的是一种池化技术,池化技术就是提前创建好大量的资源保存在某个容器中,在需要使用时可直接从容器中获取资源,用完之后会进行回收以便下次使用。 5.ThreadPoolExecutor的源码分析(1)线程池的成员变量(2)线程池状态和线程数量的存储(3)线程池的状态机及变更(4)线程池的execute()方法(5)线程池的addWorker() 0100 0000 0000 0000 0000 0000 0000 0000private static final int TIDYING = 2 << COUNT_BITS;//3的二进制是11

    18500编辑于 2025-05-05
  • 来自专栏微信公众号【Java技术江湖】

    Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)

    虽然本文的源码篇幅也不短,但是 Tomcat 的源码毕竟不像 Doug Lea 的并发源码那么“变态”,对于大部分读者来说,阅读难度比之前介绍的其他并发源码要简单一些,所以读者不要觉得有什么压力。 ,不方便我们看源码,也不方便我们进行调试。 典型地,我们可以指定以下几个协议处理类: org.apache.coyote.http11.Http11NioProtocol:对应非阻塞 IO org.apache.coyote.http11.Http11Nio2Protocol 打开 Http11NioProtocol 和 Http11Nio2Protocol源码,我们可以看到,在构造方法中,它们分别指定了 NioEndpoint 和 Nio2Endpoint。 start 过程分析 刚刚我们分析完了 init() 过程,下面是启动过程 start() 分析

    76610发布于 2019-11-24
  • 来自专栏后端Coder

    java进阶|PriorityQueue源码分析

    源码,倒是觉得它就是一个线程安全的队列,所以后面打算分享一下吧,谁让当时理解不了那个知识点呢,后面再说了,后面自己就写了java的等待通知机制的文章和限流的文章,所以这是今天写的第三篇文章了,好了,好了 ,不闲扯了,这里我就来分析了优先级队列的源码,因为我理解了里面的内容,不写出来总觉得没有掌握这个内容,其实也不是,可能是写文章写多了,不写总觉得不习惯,是的,不习惯。 0x02,步入主题 一般,我在分析源码的时候总是从构造函数入手,想起构造函数还是想起了要写一篇如何创建java对象的文章吗,不知道,还是在自己的内心沉淀一段时间再说吧,毕竟写文章是需要很花费一个人很长的时间的 0x05,上浮方法 0x06,peek()/contains()方法 0x07,size()/clear()方法 0x08,poll()方法 0x09,下沉方法 0x10,我的程序 0x11 ,总结 分析了优先级队列也算是源码系列的文章正式暂时告一段落了,这是第15篇源码分析的文章,最近也在思考一下这两年的点点滴滴,如果自己有时间以及自己如果思考的有意义的话语,自己会单独写一篇这两年的点点滴滴分享一下

    42520发布于 2020-07-02
  • 来自专栏后端Coder

    java之CopyOnWriteArraySet源码分析

    上篇我们分享了CopyOnWriteArrayList的源码分析,这次我们打算来分享 CopyOnWriteArraySet的源码分析,当自己整理了一下源码流程时发现这篇文章没什么写头,底层是在基于利用 package com.wpw.asyncthreadpool; import java.util.concurrent.CopyOnWriteArraySet; public class CopyOnWriteArraySetTest 我们看下在CopyOnWriteArrayList源码里面我们没有介绍到的containsAll()方法,由于这篇讲的是set,但是底层还是使用的是CopyOnWriteArrayList,所以我们这里继续分析 destPos, int length); 我们看上面的方法修饰符是由native关键字修饰的,所以它是在本地方法栈执行的,不是在java 到这里我们的分享内容就结束了,今天写了CopyOnWriteArrayList的姊妹篇 CopyOnWriteArraySet的源码分析,其实底层实现是基于CopyOnWriteArrayList的,喜欢文章的可以关注公众号

    60320发布于 2019-11-05
领券