自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 Day14| 回溯+JVM虚拟机

双亲委派机制就是一个类加载器收到加载类的请求时,会先将这个请求委派给父类加载器加载,如果父类加载器能加载的话,就返回父类加载器加载的类,如果父类加载器加载不了,再委托字类加载器加载。类从被加载到虚拟机内存开始,到从内存中卸载,整个生命周期需要经过七个阶段:加载、验证、准备、解析、初始化、使用和卸载,其中验证、准备、解析统称为连接。可以避免类的重复加载、确保类的安全性和一致性、防止类的篡改、方便类加载器的扩展和自定义。1)启动类加载器 主要负责加载Java的核心类库,由C++实现。

2024-08-09 21:43:42 193

原创 Day13| 二叉树 + JVM1

就是Java虚拟机,是Java实现平台无关性的基石。Java程序运行时,编译器将Java文件编译成平台无关的Java字节码文件(.class),然后用对应平台的JVM对字节码进行解释,转换成对应平台的机器指令。指针碰撞和空闲列表都是JVM内存分配的方式。指针碰撞:假设Java堆中的内存是绝对规整的,一边是被使用过的内存,另一边是未被使用的内存,中间用一个指针分隔,那么分配内存时就只需要把指针向未分配的方向挪动与对象大小相等的距离即可。

2024-08-02 14:01:33 1741

原创 Day12| Java并发2

CAS是一种原子操作,用于实现多线程环境下的同步操作。CAS操作是一种乐观锁的实现方式,不需要锁来保证线程安全,而是通过比较内存位置的值来实现同步操作。在多线程环境下,多个线程可以同时执行CAS操作,但之后一个线程能成功更新内存位置的值。存在的问题:1)ABA问题:初始是A,但有可能A变成B又变成A,数据可能有问题。解决:加版本号。2)循环性能开销:自旋CAS,如果一直循环执行,一直不成功,会给CPU带来巨大开销。解决:设置自旋次数限制。

2024-07-28 16:43:52 1068

原创 DAY11| 栈与队列1 + Java并发八股1

进程是系统进行资源分配和调度的基本单位。线程是进程的一个执行路径,一个进程中至少有一个线程,而同一个进程中的多个线程共享进程的资源,比如说进程上的堆和方法区,但是每个线程都有自己的程序计数器和栈。CPU资源分配采用了时间片轮转Java线程分为两类,一种是守护线程、一种是用户线程。JVM在启动时会调用main函数,main函数所在的线程就是用户线程,而像垃圾回收线程就属于守护线程。两者的区别在于,当最后一个用户线程结束时,JVM会正常退出,不会在意守护线程时候没有结束。

2024-07-27 21:42:21 1817

原创 DAY10| 栈与队列1

【代码】DAY10| 栈与队列1。

2024-07-26 15:39:39 242

原创 DAY9| 字符串2

这道题我感觉难点主要是在去除无效空格上面,需要用到StringBuilder,先去除两侧的空格,然后用StringBuilder来接收结果,最后再转String。

2024-07-25 17:42:27 148

原创 DAY8| 字符串1

习惯了力扣的刷题模式,ACM练的还是少。

2024-07-24 14:36:41 188

原创 DAY7| 哈希表2

Arrays.asList(nums[i],nums[left],nums[right]) 可以将nums的三个值转化成List的形式。与三数之和类似,只不多要套两层循环。对第一层循环来说需要判断nums[i]是否大于target,用于剪枝。

2024-07-24 13:30:36 112

原创 DAY6| 哈希表1

2、本题用了两个map分别存放ss和tt,也可以用一个map存放,存ss时数量++,存tt时数量--,最后判断map中的所有value是否等于0;法一中最后list转数组的时候不能用toArray直接转,会报错,可以用循环赋值。1、判断两个map是否想等不能用==,可以用equals()方法;

2024-07-22 17:21:26 129

原创 DAY4| 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II

本题总结:用双指针记录下标位置,fast移动,slow定位。

2024-07-20 20:09:16 376

原创 DAY3| 链表理论基础、203.移除链表元素、707.设计链表、206.反转链表

双链表:每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节点。:链表在内存中不是连续分布。通过指针域的指针链接在内存中各个节点。循环链表:链表首尾相连,可解决。:链表适合频繁增删、数组适合频繁查找。每次写都会忘记,还需要多加练习。

2024-07-19 15:55:48 285

原创 DAY2| 977.有序数组的平方、209.长度最小的子数组 、59.螺旋矩阵II

ps:滑动窗口(本质是双指针)

2024-07-18 16:35:09 227

原创 DAY1| 704. 二分查找、27. 移除元素

1. 在刚开始的边界判定时,左闭右闭可以判断num[right] 和 mid是否相等,而左闭右开则不行,会越界。2. 将 mid 由 (left+right)/2 写成 left + (right-left)/2或者 left + (right-left)> 1 都可以防止溢出,区别是位运算比直接相除的操作快(对于二进制的正数来说,右移x位相当于除以2的x几次方,所以右移一位等于除以2)。35.搜索插入位置//左闭右闭}else{return mid;

2024-07-17 19:16:56 201 1

空空如也

空空如也

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

TA关注的人

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