JVM上篇内存与垃圾回收-运行时数据区概述和程序计数器和虚拟机栈 JVM上篇内存与垃圾回收-运行时数据区概述 当我们通过前面的:类的加载-> 验证 -> 准备 -> 解析 -> 初始化 这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区 Java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外一些则是与线程一一对应的,这些与线程 2022-11-06 JVM上篇内存与垃圾回收 #八股文
基础算法—哈希表篇 基础算法—哈希表篇哈希表一般哈希表都是用来快速判断一个元素是否出现集合里。 例如要查询一个名字是否在这所学校里。 要枚举的话时间复杂度是O(n),但如果使用哈希表的话, 只需要O(1)就可以做到。 我们只需要初始化把这所学校里学生的名字都存在哈希表里,在查询的时候通过索引直接就可以知道这位同学在不在这所学校里了。 将学生姓名映射到哈希表上就涉及到了hash function ,也就是哈希函数。 哈 2022-11-05 基础算法 #算法
JVM上篇内存与垃圾回收-类加载子系统 类加载子系统作用 负责从文件系统或者网络中加载Class文件,Class文件开头有特定标识,魔术,咖啡杯壁 Classloader只负责class文件的加载,至于是否可运行,则由执行引擎决定 加载的类信息存放于称为方法区的内存空间,除了类信息,方法区还会存放运行时常量池信息,还可能包括字符串字面量和数字常量 常量池运行时加载到内存中,即运行时常量池 类的加载过程 加载 加载刚好是加载过程的 2022-11-04 JVM上篇内存与垃圾回收 #八股文
基础算法—链表篇 基础算法—链表篇链表的基础知识链表的分类单链表 代码1234567891011121314151617public class ListNode { // 结点的值 int val; // 下一个结点 ListNode next; // 节点的构造函数(无参) public ListNode() {} // 节点的构造函数( 2022-11-03 基础算法 #算法
基础算法—前缀和+差分篇 前缀和前缀和主要适用的场景是原始数组不会被修改的情况下,频繁查询某个区间的累加和。 123456789101112131415161718class PrefixSum { // 前缀和数组 private int[] prefix; /* 输入一个数组,构造前缀和 */ public PrefixSum(int[] nums) { 2022-11-03 基础算法 #算法
基础算法—滑动窗口篇 滑动窗口所谓滑动窗口,就是不断的调节子序列的起始位置和终止位置,从而得出我们要想的结果。 实现滑动窗口,主要确定如下三点: 窗口内是什么? 如何移动窗口的起始位置? 如何移动窗口的结束位置? 滑动窗口 + 变量计数模板:123456789101112131415161718192021222324252627282930class Solution { public int 2022-11-02 基础算法 #算法
基础算法—双指针+模拟篇 双指针双指针法(快慢指针法):通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。 暴力解法时间复杂度:O(n^2) 双指针时间复杂度:O(n) 双指针法(快慢指针法)在数组和链表的操作中是非常常见的,很多考察数组和链表操作的面试题,都使用双指针法。 相关题目27. 移除元素思路移除元素 - 移除元素 - 力扣(LeetCode) 26. 删除有序数组中的重复项思路删除有序数组中 2022-11-02 基础算法 #算法
基础算法—二分查找篇 二分查找二分法是非常重要的基础算法,做题时注意边界的处理和循环不变量。 时间复杂度:O(logn) 基础模板:左闭右闭区间123456789101112class Solution { public int search(int[] nums, int target) { int left = 0, right = nums.length - 1; 2022-11-02 基础算法 #算法
JVM上篇内存与垃圾回收-JVM与Java体系结构 什么是Java虚拟机 Java虚拟机是一台执行Java字节码的虚拟计算机,它拥有独立的运行机制,其运行的Java字节码也未必由Java语言编译而成。 JVM平台的各种语言可以共享Java虚拟机带来的跨平台性、优秀的垃圾回器,以及可靠的即时编译器。 Java技术的核心就是Java虚拟机(JVM,Java Virtual Machine),因为所有的Java程序都运行在Java虚拟机内部。 作用 J 2022-11-01 JVM上篇内存与垃圾回收 #八股文
尚医通总结 尚医通总结感受:前前后后花了30天终于把这个项目的整体功能跑通了,幸好之前有个备案的域名(就是这个博客),借助它实现了阿里云的短信服务和OSS对象存储。 总体来说进度挺慢的,大部分时间都用在了修BUG上,特别是版本问题,视频教程的时间是2020年12月,我是2022年10月开始写的中间隔了一年多,很多技术的用法和一年多以前不同了,比如说微信的退款接口发生改变了等。 作为我的第一个微服务项目,我的确 2022-10-30 尚医通项目 #项目