文章目录一 集合1.1 Iterable与Iterator1.2 Collection接口1.2.1 ArrayList1.2.1.1 重要参数1.2.1.2 构造器1.2.1.3扩容过程1.2.1.4 增加方法1.2.1.5 总结1.2.2 Vector1.2.2.1 重要参数1.2.2.2 构造器1.2.2.3 扩容过程1.2.2.4 总结1.2.3 LinkedList1.2.3.1 重要
转载
2023-07-18 22:00:10
106阅读
Java,编程语言,被创造于90年代初,在经历了这么多年的风风雨雨,Java已经成长为世界第一的编程语言,根据往期以及目前的数据来看,Java的使用频率为全球第一,即使偶尔会有第二第三的情况,但是这依旧不能撼动Java的霸主地位。有些工作年限的Java程序员已经是对Java的运行原理了解的很透彻了,本文只为新人带来详细的解析。JVM是Java的核心和基础,是Java编译器和平台之间的虚拟处理器,利
转载
2023-06-25 16:38:32
187阅读
目录Eager Copy 深拷贝COW(Copy-On-Write) 写时复制SSO(Short String Optimization)短字符串优化最佳策略线程安全性COW 写时复制的代码实现内存增长策略总结 我们都知道, std::string的一些基本功能和用法,但它底层到底是如何实现的呢? 其实在std::string的历史中,出现过几种不同的方式。可以从一个简单的问题来探索,一个std
Java 并发机制的底层实现原理Java 代码在编译后会变成 Java 字节码,字节码被类加载器加载到 JVM 里,JVM 执行字节码,最终需要转化为汇编指令在 CPU 上执行,Java 中所使用的并发机制依赖于 JVM 的实现和 CPU 的指令。本章我们将深入底层一起探索下 Java 并发机制的底层实现原理。volatile 的应用在多线程并发编程中 synchronized 和 volatil
转载
2023-08-03 16:10:59
57阅读
java学习笔记String一、概述: 1)String声明为final的,不可被继承 2)String实现了Serializable接口:表示字符串是支持序列化的 实现了Comparable接口:表示String可以比
转载
2023-08-23 08:42:27
57阅读
# Java 集合类排序的底层实现
在 Java 中,排序是一个非常常见的任务。Java 集合类中的 `Collections.sort()` 方法是我们进行排序的重要工具,理解其底层实现可以帮助我们更好地掌握 Java 的数据处理。本文将带领你了解 Java 集合类排序的整个流程,并给出相应的代码示例和说明。
## 流程概述
我们将分步骤讲解 Java 集合类的排序流程,具体步骤如下:
原创
2024-08-29 06:26:51
33阅读
在Java编程中,涉及金钱相关的处理是一个常见的需求。特别是当我们处理金融应用时,货币计算的精确性至关重要。在此过程中,Java中提供的`Money`类(通常是JSR 354的部分)扮演了关键角色。然而我们在使用时却常常会忽略其底层实现细节。为了深入理解`Money`类的运作机制,我将系统地解析其技术原理、架构、源码及应用场景。
## 背景描述
在我们讨论`Money`类的底层之前,可以先看一
package com.collection.set;
import java.util.TreeSet;
import org.junit.Test;
/*
集合的体系:
----| Collection: 单例集合的根接口
-------| List:实现了List接口的集合类,具备的特点:有序,可重复;
----------| ArrayList:底层是维护了一个Object数组
转载
2023-09-04 13:17:52
62阅读
一、类的生命周期加载,验证,准备,解析,初始化,使用,卸载二、类的加载器自定义类加载器应用类加载器扩展类加载器启动类加载器三、JVM类加载机制全盘负责,当一个类加载器负责加载某个Class时,该Class所依赖的和引用的其他Class也将由该类加载器负责载入,除非显示使用另外一个类加载器来载入。父类委托,先让父类加载器试图加载该类,只有在父类加载器无法加载该类时才尝试从自己的类路径中加载该类。缓存
转载
2020-06-30 16:15:00
213阅读
2评论
类的底层实现原理可能因不同的 Java 版本和具体的实现而有所差异,上述描述是一种常见的实现方式。是 Java 并发包中的一个关键类,用于实现锁和同步器的基本框架。它通过一个整数计数器来表示许可的数量,并通过内部的等待队列来管理等待获取许可的待队列中的线程。
原创
2023-06-10 00:03:39
76阅读
# 实现 Java 中的 Pair 类的底层
在 Java 中,`Pair` 类通常用于存储两个相关联的对象。虽然 Java 标准库中并未自带 `Pair` 类,但在许多情况下,开发者为了方便管理相关数据,会自行实现这个类。本文将带你一步步实现一个简单的 `Pair` 类,并解释每一部分的功能。
## 流程概览
下面是实现 `Pair` 类的过程,我们将通过一个简单的步骤表来说明整个流程:
# 安卓底层Java类库科普
在安卓开发中,我们经常会用到底层的Java类库,这些类库包含了许多常用的类和接口,可以帮助我们更高效地开发应用。本文将介绍一些常用的安卓底层Java类库,并给出相应的代码示例。
## Java.lang包
Java.lang包是Java语言的核心包,其中包含了一些基本的类,如Object、String、Integer等。在安卓开发中,我们经常会用到这些类来处理数
原创
2024-04-07 03:33:56
77阅读
目录前言一.集合类概述二、Collection1.List实现2.set实现三.Map 总结前言这篇文章是根据张席主编的《JAVA语言程序设计教程》提炼出来的一些JAVA中集合的知识,还会加上我在编程过程中的遇到的问题和使用心得,如有错误欢迎指正。一.集合类概述JAVA中的集合类可以分为两大类: 一类是实现Collection接口;另一类是实现Map接口。Collection是一个基本的
转载
2023-08-30 12:59:06
36阅读
本文不介绍unordered_map容器的使用,只讲它的底层实现!!!C++ STL 标准库中,不仅是 unordered_set 容器,所有无序容器的底层实现都采用的是哈希表存储结构(哈希表结构默认大家都会哈)。更准确地说,是用“链地址法”(又称“开链法”)解决数据存储位置发生冲突的哈希表,整个存储结构如图 1 所示。可以看到,当使用无序容器存储键值对时,会先申请一整块连续的存储空间,
一、类加载机制1.Java提供了一种机制把字节码文件加载进JavaJVM内存中(类的加载机制)---类加载器1.必须将字节码文件先加载到方法区中,然后才能在堆中创建对象2.三种类加载器Person-->自定义类---由应用类加载器加载进内存
String、Object、Array类-->java封装好的类---由启动类加载器加载进内存
扩展类---由扩展类加载器加载进内存2.1 应用类
转载
2024-10-21 19:27:37
77阅读
Java中与字符串相关的常用类有:String StringBuffer StringBuilder等,下面对最常用的String相关用法总结1. String1.1 String的特性String类代表字符串。java程序中的所有字符串字面值(如"abc"等)都可以作为此类的实例。String类是一个final类,代表不可变的字符序列。 字符串是常量,用双引号引起来。它们的值在创建之后不能更改。
转载
2023-08-31 10:12:22
38阅读
String a = “abc”; ,说一下这个过程会创建什么,放在哪里?JVM会使用常量池来管理字符串直接量。在执行这句话时,JVM会先检查常量池中是否已经存有"abc",若没有则将"abc"存入常量池,否则就复用常量池中已有的"abc",将其引用赋值给变量a。new String(“abc”) 是去了哪里,仅仅是在堆里面吗?由于String本身的不可变性(后续分析),在执行这句话时,JVM会先
转载
2024-02-16 22:51:49
35阅读
最近准备秋招面试,发现二叉树这种可以无限扩展知识点来虐别人的数据结构,很受面试官的青睐。如果掌握的不好,会直接死在一面哦。怕吗?当你原理、思想,内部结构通通明白,分分钟手撕代码的程度,还怕吗?本篇文章就从用java的思想和程序从最基本的怎么将一个int型的数组变成Node树状结构说起,再到递归前序遍历,递归中序遍历,递归后序遍历,非递归前序遍历,非递归前序遍历,非递归前序遍历,到最后的广度优先遍历
转载
2023-09-20 08:53:45
136阅读
点赞
一、概述synchronized作用原子性:synchronized保证语句块内操作是原子的;(原子操作可以是一个步骤,也可以是多个操作步骤,但是其顺序不可以被打乱,也不可以被切割而只执行其中的一部分(不可中断性)。将整个操作视为一个整体是原子性的核心特征) 可见性:synchronized保证可见性(通过“在执行unlock之前,必须先把此变量同步回主内存”实现) 有序性:synchronize
转载
2024-06-17 09:20:40
32阅读
Java中new一个对象,会把这个对象放在堆里,所有类都是object子类,通过stack指向堆。由于Java中对象很多都是不长久的,所以一直放在堆中不高效;且Java是一个面相对象语言,基本类型并不具有对象性质,为了让基本类型也具有对象特征,出现了包装类型(如在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使它具有了对象性质,并且为其添加了
转载
2023-09-26 12:44:03
103阅读