随笔分类 -  Java

java基础技术
摘要:需求背景 XX需求,批量输入域名的时候,需要对域名字符串进行分隔,并去重,同时分隔后统一使用换行符进行保存,便于下一次批量展示 ##输入 www.baidu.com fdas.com google.com www.baidu.com; gool.com ##预期结果 www.baidu.com fd 阅读全文
posted @ 2022-07-01 12:22 心若向阳花自开 阅读(153) 评论(0) 推荐(0)
摘要:#需求背景 在JAVA应用开发过程中,越来越多的项目采用了微服务架构,而采用微服务架构最直接作用是可以实现业务层解耦,有利于研发团队可以从业务层面进行划分,比如某几个人的小团队负责某几个微服务,总之,从业务角度来讲的话,让专业的人做专业的事。而同时由于部署了微服务后,经常需要保证业务的高可用,就有了 阅读全文
posted @ 2022-06-04 13:17 心若向阳花自开 阅读(1459) 评论(1) 推荐(1)
摘要:#引言 在Java中,volatile通过内存屏障的方式禁止指令重排序,保证操作的顺序执行,今天就带大家看一下内部的具体实现 #JVM级别规范 JVM虚拟机规范中:通过不同的内存屏障来保证写或读操作的顺序执行 ##LoadLoad屏障 对于这样的语句Load1; LoadLoad; Load2 它的 阅读全文
posted @ 2021-05-28 23:19 心若向阳花自开 阅读(447) 评论(0) 推荐(0)
摘要:#引言 题目:编写一个算法来判断一个数n是不是快乐数 来源:网友分享的面试算法题 #题目描述 【快乐数定义】 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为1,也可能是 无限循环,但始终变不到1。 如果可以变为1,那么这个数就是快乐数。 如果n是快乐数 阅读全文
posted @ 2021-05-28 20:50 心若向阳花自开 阅读(604) 评论(0) 推荐(0)
摘要:#引言 经典多线程编程面试题 使用两个线程交替输出A1B2C3......Z26 #实现方案1 public static void method2() throws InterruptedException { Object object = new Object(); AtomicInteger 阅读全文
posted @ 2021-05-21 18:19 心若向阳花自开 阅读(422) 评论(0) 推荐(0)
摘要:#引言 LRU是开发过程中设计缓存的常用算法,在此基础上,如何设计一个高效的缓存呢?本文就带大家分析并手撸一个LRUCache。 ##LRU算法 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问 阅读全文
posted @ 2021-05-20 20:25 心若向阳花自开 阅读(277) 评论(0) 推荐(0)
摘要:#引言 原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。通常所说的原子操作包括对非long和double型的primitive进行赋值,以及返回这两者之外的primitive。之所以要把它们排除在外是因 阅读全文
posted @ 2021-05-19 18:31 心若向阳花自开 阅读(289) 评论(0) 推荐(0)
摘要:#引言 ##JVM调优 程序在上线前的测试或运行中有时会出现一些大大小小的JVM问题,比如cpu load过高、请求延迟、tps降低等,甚至出现内存泄漏(每次垃圾收集使用的时间越来越长,垃圾收集频率越来越高,每次垃圾收集清理掉的垃圾数据越来越少)、内存溢出导致系统崩溃,因此需要对JVM进行调优,使得 阅读全文
posted @ 2021-05-18 18:12 心若向阳花自开 阅读(302) 评论(0) 推荐(0)
摘要:#引言 JVM为了更有效率的对堆空间进行垃圾回收,把堆空间进行了分代,分为年轻代、老年代和永久代(在1.8版本以后,永久代已经被彻底移除了,被元空间取而代之)。 当一个对象出生时,会首先选择在eden区为对象分配空间,当eden区被占满分配不下时,会触发一次Minor GC,MinorGC运行时,会 阅读全文
posted @ 2021-05-18 17:18 心若向阳花自开 阅读(569) 评论(0) 推荐(0)
摘要:#引言 最长公共子串 #描述 有两个字符串,通过遍历找出最长的公共连续子串。 #示例 输入两个字符串 abnacty eabtnacm 输出最长公共连续子串 nac #分析 将两个字符串分别以行和列的形式组成一个二维矩阵; 比较二维矩阵中每个点对应的行和列的字符是否相等,相等的话,值设为1,不相等则 阅读全文
posted @ 2021-05-14 21:33 心若向阳花自开 阅读(238) 评论(0) 推荐(1)
摘要:#引言 题目:停在原地的方案数 来源力扣:https://leetcode-cn.com/problems/number-of-ways-to-stay-in-the-same-place-after-some-steps/ #题目描述 有一个长度为 arrLen 的数组,开始有一个指针在索引 0 阅读全文
posted @ 2021-05-14 19:51 心若向阳花自开 阅读(71) 评论(0) 推荐(0)
摘要:#引言 垃圾回收(GC,Garbage Collection) 在笔者上一篇文章中(JVM内存模型),介绍了JVM内存模型以及JVM运行时的数据区,堆是JVM内存区域里面最大的一块区域,用于存放实例数据,因此这一块区域是垃圾回收的重点区域,而堆为了提高垃圾回收效率,又被分为了年轻代和老年代,年轻代又 阅读全文
posted @ 2021-05-13 22:04 心若向阳花自开 阅读(1917) 评论(0) 推荐(0)
摘要:#引言 硬币凑整问题 题目来源:力扣 https://leetcode-cn.com/circle/discuss/vMYOmI/ #题目描述 已知一个无序数组 array,元素均为正整数。给定一个目标值 target,输出数组中是否存在若干元素的组合,相加为目标值。 #测试样例与说明 对于以下无序 阅读全文
posted @ 2021-05-13 17:11 心若向阳花自开 阅读(277) 评论(0) 推荐(1)
摘要:#引言 作家作品打分 题目源自:力扣上的分享 https://leetcode-cn.com/circle/discuss/pUA0mL/ #题目描述 某某作家有n本小说,评委会要对该作家的写作进行打分。需要从中挑选两本小说进行计分,计分规则如下: 每本小说有5个方面的评价指标 两本小说进行合并计分 阅读全文
posted @ 2021-05-13 16:17 心若向阳花自开 阅读(390) 评论(0) 推荐(0)
摘要:#引言 将两个已经排好序的数组进行合并,使得合并后的数组也是有序 示例: int a[] = {1, 3, 5, 11, 20}; int b[] = {1, 2, 3, 4, 7, 8, 11, 25, 30}; 排好序的结果 1 1 2 3 3 4 5 7 8 11 11 20 25 30 #代 阅读全文
posted @ 2021-05-13 14:59 心若向阳花自开 阅读(335) 评论(0) 推荐(0)
摘要:#引言 JVM是运行在操作系统之上,而JVM是要想了解JVM虚拟机运行的内幕,必须要先知道其内存模型 根据JVM规范,JVM内存共分为五块区域 本文围绕这个几个区域,剖析JVM运行时数据区 #JVM运行时数据区 ##1.程序计数器 程序计数器是线程私有的,也就是意味着,每一个线程都有自己的一个独立程 阅读全文
posted @ 2021-05-13 09:39 心若向阳花自开 阅读(2346) 评论(0) 推荐(0)
摘要:#引言 在开发过程中,因为编程经验不足,经常会导致各种各样的溢出,今天本文就举例说明几种常见的溢出 ##堆溢出 堆溢出是最常见的一种溢出。 导致原因:堆中没有足够的空间储存新生成的实例对象 public static void main(String[] args) { List<TestCase> 阅读全文
posted @ 2021-05-12 23:53 心若向阳花自开 阅读(522) 评论(0) 推荐(0)
摘要:#引言 作为Java开发人员,我们每天都会代码中创建对象,但我们通常使用依赖管理系统,比如Spring框架,然后,这里有很多种创建对象的方式,本文就对Java创建对象的几种方式进行总结 #五种创建方式 | 创建方式 | 特点 | | | | | 使用new关键字 | } → 调用了构造函数 | | 阅读全文
posted @ 2021-05-12 22:11 心若向阳花自开 阅读(901) 评论(0) 推荐(0)
摘要:#引言 生产者与消费者模型,是多线程编程中的经典问题。今天本文就来带大家手写一个生产者消费者模式 #1.阻塞队列 public class CustomBlockLinkedList<E> { //内部使用链表实现 private LinkedList<E> linkedList; //队列容量最大 阅读全文
posted @ 2021-05-10 17:34 心若向阳花自开 阅读(155) 评论(0) 推荐(0)
摘要:#引言 Java代码需要被使用,必须要经过类加载器加载到内存中,然后对应的类才能够被创建使用,这文对类加载和对象创建和过程进行分析。 #类加载 Java类通过懒加载的方式,经过了Loading、Linking、Initializing后加载到内存中,才能被进行使用。 ##Loading ###懒加载 阅读全文
posted @ 2021-05-07 21:42 心若向阳花自开 阅读(367) 评论(0) 推荐(1)