1、先说一下源码解析的过程:JDK-->JRE-->JVM(以openJDK代替)注意:这里要了解jdk和jre和jvm他们分别是什么?以及他们的关系才可以继续。这里先上一章从网上下载的关系图方便理解2、笔者本地的jdk是oraclejdk,jvm所在位置就是安装的jdk。jdk下jre下bin下server下的jvm.dll。也就是F:\Java\jdk\jdk1.7.0_60\jr
转载 2023-07-20 23:44:05
149阅读
文章目录List集合ArrayListVectorLinkedListSet集合HashSetLinkedHashSetMap集合Map 接口的遍历方式HashMapHashtablePropertiesTreeSetTreeMap开发中如何选择集合实现类Iterator遍历Collection工具类 List集合集合类中元素有序(即添加顺序和取出顺序一致)、且可重复List集合中的每个元素都有
转载 2023-09-28 12:46:22
45阅读
集合类开始更新吧~ java的集合类均来自于 java.util包下java单列顶层接口 Collection 先看看该接口的定义:public interface Collection<E> extends Iterable<E> 可以看出顶级接口Collection 继承了 Iterable ,而Iterable 的定义是这样的: package java.lang;
转载 2023-08-11 18:20:32
54阅读
一、准备工作MyBatis 工作流程:应用程序首先加载 mybatis-config.xml 配置文件,并根据配置文件的内容创建 SqlSessionFactory 对象;然后,通过 SqlSessionFactory 对象创建 SqlSession 对象,SqlSession 接口中定义了执行 SQL 语句所需要的各种方法。之后,通过 SqlSession 对象执行映射配置文件中定义的 SQL
前言java动态代理主要有2种,Jdk动态代理、Cglib动态代理,本文主要讲解Jdk动态代理的使用、运行机制、以及源码分析。当spring没有手动开启Cglib动态代理,即:<aop:aspectj-autoproxy proxy-target-class="true"/>或@EnableAspectJAutoProxy(proxyTargetClass = true),默认使用的就
文章目录ArrayList 集合底层原理LinkedList 集合(底层双链表)Iterator 迭代器源码分析HashSet 底层原理HashMap 底层原理TreeMap 底层原理 ArrayList 集合底层原理原理: ① 利用空参创建的集合,在内存中是默认长度为0的 ② 添加第一个元素的时候,底层会创建一个长度为10的数组 ③ 存满时,会扩容1.5倍 ④ 如果一次添加多个元素,1.5倍还
转载 2023-09-03 10:43:26
37阅读
# Java底层源码解析入门指南 在软件开发领域,了解和解析Java底层源码是提升技能的重要步骤。对于刚入行的小白来说,这个任务看似复杂,但只需要一步一步来,就能够轻松入门。本文将详细介绍如何实现Java底层源码解析,并提供清晰的步骤和示例代码。 ## 流程概述 下表展示了进行Java底层源码解析的主要步骤: | 步骤 | 描述
原创 1月前
31阅读
目录Java中的集合分类ListArrayList实现原理LinkedListVectorIteratorSetHashSetMapHashMap并发容器ConcurrentHashMapCOW容器队列Java中的集合分类ListArrayList实现原理java1.7 (数组初始化长度为10,扩容时乘以1.5倍)ArrayList中含有两个元素,elementData(Object类型的数组)和
  上一节我们主要讲了String类的一些不是很常用的方法,其中需要掌握的如下,我就不再赘述了 public int length() public boolean isEmpty() public byte[] getBytes() public byte[] getBytes(String charsetName) public char charAt(int index) public
java线程底层源码学习用了这么久的线程,都不知道底层到底怎么实现的,觉得有必要花时间研究一下。c语言线程例子这是一段c代码,mutexLock使两个线程交替执行。#include<stdio.h>#include<pthread.h>void* run(void* args){ while(1){ usleep(1000); printf("sub...
原创 2021-07-12 11:30:37
153阅读
# Java Compare方法底层源码实现 ## 介绍 在Java中,我们经常需要对对象进行比较,判断它们的大小关系。Java提供了`Comparable`接口和`Comparator`接口来实现对象的比较。在本文中,我们将重点介绍如何实现`java compare`方法的底层源码。 ## 流程图 ```mermaid journey title 实现java compare方法底层
原创 7月前
60阅读
# Redisson底层源码实现教程 ## 1. 整体流程 为了帮助你理解Redisson底层源码的实现,下面是一个整体流程的表格,展示了实现的步骤和需要做的事情。 | 步骤 | 描述 | | --- | --- | | 1 | 导入Redisson库和相关依赖 | | 2 | 创建Redisson客户端连接 | | 3 | 选择数据结构(如Map或Set) | | 4 | 对数据结构进行操
原创 2023-10-03 13:13:46
60阅读
1.HashMap在创建对象的时候值k v 就确定了 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { //重要属性 static final int D ...
转载 2021-08-22 21:31:00
241阅读
2评论
# 如何实现“Python 底层源码” 在学习Python底层源码的过程中,您将会发现许多Python的核心功能都是由一些底层结构和算法实现的。对于初学者而言,从理解整个流程开始会是一个有效的起点。本文的目标是引导您通过几个步骤,了解如何研究和实现Python的底层源码,并帮助您上手实际的实现。 ## 整体流程 以下是实现“Python底层源码”的基本流程: | 步骤 | 描述
原创 1月前
41阅读
底层原理 - 对象的本质一、Objective-C的本质1、OC的本质OC代码的底层实现其实都是C/C++代码,编译器先把OC代码转换成C/C++代码,接着转成汇编语言,最后转成机器语言最终运行在手机上; 所以OC代码的本质其实就是c/c++代码;OC对象转换过程2、Objective-C的对象、类主要是基于C/C++的什么数据结构实现的?Objective-C的面向对象都是基于C/C++的数据结
深入理解synchronized底层源码 前言 这篇文章从JVM源码分析synchronized的实现逻辑,这样才能更加对synchronized深度的认识。 进程:操作系统资源分配的基本单位。线程:cpu调度的基本单位(真实执行) 一、synchronized的使用场景 synchronized一
转载 2022-06-01 11:19:52
106阅读
JDK1.7和1.8 LinkedList的源码是一样的 public class LinkedList<E> {//e是一个反选,具体的类型要在实例化的时候确定}transient int size = 0;//集合中元素的数量​ private static class Node<E> { E ...
转载 2021-08-15 21:47:00
171阅读
2评论
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> { //外部操作数 protected transient int modCount = 0;//0 } public abstract class AbstractSequ
原创 2023-06-21 18:22:11
141阅读
什么是JSJavaScript是一种基于对象的动态、弱类型脚本语言(简称JS),是一种解释型语言,和其他的编程语言不同,如java/C++等编译型语言,这些语言在代码执行前会进行通篇编译,先编译成字节码(机器码)。然后在执行。而JS不是这样做的,JS是不需要编译成中间码,而是可以直接在浏览器中运行,JS运行过程可分为两个阶段,编译和执行。(可参考你不知道的JS这本书),当JS控制器转到一段可执行的
Python中dict和set实现原理Jolly • 2017 年 11 月 05 日python的dict和set设计上是很巧妙的,底层是用c语言编写,哈希表实现,这样确保了高效的数据处理。1、dict的性能远高于list2、list的查询消耗随着查询数量的增大而增大3、dict的查询消耗并不会随着查询数量的增大而增大dict内部实现是根据哈西表来实现的:1、当申明dict变量的时候,就会在内存
  • 1
  • 2
  • 3
  • 4
  • 5