首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏初见Linux

    11-3 激活修改

    三、修改环境 现在用户已经知道了系统启动文件的位置和内容,就可以修改启动文件,来自定义我们的环境。(准) 1.用户应当修改哪些文件 一般来说,在 PATH 中添加目录或定义额外的环境变量,需要将这些更改放入到 .bash_profile 文件中(或者是其它的等效文件,这取决于系统的发行版本,比如 Ubuntu 系统使用的是 .profile 文件),其它的改变则应录入 .bashrc 文件中。除非是系统管理员需要修改用户公用的默认设置,普通用户只需对主目录下的文件作出修改即可。当然用户也可以修改其它目录

    68610发布于 2020-08-11
  • 来自专栏AI机器学习与深度学习算法

    机器学习入门 11-3 Soft Margin SVM

    本系列是《玩转机器学习教程》一个整理的视频笔记。前面两个小节具体介绍了Hard Margin SVM算法的思想,并将这种思想转换为数学中的最优化问题。这一小节:

    1K31发布于 2020-07-02
  • 来自专栏日志随记

    Java扫雷源码

    介绍:重写了一遍扫雷,代码更加规范,修复了一些小bug,优化了部分代码的算法,将各等级英雄榜独立

    1.3K40编辑于 2022-05-27
  • 来自专栏JuneBao

    Java】ArrayList源码

    ArrayList 源码分析 package Note.cistern; import java.util.ArrayList; public class ArrayListDemo { public

    80120编辑于 2022-10-26
  • 来自专栏JuneBao

    Java】HashMap源码

    Life is not a ridiculous number of life, the meaning of life lies in life itself HashMap源码 散列集 数组和链表可以保持元素插入的顺序 散列集(hash table)可以说是数组与链表的组合, 往散列集中添加元素时,通过hash函数可以得到一个该元素的一个哈希值,Java中哈希值的范围在-2147483648~2147483647之间 不能直接使用hashCode,因为它的范围将近40亿,不可能有这么大的数组空间,所以需要对hashCode值做一定的处理,使之在数组容量范围内,最简单的办法是对数组容量取余,但取余有效率问题,所以Java 就一定存在运算后得到同样索引值的情况,称为哈希碰撞,解决哈希碰撞有两种方法:开放地址法和拉链法 ,开放地址法是指如果当前的数组已经有元素了,就通过别的算法算出一个新位置插入,像python中dict的实现就使用了开放地址法;而Java >> 4); } static int indexFor(int h, int length) { return h & (length-1); } 出于性能的考虑,在获得最终的index时,Java

    85820编辑于 2022-10-26
  • 来自专栏程序员奇点

    Java ArrayList 源码

    Java ArrayList 源码 ArrayList 概述 ArrayList 是基于数组实现,是一个动态数组,容量可以自动增长,动态增加内存。

    1.1K10发布于 2020-10-23
  • 来自专栏用户2442861的专栏

    Java集合源码剖析】ArrayList源码剖析

    ArrayList源码剖析     ArrayList的源码如下(加入了比较详细的注释): [java] view plaincopy package java.util;     它有很多个重载的方法,但实现思路都是一样的,我们来看泛型版本的源码: [java] view plaincopy public static <T> T[] copyOf(T[] original 该方法被标记了native,调用了系统的C/C++代码,在JDK中是看不到的,但在openJDK中可以看到其源码。 该方法可以直接将ArrayList转换得到的Array进行整体向下转型(转型其实是在该方法的源码中实现的),且从该方法的源码中可以看出,参数a的大小不足时,内部会调用Arrays.copyOf方法,该方法内部创建一个新的数组返回 6、在查找给定元素索引值等的方法中,源码都将该元素的值分为null和不为null两种情况处理,ArrayList中允许元素为null。

    75030发布于 2018-09-20
  • 来自专栏后端Coder

    java进阶|java队列源码分析

    今天我要分享的是java里面比较常见的数据结构队列的源码分析,队列,先进先出模式,即FIFO的特点,日常生活中队列的特点也随处可见,超市购物排队,餐厅排队买饭等一系列都满足了队列的先进先出的特点,java 也不是,主要是之前我自己分析了ArrayList,LinkedList以及Stack的源码文章了,到这里就理所应当的应该分析队列的这种数据结构了,满足一下学生时代心心念的数据结构吧。 关于读源码,如何进行梳理整个过程,每个人都有着自己的一套,在这里我就以自己的一套来进行分析好了。 ,写到了内存空间的分配的字样,想到了自己学习c语言的模样,那个拿着大部书《C语言程序设计》前往机房的少年,由于兴趣使然,逐渐走上了javaWeb的开发了,不过这里说明一点,学习c语言对于你理解高级语言java 何况java作为一门高级语言呢,顺势而为成就了这个语言令人喜欢的特点吧。 四,队列既然有入队,想必就会想到队列出队的方法,即poll方法,接下来我们继续看下队列出队的方法时间吧。

    96220发布于 2020-05-26
  • 来自专栏云计算运维

    Java ArrayList源码剖析

    前面已经提过,Java泛型只是编译器提供的语法糖,所以这里的数组是一个Object数组,以便能够容纳任何类型的对象。 hugeCapacity(minCapacity); elementData = Arrays.copyOf(elementData, newCapacity);//扩展空间并复制 } 由于Java

    51040发布于 2021-07-20
  • 来自专栏java一日一条

    Java TreeMap 源码解析

    源码剖析 由于红黑树的操作我这里不说了,所以这里基本上也就没什么源码可以讲了,因为这里面重要的算法都是From CLR,这里的CLR是指Cormen, Leiserson, Rivest,他们是算法导论的作者

    57210发布于 2018-09-19
  • 来自专栏张恒的网络日志

    Java String 源码浅析

    如果你对此还有兴趣,那就一起看看String类的一些源码吧。 一 String类 String类被final所修饰,也就是说String对象是不可变量,并发程序最喜欢不可变量了。 String original) { this.value = original.value; this.hash = original.hash; } //参数为char数组,使用java.utils

    67310发布于 2020-04-28
  • 来自专栏二进制文集

    Java Stream 源码分析

    前言 Java 8 的 Stream 使得代码更加简洁易懂,本篇文章深入分析 Java Stream 的工作原理,并探讨 Steam 的性能问题。 操作分类详情如下图所示: [2020-12-03-030958.jpg] 源码结构 Stream 相关类和接口的继承关系如下图所示: [2020-12-03-031525.jpg] BaseStream java.util.stream.StreamSupport#stream(java.util.Spliterator<T>, boolean) public static <T> Stream<T> [2020-12-03-070838.png] 对于第二个元素“java”,predicate.test 会返回 true(字符串“java”的长度<=4),则会进入 map 的 accept 方法。 GC的行为是Java中很不好控制的一块,为增加确定性,我们手动指定使用CMS收集器,并使用10GB固定大小的堆内存。

    3.4K53发布于 2020-12-03
  • 来自专栏微信公众号:Java团长

    如何阅读Java源码

    阅读Java源码的前提条件: 1、技术基础 在阅读源码之前,我们要有一定程度的技术基础的支持。 比如设计模式,许多Java源码当中都会涉及到。再比如阅读Spring源码的时候,势必要先对IOC,AOP,Java动态代理等知识点有所了解。 刚开始阅读源码的时候肯定会很痛苦,所以,没有足够的耐心是万万不行的。 如何读Java源码: 团长也是经历过阅读源码种种痛苦的人,算是有一些成功的经验吧,今天来给大家分享一下。 如果你已经有了一年左右的Java开发经验的话,那么你就有阅读Java源码的技术基础了。 1、建议从JDK源码开始读起,这个直接和eclipse集成,不需要任何配置。 3、Java框架源码阅读 当然了,就是Spring、MyBatis这类框架。

    2.4K30发布于 2018-08-07
  • 来自专栏每天学Java

    Java源码之AbstractQueuedSynchronizer

    public abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizer implements java.io.Serializable 就会执行:setExclusiveOwnerThread(null);) public abstract class AbstractOwnableSynchronizer implements java.io.Serializable 如果获取到资源,线程直接返回,否则进入等待队列,直到获取到资源为止,且整个过程忽略中断的影响,我们看一下源码: public final void acquire(int arg) { AQS源码是直接抛出异常,说明子类要重写这个方法实现自己的逻辑。 (failed) cancelAcquire(node); } } 我们看一下shouldParkAfterFailedAcquire方法的源码

    40130发布于 2020-06-02
  • 来自专栏微信公众号:Java团长

    Java集合源码剖析——ArrayList源码剖析

    ArrayList源码剖析 ArrayList的源码如下(加入了比较详细的注释): package java.util; public class ArrayList<E> extends 该方法被标记了native,调用了系统的C/C++代码,在JDK中是看不到的,但在openJDK中可以看到其源码Java强烈推荐在复制大量数组元素时用该方法,以取得更高的效率。 4、注意ArrayList的两个转化为静态数组的toArray方法。 第一个,Object[] toArray()方法。 该方法可以直接将ArrayList转换得到的Array进行整体向下转型(转型其实是在该方法的源码中实现的),且从该方法的源码中可以看出,参数a的大小不足时,内部会调用Arrays.copyOf方法,该方法内部创建一个新的数组返回 6、在查找给定元素索引值等的方法中,源码都将该元素的值分为null和不为null两种情况处理,ArrayList中允许元素为null。

    96920发布于 2018-08-03
  • 来自专栏全栈程序员必看

    Java volatile源码分析

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

    34350编辑于 2022-09-09
  • 来自专栏java一日一条

    Java TreeMap 源码解析

    源码剖析 由于红黑树的操作我这里不说了,所以这里基本上也就没什么源码可以讲了,因为这里面重要的算法都是From CLR,这里的CLR是指Cormen, Leiserson, Rivest,他们是算法导论的作者

    58910发布于 2018-09-19
  • 来自专栏程序员的成长之路

    如何阅读Java源码

    阅读Java源码的前提条件: 1、技术基础 在阅读源码之前,我们要有一定程度的技术基础的支持。 比如设计模式,许多Java源码当中都会涉及到。再比如阅读Spring源码的时候,势必要先对IOC,AOP,Java动态代理等知识点有所了解。 2、强烈的求知欲 强烈的求知欲是阅读源码的核心动力! 刚开始阅读源码的时候肯定会很痛苦,所以,没有足够的耐心是万万不行的。 如何读Java源码: 团长也是经历过阅读源码种种痛苦的人,算是有一些成功的经验吧,今天来给大家分享一下。 如果你已经有了一年左右的Java开发经验的话,那么你就有阅读Java源码的技术基础了。 1、建议从JDK源码开始读起,这个直接和eclipse集成,不需要任何配置。 3、Java框架源码阅读 当然了,就是Spring、MyBatis这类框架。

    99020发布于 2019-03-25
  • 来自专栏每天学Java

    Java源码之ThreadLocal

    ThreadLocal源码研读 对于ThreadLocal源码 本身没有什么好研究的,因为它就五个我们可以调用的方法。ThreadLocalMap才是我们要研究的核心。 ? 为了研究ThreadLocalMap源码,我们从ThreadLocal的set方法开始 set方法 就从我们常用的set方法开始。 The standard java.util.HashMap uses linked lists to resolve clashes. 而netty就是基于数组实现的FastThreadLocal.具体源码为就不再去介绍,在这里奉上对比的时间。 4.Java 中 WeakReference 与 SoftReference的区别? 5.怎么获取 Java 程序使用的内存?堆使用的百分比?

    60110发布于 2020-06-01
  • 来自专栏CoffeeLand

    java LinkedList源码解析

    class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable

    51510发布于 2020-03-07
领券