真的敲不会java啊!太tm难了
码龄6年
关注
提问 私信
  • 博客:17,215
    17,215
    总访问量
  • 18
    原创
  • 59,624
    排名
  • 209
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
  • 加入CSDN时间: 2019-03-09
博客简介:

weixin_44748929的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    1
    当前总分
    46
    当月
    10
个人成就
  • 获得332次点赞
  • 内容获得0次评论
  • 获得310次收藏
创作历程
  • 18篇
    2024年
成就勋章
TA的专栏
  • Java基础
    10篇
  • Jvm
    7篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Java之红黑树详聊(超级轻松、愉快解释版本)

亲爱的❤️🎉,红黑树的本质就是让“二叉搜索树”更加聪明,它通过颜色和规则保持平衡,确保高效的操作性能。记住,红黑树最重要的就是这五条规则,每当插入或删除节点时,它都能够自我调整,保持平衡,让查找效率稳定在 O(log n) 的水准。延展红黑树的相关知识,深入浅出地挖掘更多重点内容,绝对不会让你觉得枯燥乏味🌟✨!
原创
发布博客 2024.10.06 ·
771 阅读 ·
20 点赞 ·
0 评论 ·
21 收藏

Java 悲观锁和乐观锁(通俗解释版!简单易懂)附加代码解释

悲观锁是一种非常谨慎的策略。在这个策略下,每次我们要读取或修改数据时,都假设最坏的情况会发生——也就是我们担心别的线程(或事务)会同时访问或修改同一个数据。因此,在处理数据前,我们会先上锁,让其他线程暂时不能访问这个数据,直到我们完成操作并释放锁。与悲观锁不同,乐观锁假设冲突不会经常发生。它的思路是:当多个线程同时访问同一数据时,没必要每次都上锁,大家可以“乐观”地认为自己不会遇到冲突。在操作数据时,我们不加锁,等到最后提交数据时,才检查是否有人在我们操作期间修改了数据。
原创
发布博客 2024.09.29 ·
637 阅读 ·
19 点赞 ·
0 评论 ·
6 收藏

Java之ConcurrentHashMap 和 Hashtable的比较(通俗讲解版)

在学习时,通常会结合一起学习,因为这两者都用于,而且它们都是的集合类。通过对比它们的特性和使用场景,可以帮助我们更好地理解的优势和应用。
原创
发布博客 2024.09.29 ·
675 阅读 ·
15 点赞 ·
0 评论 ·
26 收藏

HashMap 完整讲解:从源码到原理

HashMap 是 Java 中非常常用的一种数据结构,它通过**键值对(key-value pairs)
原创
发布博客 2024.09.29 ·
892 阅读 ·
7 点赞 ·
0 评论 ·
17 收藏

Java —— HashMap从数据结构到扩容机制全面解析

知识点解释基本数据结构数组 + 链表结构,当冲突发生时,链表存储多个键值对。树化与退化链表长度超过阈值时会转换为红黑树,提升查询效率,减少时退化为链表。索引计算哈希函数计算键的哈希值,通过索引决定键值对的存储位置。put 与扩容插入时会根据负载因子进行扩容,重新分布现有键值对。并发问题HashMap 在多线程下不安全,需要使用线程安全的 ConcurrentHashMap。key 的设计设计好的键要确保hashCode()和equals()方法,实现均匀分布。代码展示一下:包括put()
原创
发布博客 2024.09.29 ·
882 阅读 ·
20 点赞 ·
0 评论 ·
30 收藏

Java——LinkedList 和 ArrayList的全面对比讲解

你前后都有一个人,想插队的话,你只需要拉住你前面和后面的人,让他们也拉住你。:因为数据是通过链表存储的,要访问某个特定位置的元素,你需要从头(或尾)开始,逐个走过每个节点才能找到目标⚙️。因为你只需要拉住你前面和后面的人,告诉他们换一下顺序,所以插入和删除非常方便,效率高🏆。:由于每个节点除了存储数据外,还要存储指向前后节点的两个指针🧷,所以相比ArrayList,它占用的内存更多📊。:ArrayList就像是一个紧凑的货架,所有商品整齐排列,没有多余的“拉绳子”的动作,所以它更加节省空间💡。
原创
发布博客 2024.09.29 ·
1975 阅读 ·
31 点赞 ·
0 评论 ·
40 收藏

Java的迭代器(Iterator)之Fail-Fast 和 Fail-Safe

在 Java 中,当我们使用迭代器(Iterator)遍历集合时,有两种处理方式:结果:这个代码会抛出 ,因为我们在遍历的时候往集合里添加了元素🍍。结果:这个代码不会抛出异常,程序会继续运行,因为 使用了副本,遍历时不会受到原集合修改的影响。
原创
发布博客 2024.09.29 ·
272 阅读 ·
5 点赞 ·
0 评论 ·
7 收藏

Java之 ArrayList 扩容的通俗解释 ✨(通俗版白话文)

每次你往背包里装满了 10 个水果,再想多放几个时,背包不会直接爆掉💥,它会自动扩展到之前大小的 1.5 倍。比如,装了10个水果后再加水果,背包会扩容到能装下 15 个,然后装满 15 个后,再扩容到能装 22 个🍇🍉。如果你有很多东西一次性需要放进去,比如你有一个装满东西的小箱子📦,你想把这些东西全部转移到背包里,这时背包就会根据小箱子的大小直接扩容到合适的大小,确保你一次就能全部装进去。是一个可以动态增长的数组,就像一个可伸缩的背包🎒,随着你往里面不断加东西,它会自动变大,不用担心背包会装不下。
原创
发布博客 2024.09.29 ·
951 阅读 ·
5 点赞 ·
0 评论 ·
13 收藏

Java 二分查找(通俗解释+emoji小表情版)

想象一下,你在翻一本字典📖,你要查一个单词,但你不需要从第一页一个个翻,你可以直接打开中间看看单词是在哪一半,然后继续对半分。通过这种方式,能够很快找到你要的目标!当我们有一个排序好的数组时,二分查找会通过不断地将查找范围“对半分割”来快速找到目标元素。我们看一下,中间位置的值是否就是我们要找的数字。如果找到了,太棒了!的世界,绝对让你感觉到这就像是在找一颗藏在书里的宝石💎,而且很快就能找到!如果我们找的不是中间的值,那么我们就要缩小范围📐。,首先我们要找到数组的中间位置。在上面的代码中,我们通过。
原创
发布博客 2024.09.29 ·
351 阅读 ·
4 点赞 ·
0 评论 ·
6 收藏

Java 冒泡排序 (Bubble Sort) ✨ 代码版 + Emoji讲解

的基本思想就是让“大泡泡”不断往上浮,直到整个数组像泡泡浴一样排序好!🎉💦。
原创
发布博客 2024.09.29 ·
424 阅读 ·
8 点赞 ·
0 评论 ·
2 收藏

Java 快速排序的实现(通俗解释 + 详细代码)

选择基准值:选一个数字作为基准值,通常选择数组中的某个元素。分拣:把比基准值小的放左边,比基准值大的放右边。递归:对左边和右边的部分继续进行相同的操作。组合结果:最终把排好序的部分拼在一起。
原创
发布博客 2024.09.29 ·
3042 阅读 ·
56 点赞 ·
0 评论 ·
27 收藏

Jvm GC(垃圾回收机制)中的引用计数法

引用计数法是一种简单的垃圾回收算法,通过为每个对象维护一个“引用计数器”来追踪有多少其他对象引用了它。如果一个对象的引用计数为 0(也就是说,没有任何对象在使用它),那它就可以被回收了。🗑️引用计数法是一种简单的垃圾回收算法,它通过追踪对象的引用数量来判断是否可以回收。虽然它能即时回收内存,但循环引用是它的致命弱点,导致某些情况下无法正常释放内存。
原创
发布博客 2024.09.28 ·
757 阅读 ·
13 点赞 ·
0 评论 ·
20 收藏

Jvm 使用JProfiler工具分析OOM原因

是 JVM 在堆内存不足时抛出的错误。通常,当程序创建了过多的对象而 JVM 的堆空间无法满足时,会出现此错误。这类错误可能由于内存泄漏、内存分配不合理或者对象过多造成的内存压力引发。使用JProfiler可以帮助你非常细致地分析的原因,包括查看内存使用情况、捕获堆快照、分析占用大量内存的对象以及找到内存泄漏的根源。通过这些分析,你可以优化代码或调整 JVM 的内存参数来解决问题。💡🔧希望这些步骤能够帮助你在实际项目中排查和解决 OOM 问题!如果你有其他问题,随时继续问我!
原创
发布博客 2024.09.28 ·
831 阅读 ·
21 点赞 ·
0 评论 ·
17 收藏

Jvm 之 新生区、永久区 和 堆内存调优

新生区是 JVM 堆内存的一部分,用于存储短期存活的对象,它包括 Eden 区和 Survivor 区。对象在新生区存活后才会被移到老年代。永久区(Java 8 之前)存储类的元数据,后来被更灵活的元空间替代,避免了内存不足的问题。堆内存调优是为了优化 JVM 的内存使用,避免内存不足和性能下降。通过调整堆大小、新生代大小和监控垃圾回收,可以提升程序性能。
原创
发布博客 2024.09.28 ·
587 阅读 ·
19 点赞 ·
0 评论 ·
5 收藏

Jvm核心:栈、HotSpot 和 堆

栈(Stack):用于管理方法调用和局部变量。每个线程都有自己的栈,栈是后进先出的结构。:最常用的 JVM,它通过热点探测和即时编译(JIT)来优化程序性能,具备强大的垃圾回收机制。堆(Heap):用于存储所有的对象和数组,堆是由垃圾回收器自动管理的,分为新生代和老年代。
原创
发布博客 2024.09.28 ·
527 阅读 ·
24 点赞 ·
0 评论 ·
5 收藏

Jvm之 Native(本地方法) 和 方法区(Method Area)

虽然你主要用自己的工具做饭(Java 代码),但偶尔你需要借助邻居的设备(Native 方法)来搞定一些特定的任务。在 Java 中的意思就是“本地方法”,也就是非 Java 语言写的代码,通常是用 C 或 C++ 等语言编写的。每个类就像是超市里的商品,方法区就负责把这些“商品”(类和它们的信息)整齐地放在货架上,方便 JVM 在需要的时候随时“拿取”。是 JVM 内存结构的一部分,负责存储类的信息。JNI 是 Java 和其他语言之间的桥梁,它允许你在 Java 中调用其他语言编写的代码。
原创
发布博客 2024.09.28 ·
1877 阅读 ·
31 点赞 ·
0 评论 ·
29 收藏

Jvm沙箱安全机制

简单来说,沙箱安全机制是一种限制 Java 程序执行权限的机制,特别是当程序是从不受信任的来源下载时。它通过限制程序的权限,确保它只能执行受限的操作,无法访问关键的系统资源,比如文件系统、网络或其他敏感数据。沙箱安全机制是 Java 的一项重要功能,特别是在处理来自不受信任来源的代码时,它可以防止恶意代码破坏用户的系统。核心组件:沙箱机制主要通过类加载器安全管理器和权限类实现。简单示例:我们通过代码展示了如何使用来阻止对文件系统的访问,这展示了沙箱机制如何保护系统资源。
原创
发布博客 2024.09.28 ·
721 阅读 ·
14 点赞 ·
0 评论 ·
20 收藏

JVM的体系结构、类加载器及双亲委派机制

类加载器:它是 JVM 中的搬运员,负责把类文件(Java 类)加载进来。双亲委派机制:它确保每个类加载器不会直接加载类,而是先让“父母”类加载器尝试加载,避免重复或篡改类。
原创
发布博客 2024.09.28 ·
956 阅读 ·
19 点赞 ·
0 评论 ·
19 收藏
加载更多