自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(166)
  • 资源 (1)
  • 收藏
  • 关注

原创 【第一章-计算机系统概述】

本文系统梳理了计算机操作系统的基础知识框架,主要包含七大模块:1)操作系统基本概念(定义、功能目标及特征);2)发展历程(从手工操作到现代分布式系统);3)运行环境(处理器模式、中断异常、系统调用);4)系统结构与引导过程;5)虚拟机技术。内容涵盖操作系统核心概念、演进过程及关键技术实现,为理解计算机系统运行机制提供了结构化知识体系。最后通过章节小结对知识点进行系统总结。

2025-10-10 16:48:06 191

原创 【第四章-指令系统】

本文介绍了计算机指令系统的基本概念和组成。指令系统是计算机体系结构(ISA)的核心部分,定义了软硬件接口。一条指令包含操作码和地址码字段,指令长度可分为单字长、半字长和双字长指令。根据操作数地址码数量,指令可分为零地址、一地址、二地址、三地址和四地址等不同格式。ISA还规定了指令格式、寻址方式、寄存器组织、存储空间编址等关键内容,为机器级程序提供了规范标准。指令系统是计算机硬件设计的基础,直接影响到程序执行效率和硬件实现复杂度。

2025-09-26 08:55:51 497

原创 【第三章-存储系统】

存储系统摘要存储系统是计算机体系的重要组成部分,主要分为主存、辅存和高速缓存。主存(DRAM)用于存放运行程序和数据,速度快但容量较小;辅存(如磁盘)容量大但速度慢;高速缓存(SRAM)位于CPU和主存之间,提供最快访问速度。存储器按存取方式可分为随机存取(RAM)、只读(ROM)和串行访问(如磁带)。DRAM需定期刷新以保持数据,刷新方式包括集中、分散和异步刷新。ROM具有非易失性,包括MROM、PROM和EPROM等类型。多级存储层次结构通过高速缓存和主存-辅存协同工作,平衡速度、容量和成本需求。

2025-07-29 02:23:27 253

原创 【第二章-数据的表示和运算】

摘要:数据的表示与运算 本文系统介绍了计算机中数据的表示方法和运算规则。第一部分重点阐述了数制转换与编码表示,包括二进制编码的优势、不同进制间的转换方法,以及定点数的四种编码表示(原码、补码、反码和移码),特别分析了补码在整数表示中的优势。第二部分探讨了C语言中的整数类型转换规则,包括有/无符号数转换时的位解释变化和不同字长转换时的扩展/截断处理方法。文章还通过实例说明了补码表示下负数的大小判断方法,并强调计算机内部数据以补码形式存储的特点。这些基础知识为理解计算机数据存储和运算机制提供了重要参考。

2025-07-26 23:07:46 672

原创 【第一章-计算机系统概述】

《计算机系统学习笔记:从实践到理论的探索》 本文记录了作者在2025年重新学习计算机组成原理的过程。与大学时应试学习不同,这次学习带着实践经验和明确目标。笔记首先回顾了计算机硬件发展历程:从1946年第一台电子管计算机ENIAC开始,到晶体管时代的演变,重点关注了逻辑元件(计算机的"脑细胞")和主存储器(现代内存的前身)的技术发展。作者特别强调要"追根究底"的学习态度,通过代码实践与理论结合来深入理解计算机系统原理。笔记还附有大学成绩单作为学习历程的纪念。

2025-06-22 22:33:32 496

原创 【JVM 09-垃圾回收】

本文总结了垃圾回收的关键技术,包含五大要点:1)判断对象回收的引用计数法和可达性分析算法,以及强/软/弱/虚四种引用类型;2)标记清除、标记整理和复制三种基本回收算法;3)分代回收原理;4)吞吐量优先和响应时间优先两类回收器选择;5)垃圾回收调优方法。内容涵盖从对象回收判定到系统优化的完整知识体系,适合作为JVM内存管理的速查笔记。

2025-06-17 16:19:04 254

原创 【JVM 08-直接内存】

直接内存是JVM堆外内存,通过NIO引入,用于提升I/O性能(比传统IO快3倍)。它不受JVM内存管理,需手动释放,可能引发OOM。底层通过Unsafe类分配/释放,ByteBuffer使用Cleaner(虚引用)自动回收。禁用显式GC(-XX:+DisableExplicitGC)会影响直接内存回收,可通过System.gc()或反射调用Unsafe.freeMemory解决。直接内存减少了系统缓冲区到Java缓冲区的复制步骤,但分配成本较高。

2025-06-17 15:16:26 513

原创 【JVM 07-运行时常量池重要组成部分-StringTable】

如果引用出现大量的重复字符串,可以让字符串入池,来减少字符串对象个数,节约堆内存的使用。这里就是动态的调整jvm参数发现执行的时间变化是很大的。使用javap -v class文件看具体细节。这里就证明了确实StringTable是会发生。for循环10次,将480w都存入list中。这里能看到Constant poool;StringTable底层是哈希表。看报错也就知道了串池在堆空间。> 没有入池占用到80%左右。执行代码前的字符串常量池统计。这里是读48w个单词,

2025-06-17 13:19:59 727

原创 【JVM目前使用过的参数总结】

2025-06-17 11:47:15 271

原创 【JVM 06-JVM内存结构之-方法区】

方法区:在 JDK 1.8 及以后的版本中,方法区被元空间取代,使用本地内存。用于存储已被虚拟机加载的类信息、常量、静态变量等数据。虽然方法区被描述为堆的逻辑部分,但有 “非堆” 的别名。方法区可以选择不实现垃圾收集,内存不足时会抛出 OutOfMemoryError 异常。方法区存储了和类的结构相关的信息(运行时常量池、类的成员变量,方法数据,成员方法以及构造器方法的代码部分)方法区在虚拟机启动时被创建,尽管逻辑上是堆的一部分,但是具体的不同的JVM厂商去实现时不一定会遵从JVM的逻辑定义。线程共享。

2025-06-16 16:54:49 1310

原创 【1438. 绝对差不超过限制的最长连续子数组】

【代码】【1438. 绝对差不超过限制的最长连续子数组】

2025-06-06 04:03:47 249

原创 【239. 滑动窗口最大值】

【代码】【239. 滑动窗口最大值】

2025-06-06 03:05:58 158

原创 【JVM 05-JVM内存结构之-堆】

堆是 JVM 中最大的一块内存区域,被所有线程共享,在虚拟机启动时创建,用于存放对象实例。从内存回收角度,堆被划分为新生代和老年代,新生代又分为 Eden 区和两个 Survivor 区(From Survivor 和 To Survivor)。如果在堆中没有内存完成实例分配,并且堆也无法扩展时会抛出 OutOfMemoryError 异常小林面试网站关于堆的介绍通过ne关键字,创建对象都会使用堆内存。

2025-05-24 19:51:49 1423

原创 【JVM 04-JVM内存结构之-本地栈】

与 Java 虚拟机栈类似,主要为虚拟机使用到的 Native 方法服务,在 HotSpot 虚拟机中和 Java 虚拟机栈合二为一。本地方法执行时也会创建栈帧,同样可能出现 StackOverflowError 和 OutOfMemoryError 两种错误。简单地讲,一个就是一个Java调用非Java代码的接口。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。

2025-05-24 18:45:37 911

原创 【JVM 03-JVM内存结构之-虚拟机栈】

虚拟机栈:线程运行需要的内存空间。栈中放的是多个栈帧。栈帧:每个方法运行时需要的内存。(比如参数,局部变量,返回地址等。每个线程只能有1个活动栈帧,对应着当前正在执行的那个方法。Java虚拟机栈(Java Virtual Machine Stack),早期也叫Java栈。每个线程在创建时都会创建一个虚拟机栈,其内部保存一个个的栈帧(Stack Frame),对应着一次次的Java方法调用。是线程私有的,生命周期和线程一致。虚拟机栈中放的一个个栈帧。

2025-05-23 22:08:51 1366

原创 【JVM 02-JVM内存结构之-程序计数器】

Program Counter Register 程序计数器当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为“取指令”。与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令。JVM中的程序计数寄存器(Program Counter Register)中, Register 的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。

2025-05-23 20:36:27 1213

原创 【JVM 01-引言入门篇】

定义:Java虚拟机(简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一。【Java 二进制字节码运行环境】一次编写,到处运行自动内存管理,垃圾回收功能数组下标越界越界检查多态。

2025-05-23 20:08:45 688

原创 【438. 找到字符串中所有字母异位词】

思路就是我们要找和p相同的词,可以先排个序,每次取一个和p的size长度相同的窗口去滑动,符合就记录,不符合继续滑动。

2025-05-23 19:00:37 238

原创 【128. 最长连续序列】

先去重,防止有两个一样的数,然后找到序列中比当前数小的一个,如果存在则跳过,不存在则说明当前就是最小的,然后挨个询问剩下的看有多少重复的,每一个数都这样询问就行。

2025-05-23 08:56:47 218

原创 【49. 字母异位词分组】

【代码】【49. 字母异位词分组】

2025-05-23 08:31:58 486

原创 【234. 回文链表】

思路,找到中间结点,然后反转后半部分得到新链表,然后比较前半部分和后半部分每一个结点的值不同就不是回文链表,直到遍历结束。

2025-05-23 00:38:08 166

原创 【424. 替换后的最长重复字符】

的思想,把问题变成将其他字符替换为目标字符后哪一种最长。

2025-05-22 23:43:21 313

原创 【2024. 考试的最大困扰度】

的解法做两次操作取最大值就行。

2025-05-22 23:01:16 196

原创 【1004. 最大连续1的个数 III】

这题主要是要想到怎么让已经用掉的k重新还回去,这里如果k没有还回去就让left++是为了收缩到可以重新利用k,所以遇到left扫到的0说明用过了就还回去。

2025-05-22 22:51:29 244

原创 【76. 最小覆盖子串】

思路很简单,写起来就不是一会事了,看题解看了几个h,还是太菜了,这题得重点标记一下。滑动窗口的hard题目,思路先找到第一个覆盖的窗口,不断缩小左边界,找到更小的窗口并记录。

2025-05-21 22:24:10 246

原创 【713. 乘积小于 K 的子数组】

什么区别,没有什么区别,关键时理解滑动窗口的作用。

2025-05-21 19:43:12 204

原创 【209. 长度最小的子数组】

【代码】【209. 长度最小的子数组】

2025-05-21 18:04:21 179

原创 【3. 无重复字符的最长子串】

【代码】【3. 无重复字符的最长子串】

2025-05-21 14:39:32 218

原创 【167. 两数之和 II - 输入有序数组】

和之前的两数之和没啥区别,除了是下标从1开始。

2025-05-21 13:53:58 163

原创 【11. 盛最多水的容器 】

【代码】【11. 盛最多水的容器 】

2025-05-21 13:27:06 246

原创 【611. 有效三角形的个数 】

这个题其实还是双指针的思路,但是确实没想到固定最长边的指针移动。具体思路可以去看灵神的讲解,点击->

2025-05-21 13:25:40 192

原创 【18. 四数之和 】

【代码】【18. 四数之和 】

2025-05-21 13:21:11 186

原创 【16 最接近的三数之和 】

【代码】【16 最接近的三数之和 】

2025-05-21 13:19:43 150

原创 【2824. 统计和小于目标的下标对数目】

【代码】【2824. 统计和小于目标的下标对数目】

2025-05-21 13:11:05 204

原创 【15. 三数之和】

【代码】【15. 三数之和】

2025-05-21 13:05:32 181

原创 【LCR 006. 两数之和 II - 输入有序数组】

本文介绍了LeetCode算法练习中的LCR 006题“两数之和 II - 输入有序数组”的解题思路和Java实现。题目要求在一个非递减的数组中找到两个数,使它们的和等于目标值。解题思路采用双指针法,通过比较当前最大数与最小数的和与目标值的关系,逐步缩小搜索范围。如果和大于目标值,则舍去最大数;如果和小于目标值,则舍去最小数;直到找到符合条件的两个数。代码实现中,通过初始化两个指针分别指向数组的起始和末尾,通过循环不断调整指针位置,最终返回符合条件的两个数的索引。该方法的时间复杂度为O(n),空间复杂度为O

2025-05-21 12:51:57 143

原创 【牛客-输入输出练习】

本文总结了OJ在线编程中常见的输入输出练习,涵盖了多种场景的Java代码实现。

2025-05-20 11:06:48 370

原创 【Java设计模式及实践学习-第4章节-结构型模式】

设计模式-结构型模式学习

2025-04-23 15:56:41 336

原创 【Java核心技术卷Ⅰ-第11版学习-第3章-Java的基本程序设计结构】

本章节开始记录阅读Java核心技术卷Ⅰ的笔记记录。其中第一章节主要介绍了Java语言的特性,第二章节主要介绍了Java的环境如何安装,这里直接跳过进入第三章代码学习。

2025-04-21 21:11:01 336

原创 【首用SSE实现 “下载压缩附件“-实时进度条,评测下是不是玩具?】

sse实现实时进度条

2025-03-21 10:51:50 523

MainActivity.java

okhttp+Gson解析,以及Gson本地解析,这是解析的主类,可以直接拿去用= = ,本人第一次写博客,主要用来记录,希望可以给你帮助,有不对的地方请指出来。

2020-03-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除