随笔分类 -  Java

Java方面知识的积累总结
摘要:在Java中,HashMap的设计使其底层采用了数组+链表/红黑树的形式来存储元素。其中,数组的长度(即table长度)为什么要设置为2的n次方(2^n),有几个关键原因: 散列分布均匀性:2^n的数组长度有助于散列函数更均匀地分布键值对。当使用高质量的散列函数时,这种长度可以减少冲突的概率,从而提 阅读全文
posted @ 2024-04-04 01:23 月落随山隐 阅读(158) 评论(0) 推荐(0) 编辑
摘要:概念 面向对象的三大特征为封装、继承、多态。其中多态指的是为不同数据类型的实体提供统一的接口,或使用一个单一的符号来表示多个不同的类型。一直都知道有这个概念,但是不清楚其背后的原理,明哥我当然要看看。 class Circle extends Graphics {} class Rectangle 阅读全文
posted @ 2023-11-19 21:23 月落随山隐 阅读(4) 评论(0) 推荐(0) 编辑
摘要:背景 在Java岗位的面试中经常遇到JVM调优的考题,作为技术爱好者,常考肯定是要学的嘛。 什么时候应该进行JVM调优 大多数的Java应用不需要GC调优。 大部分需要GC调优的,不是GC配置参数的问题,而是代码的问题。 在实际使用中,通过分析GC情况优化代码比优化GC参数更普遍。 GC调优是最后的 阅读全文
posted @ 2023-11-15 23:42 月落随山隐 阅读(4) 评论(0) 推荐(0) 编辑
摘要:基于hash值的K-V结构数据容器。 重要计算方法 计算key的hash值 (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16) 利用hash计算tab中的位置 p = tab[i = (n - 1) & hash] 数据结构 初始化后HashT 阅读全文
posted @ 2023-03-14 18:45 月落随山隐 阅读(17) 评论(0) 推荐(0) 编辑
摘要:线程池的目的是通过对线程的管理,让多线程程序中的多线程便捷开发、高效运行。 线程池的存在的意义 让线程变得可重用,减小线程创建和销毁带来的消耗。 线程池中保留的可用线程,无需创建过程即可立即执行,提高响应速度。 方便线程并发数的管控,避免创建过多的线程,从而导致占用过多资源。 提供定时、定期以及可控 阅读全文
posted @ 2023-03-13 21:53 月落随山隐 阅读(17) 评论(0) 推荐(0) 编辑
摘要:Java中线程的状态 New:新创建对象,还没执行start()方法 RUNNABLE:就绪态和运行状态。 BLOCKED:表示线程等到获取锁时候的状态。 WAITING:处于这种状态的线程不会被分配CPU执行时间,它们要等待被显式地唤醒。 TIMED_WAITED:与TIMED_WAITED不同的 阅读全文
posted @ 2023-03-12 18:17 月落随山隐 阅读(35) 评论(0) 推荐(0) 编辑
摘要:摘要 经常看到各种轻GC、重GC叫法混乱,未免在学习JVM的过程中造成阻碍,这边引用《深入理解Java虚拟机》中对GC的定义。 正文 在《深入理解Java虚拟机》中对这些GC的名称进行了明确的定义。 部分收集(Partial GC):不是完整收集整个Java堆的垃圾收集,其中分为:新生代收集和老年代 阅读全文
posted @ 2022-03-08 00:58 月落随山隐 阅读(661) 评论(0) 推荐(0) 编辑
摘要:股票买卖问题是动态规划的经典问题,为此我对该题型进行分析。 121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获 阅读全文
posted @ 2021-09-30 23:08 月落随山隐 阅读(212) 评论(0) 推荐(0) 编辑
摘要:version jdk1.7 阅读全文
posted @ 2021-09-03 15:47 月落随山隐 阅读(43) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示