文章目录一 集合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
java学习笔记String一、概述: 1)String声明为final的,不可被继承 2)String实现了Serializable接口:表示字符串是支持序列化的                实现了Comparable接口:表示String可以比
# Java 集合排序的底层实现 在 Java 中,排序是一个非常常见的任务。Java 集合中的 `Collections.sort()` 方法是我们进行排序的重要工具,理解其底层实现可以帮助我们更好地掌握 Java 的数据处理。本文将带领你了解 Java 集合排序的整个流程,并给出相应的代码示例和说明。 ## 流程概述 我们将分步骤讲解 Java 集合的排序流程,具体步骤如下:
原创 2024-08-29 06:26:51
33阅读
Java编程中,涉及金钱相关的处理是一个常见的需求。特别是当我们处理金融应用时,货币计算的精确性至关重要。在此过程中,Java中提供的`Money`(通常是JSR 354的部分)扮演了关键角色。然而我们在使用时却常常会忽略其底层实现细节。为了深入理解`Money`的运作机制,我将系统地解析其技术原理、架构、源码及应用场景。 ## 背景描述 在我们讨论`Money`底层之前,可以先看一
原创 6月前
90阅读
package com.collection.set; import java.util.TreeSet; import org.junit.Test; /* 集合的体系: ----| Collection: 单例集合的根接口 -------| List:实现了List接口的集合,具备的特点:有序,可重复; ----------| ArrayList:底层是维护了一个Object数组
转载 2023-09-04 13:17:52
62阅读
# 实现 Java 中的 Pair 底层Java 中,`Pair` 通常用于存储两个相关联的对象。虽然 Java 标准库中并未自带 `Pair` ,但在许多情况下,开发者为了方便管理相关数据,会自行实现这个。本文将带你一步步实现一个简单的 `Pair` ,并解释每一部分的功能。 ## 流程概览 下面是实现 `Pair` 的过程,我们将通过一个简单的步骤表来说明整个流程:
原创 10月前
95阅读
# 安卓底层Java库科普 在安卓开发中,我们经常会用到底层Java库,这些库包含了许多常用的和接口,可以帮助我们更高效地开发应用。本文将介绍一些常用的安卓底层Java库,并给出相应的代码示例。 ## Java.lang包 Java.lang包是Java语言的核心包,其中包含了一些基本的,如Object、String、Integer等。在安卓开发中,我们经常会用到这些来处理数
原创 2024-04-07 03:33:56
77阅读
一、的生命周期加载,验证,准备,解析,初始化,使用,卸载二、的加载器自定义加载器应用加载器扩展加载器启动加载器三、JVM加载机制全盘负责,当一个加载器负责加载某个Class时,该Class所依赖的和引用的其他Class也将由该类加载器负责载入,除非显示使用另外一个加载器来载入。父委托,先让父加载器试图加载该类,只有在父加载器无法加载该类时才尝试从自己的路径中加载该类。缓存
转载 2020-06-30 16:15:00
213阅读
2评论
底层实现原理可能因不同的 Java 版本和具体的实现而有所差异,上述描述是一种常见的实现方式。是 Java 并发包中的一个关键,用于实现锁和同步器的基本框架。它通过一个整数计数器来表示许可的数量,并通过内部的等待队列来管理等待获取许可的待队列中的线程。
原创 2023-06-10 00:03:39
76阅读
目录前言一.集合概述二、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 所示。可以看到,当使用无序容器存储键值对时,会先申请一整块连续的存储空间,
Java中与字符串相关的常用有:String StringBuffer StringBuilder等,下面对最常用的String相关用法总结1. String1.1 String的特性String代表字符串。java程序中的所有字符串字面值(如"abc"等)都可以作为此类的实例。String是一个final,代表不可变的字符序列。 字符串是常量,用双引号引起来。它们的值在创建之后不能更改。
一、加载机制1.Java提供了一种机制把字节码文件加载进JavaJVM内存中(的加载机制)---加载器1.必须将字节码文件先加载到方法区中,然后才能在堆中创建对象2.三种加载器Person-->自定义---由应用加载器加载进内存 String、Object、Array-->java封装好的---由启动加载器加载进内存 扩展---由扩展加载器加载进内存2.1 应用
String a = “abc”; ,说一下这个过程会创建什么,放在哪里?JVM会使用常量池来管理字符串直接量。在执行这句话时,JVM会先检查常量池中是否已经存有"abc",若没有则将"abc"存入常量池,否则就复用常量池中已有的"abc",将其引用赋值给变量a。new String(“abc”) 是去了哪里,仅仅是在堆里面吗?由于String本身的不可变性(后续分析),在执行这句话时,JVM会先
重写(Override)的目的老子和小子之间有代沟,老子喜欢成熟稳重的,而小子喜欢漂亮的。为了解决这个代沟问题,重写赋予了子类能够按照自己的方式选择的能力。当然,子类也可以按照父的方式处理,毕竟是儿子,调用super.xxx()就可以。重写的在模板方法中用的比较多,父定义了一定的流程,要做哪些事情,具体怎么做交给子类去实现。重写和重载(Overload)的区别重载(Overload)指的是相同
Java中new一个对象,会把这个对象放在堆里,所有都是object子类,通过stack指向堆。由于Java中对象很多都是不长久的,所以一直放在堆中不高效;且Java是一个面相对象语言,基本类型并不具有对象性质,为了让基本类型也具有对象特征,出现了包装类型(如在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使它具有了对象性质,并且为其添加了
最近准备秋招面试,发现二叉树这种可以无限扩展知识点来虐别人的数据结构,很受面试官的青睐。如果掌握的不好,会直接死在一面哦。怕吗?当你原理、思想,内部结构通通明白,分分钟手撕代码的程度,还怕吗?本篇文章就从用java的思想和程序从最基本的怎么将一个int型的数组变成Node树状结构说起,再到递归前序遍历,递归中序遍历,递归后序遍历,非递归前序遍历,非递归前序遍历,非递归前序遍历,到最后的广度优先遍历
  • 1
  • 2
  • 3
  • 4
  • 5