摘要: 操作系统 不是很难哦,好吧其实很难,结合Linux 学习。 学校的课程 ,大家听听就好,那一本书,是真的不够,也不好用,多找找资料,多看几遍。 一、硬件结构 复习,兄弟们看看就好。 历史是怎么发展 最开始是图灵机,大概长这个样子。 很原始的 0 1 操作,接下来看看 冯诺依曼模型 今天的电脑基本上还 阅读全文
posted @ 2021-09-13 22:48 Ricardo_ML 阅读(909) 评论(0) 推荐(3) 编辑
摘要: 回溯 回溯法解决的问题 回溯法,一般可以解决如下几种问题: 组合问题:N个数里面按一定规则找出k个数的集合 切割问题:一个字符串按一定规则有几种切割方式 子集问题:一个N个数的集合里有多少符合条件的子集 排列问题:N个数按一定规则全排列,有几种排列方式 棋盘问题:N皇后,解数独等等 另外,什么是排列 阅读全文
posted @ 2021-09-11 16:13 Ricardo_ML 阅读(214) 评论(0) 推荐(1) 编辑
摘要: 各种树的数据结构 详情请见:https://www.cnblogs.com/zwtblog/p/15056076.html#%E6%A0%91 递归 确定下来递归算法的三个要素。每次写递归,都按照这三要素来写,可以保证大家写出正确的递归算法! 确定递归函数的参数和返回值: 确定哪些参数是递归的过程中 阅读全文
posted @ 2021-09-11 14:03 Ricardo_ML 阅读(78) 评论(0) 推荐(1) 编辑
摘要: 用栈实现队列 class MyQueue { Stack<Integer> stack1; Stack<Integer> stack2; /** Initialize your data structure here. */ public MyQueue() { stack1 = new Stack 阅读全文
posted @ 2021-09-11 11:13 Ricardo_ML 阅读(51) 评论(0) 推荐(1) 编辑
摘要: 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = 阅读全文
posted @ 2021-09-11 09:54 Ricardo_ML 阅读(35) 评论(0) 推荐(1) 编辑
摘要: 反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1: 输入:["h", 阅读全文
posted @ 2021-09-11 09:42 Ricardo_ML 阅读(42) 评论(0) 推荐(1) 编辑
摘要: 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 说明: 你可以假设字符 阅读全文
posted @ 2021-09-10 22:40 Ricardo_ML 阅读(58) 评论(0) 推荐(1) 编辑
摘要: 移除链表元素 这里以链表 1 4 2 4 来举例,移除元素4。 移除头结点和移除其他节点的操作是不一样的,因为链表的其他节点都是通过前一个节点来移除当前节点, 而头结点没有前一个节点。 所以头结点如何移除呢,其实只要将头结点向后移动一位就可以,这样就从链表中移除了一个头结点。 也有另外的一种逻辑:可 阅读全文
posted @ 2021-09-10 21:32 Ricardo_ML 阅读(120) 评论(0) 推荐(1) 编辑
摘要: Gitee项目地址:https://gitee.com/zc10010/java_interview_guide/tree/master/%E7%9F%A5%E8%AF%86%E7%82%B9%E8%AF%9D%E6%9C%AF 项目叫话术,但是我觉得作为知识点学习是挺不错的。 里面的内容就是概括一 阅读全文
posted @ 2021-09-09 22:30 Ricardo_ML 阅读(129) 评论(0) 推荐(1) 编辑
摘要: 第一个道理其实是悖论, 就是无论我告诉你什么道理, 当你的心智没有达到这个境界时或经历过一些事情的时候,你是不会理解这个道理的。 或者你以为你知道这个道理,其实你不知道。 第二个很重要的道理是, 除了自身的病患或亲友离去的痛苦是真实的,其他的痛苦都是你自己的价值观带给你的。 第三个道理是与第二个有关 阅读全文
posted @ 2021-09-09 21:46 Ricardo_ML 阅读(76) 评论(0) 推荐(1) 编辑
摘要: 21 | 为什么我只改一行的语句,锁这么多? 加锁规则里面:包含了两个“原则”、两个“优化”和一个“bug”。 原则 1:加锁的基本单位是 next-key lock。希望你还记得,next-key lock 是前开后闭区 间。 原则 2:查找过程中访问到的对象才会加锁。 优化 1:索引上的等值查询 阅读全文
posted @ 2021-09-09 10:19 Ricardo_ML 阅读(72) 评论(0) 推荐(1) 编辑
摘要: 笔记做的不好,因为还是又不少地方没有能够理解。见谅,后面理解了在更新………… 16 | “order by”是怎么工作的? 场景: CREATE TABLE `t` ( `id` int(11) NOT NULL, `city` int(11) NOT NULL, `name` varchar(16 阅读全文
posted @ 2021-09-08 12:20 Ricardo_ML 阅读(46) 评论(0) 推荐(1) 编辑
摘要: 11 | 怎么给字符串字段加索引? 维护一个支持邮箱登录的系统,用户表是这么定义的: mysql> create table SUser( ID bigint unsigned primary key, email varchar(64), ... )engine=innodb; 登录操作,有类似这 阅读全文
posted @ 2021-09-07 20:55 Ricardo_ML 阅读(98) 评论(0) 推荐(1) 编辑
摘要: 导论 Java 中的并发锁大致分为隐式锁和显式锁两种。 隐式锁就是我们最常使用的 synchronized 关键字,显式锁主要包含两个接口:Lock 和 ReadWriteLock,主要实现类分别为 ReentrantLock 和 ReentrantReadWriteLock, 这两个类都是基于 A 阅读全文
posted @ 2021-09-07 14:31 Ricardo_ML 阅读(372) 评论(0) 推荐(1) 编辑
摘要: 过期时间TTL 过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取; 过了之后消息将自动被删除。 RabbitMQ可以对消息和队列设置TTL。目前有两种方法可以设置。 第一种方法是通过队列属性设置,队列中所有消息都有相同的过期时间。 第二种方法是对消息进行单独设置,每条消 阅读全文
posted @ 2021-09-05 18:57 Ricardo_ML 阅读(464) 评论(5) 推荐(1) 编辑
摘要: 什么是中间件 一个企业可能同时运行着多个不同的业务系统, 这些系统可能基于不同的操作系统、不同的数据库、异构的网络环境。 现在的问题是,如何把这些信息系统结合成一个有机地协同工作的整体,真正实现企业跨平台、分布式应用。 中间件便是解决之道,它用自己的复杂换取了企业应用的简单。 中间件(Middlew 阅读全文
posted @ 2021-09-04 17:45 Ricardo_ML 阅读(395) 评论(0) 推荐(1) 编辑
摘要: 项目地址:https://gitee.com/zwtgit/bbs 博客地址:https://www.cnblogs.com/zwtblog/p/15217214.html 效果图 数据库 CREATE DATABASE /*!32312 IF NOT EXISTS*/`zwtBBS` /*!401 阅读全文
posted @ 2021-09-02 08:58 Ricardo_ML 阅读(155) 评论(1) 推荐(2) 编辑
摘要: 爬取数据:(获取请求返回的页面信息,筛选出我们想要的数据就可以了!) 项目地址:https://gitee.com/zwtgit/java-reptile 导入依赖,写一个工具类 <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup< 阅读全文
posted @ 2021-09-01 23:05 Ricardo_ML 阅读(149) 评论(1) 推荐(2) 编辑
摘要: 了解设计模式 设计模式 是前辈们对代码开发经验的总结,是解决特定问题的一系列套路,他不是语法规定, 而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。 1995年,GoF合作出版了《设计模式:可复用面向对象软件的基础》一书,共收录了23种设计模式,从此树立了软件设计模式领域 阅读全文
posted @ 2021-09-01 22:59 Ricardo_ML 阅读(221) 评论(3) 推荐(2) 编辑
摘要: 阅读全文
posted @ 2021-09-01 12:55 Ricardo_ML 阅读(52) 评论(0) 推荐(2) 编辑
摘要: 分布式理论 什么是分布式系统? 在《分布式系统原理与范型》一书中有如下定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”; 分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。 分布式系统的出现是为了用廉价的、普通的机器完成单个计算 阅读全文
posted @ 2021-08-31 23:22 Ricardo_ML 阅读(54) 评论(1) 推荐(2) 编辑
摘要: 简介 项目地址:https://gitee.com/zwtgit/rich-text-editor 思考:我们平时在博客园,或者CSDN等平台进行写作的时候,他们的编辑器是怎么实现的? 市面上有许多非常成熟的富文本编辑器,比如: Editor.md——功能非常丰富的编辑器,左端编辑,右端预览,非常方 阅读全文
posted @ 2021-08-31 18:18 Ricardo_ML 阅读(269) 评论(1) 推荐(2) 编辑
摘要: 背景 在我们的工作中,常常会用到异步处理任务,比如我们在网站上发送邮件, 后台会去发送邮件,此时前台会造成响应不动,直到邮件发送完毕,响应才会成功, 所以我们一般会采用多线程的方式去处理这些任务。 还有一些定时任务,比如需要在每天凌晨的时候,分析一次前一天的日志信息。 项目地址:https://gi 阅读全文
posted @ 2021-08-31 11:22 Ricardo_ML 阅读(79) 评论(1) 推荐(2) 编辑
摘要: Swagger简介 前后端分离 前端 → 前端控制层、视图层 后端 → 后端控制层、服务层、数据访问层 前后端通过API进行交互 前后端相对独立且松耦合 产生的问题 前后端集成,前端或者后端无法做到“及时协商,尽早解决”,最终导致问题集中爆发 解决方案 首先定义schema [ 计划的提纲 ],并实 阅读全文
posted @ 2021-08-30 22:17 Ricardo_ML 阅读(62) 评论(0) 推荐(2) 编辑
摘要: 优化案例 Service S 优化 现在看一下执行jstat -gcutil的结果 S0 S1 E O P YGC YGCT FGC FGCT GCT 12.16 0.00 5.18 63.78 20.32 54 2.047 5 6.946 8.993 左边的Perm区的值对于最初的GC优化并不重要 阅读全文
posted @ 2021-08-30 16:26 Ricardo_ML 阅读(115) 评论(0) 推荐(2) 编辑
摘要: 案例 本文介绍了一次生产环境的JVM GC相关参数的调优过程,通过参数的调整避免了GC卡顿对JAVA服务成功率的影响。 背景以及遇到的问题 我们的 Java HTTP 服务属于OLTP类型,对成功率和响应时间的要求比较高, 在生产环境中出现偶现的成功率突然下降然后又自动恢复的情况,如图所示: JVM 阅读全文
posted @ 2021-08-30 16:16 Ricardo_ML 阅读(118) 评论(0) 推荐(2) 编辑
摘要: 《深入理解 JAVA 虚拟机》非常好,写下关于 JVM 的博客! 关于JVM的超全图解可以看这儿: Java类的加载机制 什么是类的加载 类的加载指的是将 类的 .class 文件 中的二进制数据读入到内存中, 将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用 阅读全文
posted @ 2021-08-30 12:24 Ricardo_ML 阅读(118) 评论(1) 推荐(2) 编辑
摘要: Sun JDK监控和故障处理命令有jps jstat jmap jhat jstack jinfo下面做一一介绍 jps JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程。 命令格式 jps [options] [hostid] option参数 -l : 阅读全文
posted @ 2021-08-30 11:13 Ricardo_ML 阅读(124) 评论(0) 推荐(2) 编辑
摘要: 数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 有关数组其他的性质欢迎访问:https://www.cnblogs.com/zwtblog/p/15056076.html#%E7%BA%BF%E6%80%A7%E8%A1%A8%E7%9A%84%E9%A1%BA%E5%BA%8F%E 阅读全文
posted @ 2021-08-30 08:33 Ricardo_ML 阅读(45) 评论(0) 推荐(2) 编辑
摘要: 背景 下单后,这里就会创建一个订单,这里的订单涉及到几个状态,订单创建,订单支付,订单服务中,完成, 订单完成。 用户在平台下单,首先当然需要填写一些信息,然后点击提交表单,提交后,就会跳转到一个支付页面,同时在支付页面也会有一个支付截止时间, 在这个截止时间内完成支付,订单状态就会进入到订单支付的 阅读全文
posted @ 2021-08-29 15:55 Ricardo_ML 阅读(112) 评论(0) 推荐(2) 编辑
摘要: 不过随着业务的扩展,你就会发现jdbc建立一个连接居然要几百毫秒,而执行一个普通的SQL仅仅需要几毫秒。 这么重量级的资源建立了就释放了不合适,得找个容器存起来,谁要就来取,不用了就还给容器,毕竟容器里的借取比建立一个连接要快的多。 这样的容器叫做数据连接池。 小日子继续过,业务也越做越大,慢慢地你 阅读全文
posted @ 2021-08-29 15:46 Ricardo_ML 阅读(658) 评论(0) 推荐(5) 编辑
摘要: 项目 地址:https://gitee.com/zwtgit/my-blog 由Docker + SpringBoot2.0 + Mybatis + thymeleaf 等技术实现, 功能齐全、部署简单及完善的代码。 启动成功之后访问: http://localhost:8080 访问首页 http 阅读全文
posted @ 2021-08-29 14:29 Ricardo_ML 阅读(66) 评论(0) 推荐(2) 编辑
摘要: 笔试格式练习 网址:https://ac.nowcoder.com/acm/contest/5657#question A+B(1) 输入描述: 输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组。 输出描述: 输出a+b的结果 输入 1 5 10 20 输出 6 30 阅读全文
posted @ 2021-08-26 17:07 Ricardo_ML 阅读(90) 评论(0) 推荐(1) 编辑
摘要: CI/CD-企业级DevOps 什么是DevOps? DevOps是一种思想或方法论,它涵盖开发、测试、运维的整个过程! DevOps强调软件开发人员与软件测试、软件运维、质量保障(QA) 部门之间有效的沟通与协作。 强调通过自动化的方法管理软件变更,软件集成。 使软件从构建到测试、发布更加快捷、可 阅读全文
posted @ 2021-08-26 10:09 Ricardo_ML 阅读(125) 评论(0) 推荐(2) 编辑
摘要: 郭德纲 千古以来,要饭的都没有要早饭的。他要能早起,他就不至于要饭。 生活就像宋祖德的嘴,你永远都不知道下一个倒霉的会是谁。 我挺厌恶那种就是不明白任何情况就劝你一定要大度的人,就这种人你要离他远点,因为雷劈他的时候会连累到你。 哗,扎你一刀,你这血还没擦干净了。 他在那:“这都不叫事,要勇敢起来。 阅读全文
posted @ 2021-08-26 09:47 Ricardo_ML 阅读(61) 评论(1) 推荐(2) 编辑
摘要: 分析完毕了源码以及自动装配的过程,可以尝试自定义一个启动器来玩玩! 自动装配的过程 SpringBoot-静态资源加载-源码 SpringBoot-Web-初见 说明 启动器模块是一个 空 jar 文件,仅提供辅助性依赖管理,这些依赖可能用于自动装配或者其他类库; 命名归约: 官方命名: 前缀:sp 阅读全文
posted @ 2021-08-25 21:48 Ricardo_ML 阅读(67) 评论(0) 推荐(2) 编辑
摘要: 一些小问题 Redis一共有几种数据类型?(注意是数据类型不是数据结构) 一共是八种,String、Hash、Set、List、Zset、Hyperloglog、Geo、Streams。 为什么要把数据放在内存中? 内存的速度更快,10W QPS 减少计算的时间,减轻数据库压力 如果是用内存的数据结 阅读全文
posted @ 2021-08-25 17:48 Ricardo_ML 阅读(328) 评论(0) 推荐(3) 编辑
摘要: 介绍几种常见的分布式锁写法 多线程中为了防止多个线程同时执行同一段代码,我们可以用 synchronized 关键字或 JUC 里面的 ReentrantLock 类来控制, 但是目前几乎任何一个系统都是部署多台机器的,单机部署的应用很少,synchronized 和 ReentrantLock 发 阅读全文
posted @ 2021-08-25 16:58 Ricardo_ML 阅读(752) 评论(6) 推荐(3) 编辑
摘要: 推荐 算法可视化的网站 GitHub中有好指导 想进大厂的朋友,建议刷够250-300题。 建议中等难度的占比不低于80%,简单的不超过10%。 另外选题类型尽量全面一些,需要适当了解一线大厂不同岗位的算法面试题覆面差异。 最主要的是 “一定要坚持” 刷题网址 LeetCode-all 企业题库 方 阅读全文
posted @ 2021-08-25 10:38 Ricardo_ML 阅读(92) 评论(0) 推荐(1) 编辑
摘要: 简介 在 Web 开发中,安全一直是非常重要的一个方面。 安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。 市面上存在比较有名的:Shiro,Spring Security ! 首先我们看下它的官网介绍:Spring Security官网地址 Spring Security is 阅读全文
posted @ 2021-08-24 16:57 Ricardo_ML 阅读(85) 评论(0) 推荐(2) 编辑