![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 66
KeaLoo
一名即将步入职场的Java小菜狗
展开
-
Windows安装多Java版本快速切换
安装多个Java版本,并快速切换Java版本原创 2022-11-03 11:11:21 · 2057 阅读 · 3 评论 -
算法与数据结构核心套路
目录数据结构的存储方式数据结构的存储方式数据结构的底层存储方式只有两种:数组(顺序存储)和链表(链式存储)分析问题用递归思想:自顶向下,从抽象到具体“队列”、“栈”,既可以使用链表实现,也可以使用数组实现。用数组实现,要处理扩容和缩容的问题,用链表实现,没有这个问题,但是需要更多的内存空间存储节点指针。“图”,邻接表就是链表,领接矩阵就是二维数组。用邻接矩阵判断连通性很迅速,并可以进行矩阵运算解决一些问题,但是如果图比较稀疏则很耗费空间。邻接表比较节省空间,但是操作效率比不上邻接矩阵。“哈原创 2021-11-10 23:01:17 · 467 阅读 · 0 评论 -
算法与数据结构基础(Java)
目录栈(Stack)栈的概述栈的常规操作队列(Queue)队列的概述队列的常规操作链表(LinkedList)链表的概述链表的常规操作集合哈希表二叉搜索树红黑树图栈(Stack)栈的概述栈(stack),它是一种受限的线性质,后进先出(LIFO)其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底栈的常规操作方法作用push(e)添加一个新元素到栈顶pop()移除栈顶元素,同时返回被移除的元素peek()返回栈顶元素,原创 2021-10-17 23:18:53 · 210 阅读 · 0 评论 -
领域驱动设计(DDD)
软件架构演进过程现在微服务的拆分十分的困难,其根本原因是不知道业务和微服务的边界如何拆分。领域驱动就是一套方法论,通过领域驱动设计方法论来定义领域模型,从而确定业务边界和应用边界,保证业务模型和代码模型的一致性。领域驱动设计是处理复杂领域的设计思想,把业务复杂性和技术复杂性分离,运用业务概念构建领域模型来控制业务复杂度。领域驱动不是架构,而是一种架构设计的方法论,通过边界划分把复杂的业务简单化,帮我们设计出清晰的领域和应用边界,可以容易的实现架构的演进。领域驱动包括战略设计和战术设计两个部分战原创 2021-09-15 14:53:10 · 562 阅读 · 0 评论 -
布隆过滤器(Bloom Filter)的原理和实现
假设要你写一个网络蜘蛛(web crawler)。由于网络间的链接错综复杂,蜘蛛在网络间爬行很可能会形成“环”。为了避免形成“环”,就需要知道蜘蛛已经访问过那些URL。给一个URL,怎样知道蜘蛛是否已经访问过呢?把这个问题抽象出来,就是说:现在需要一种算法(工具),帮助我们实现一种高效而准确的,元素在集合中的存在性判断。为了解决上面说的这一类问题,人们从简入难,想出了很多办法:将访问过的URL保存到数据库。用HashSet将访问过的URL保存起来。那只需接近O(1)的代价就可以查到一个URL是否被原创 2021-09-11 16:18:20 · 707 阅读 · 0 评论 -
STL容器介绍
STL容器分类:一:序列容器:vector、list、deque、string.二 : 关联容器:set、multiset、map、mulmap、hash_set、hash_map、hash_multiset、hash_multimap三: 其他的杂项:stack、queue、valarray、bitsetSTL各个容器的实现vector内部数据结构:数组。随机访问每个元素,所需要的时间为常量。在末尾增加或删除元素所需时间与元素数目无关,在中间或开头增加或删除元素所需时间随元素数目呈线性转载 2021-09-10 22:19:04 · 427 阅读 · 0 评论 -
常用限流算法及原理
目录为什么限流常用算法计数器算法(固定窗口限流+滑动窗口限流)固定窗口算法滑动窗口限流漏桶算法令牌桶算法限流算法比较为什么限流限流即限制流量,通过流量控制来保证系统接收到的请求量在正常范围内。由于任何系统的吞吐量都有上限,所以必须设置合理的限定值,以避免流量洪峰将整个系统打垮。假如一个系统可以承载的网络带宽是1G,如果流量大于1G就会导致带宽打满,影响整个服务。在现实生活中,限流场景也随处可见:例如银行的叫号系统、餐厅的排队系统,如今的疫情,政府也是全力排除隐患,保证医疗系统健康运行。限流的目的只有原创 2021-09-10 16:23:56 · 873 阅读 · 0 评论 -
负载均衡原理及算法
目录背景概述原理分类按照软硬件分类硬件负载均衡软件负载均衡按照地理结构分类本地负载均衡全局负载均衡按照实现技术DNS负载均衡IP负载均衡链路层负载均衡混合型负载均衡按照OSI层次二层负载均衡(数据链路层)三层负载均衡(网络层)四层负载均衡(传输层)七层负载均衡(应用层)部署方式路由模式桥接模式服务直接返回模式常用算法轮询加权轮询IP哈希比率(Ratio)优先权(Priority)最少连接最快模式(Fastest)观察模式(Observed)预测模式(Predictive)动态性能分配(Dynamic Rat原创 2021-09-09 11:14:24 · 1892 阅读 · 0 评论 -
树的遍历(评测机)
public class Tree { class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left, TreeNode right) { this.val =原创 2021-09-06 16:32:20 · 139 阅读 · 0 评论 -
链表(评测机)
public class LinkedList { class ListNode { int val; ListNode next; ListNode() { } ListNode(int val) { this.val = val; } } public ListNode head; public ListNode tail; publi原创 2021-09-06 16:34:17 · 138 阅读 · 0 评论 -
系统运行缓慢,CPU 100%,以及Full GC次数过多问题的排查思路
目录分析Full GC次数过多CPU过高不定期出现的接口耗时现象某个线程进入WAITING状态死锁小结处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出问题的代码点,进而提供解决该问题的思路。分析对于线上系统突然产生的运行缓慢问题,如果该问题导致线上系统不可用,那么首先需要做的就是,导出jstack和内存信息,然后转载 2021-09-03 15:55:43 · 418 阅读 · 0 评论 -
二分查找法隐藏bug
二分查找法隐藏bug代码演示bug 及解决方案代码演示力扣704. 二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解原创 2021-07-19 12:13:31 · 234 阅读 · 0 评论 -
分布式系统唯一ID生成方案汇总
系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。1. 数据库自增长序列或字段最常见的方式。利用数据库,全数据库唯一。优点:1)简单,代码方便,性能可以接受。2)数字ID天然排序,对分页或者需要排序的结果很有帮助。缺点:1)不同数据库语法和实现不同,数据库迁移的时候或多数据库版本支持的时候需要处理。2)在单个数据库或读写...转载 2021-03-29 20:10:46 · 80 阅读 · 0 评论 -
Java模拟斗地主
案例需求通过程序实现斗地主过程中的洗牌,发牌和看牌思路创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现往牌盒里面装牌洗牌,也就是把牌打散,用Collections的shuffle()方法实现发牌,也就是遍历集合,给三个玩家发牌看牌,也就是三个玩家分别遍历自己的牌代码实现在这里插入代码片...原创 2021-01-24 22:41:32 · 123 阅读 · 0 评论 -
集合的案例-List集合存储学生对象三种方式遍历
案例需求创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合代码实现public class Student { private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return n原创 2021-01-24 15:06:29 · 871 阅读 · 0 评论 -
Java实现学生管理系统
目录效果图案例需求实现步骤效果图案例需求针对目前所学内容,完成一个综合案例:学生管理系统!该系统主要功能如下:添加学生:通过键盘录入学生信息,添加到集合中删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改查看学生:将集合中的学生对象信息进行展示退出系统:结束程序实现步骤定义学生类,包含以下成员变量private String sid // 学生idprivate String name // 学生原创 2021-01-21 17:04:32 · 5226 阅读 · 1 评论