- 博客(57)
- 收藏
- 关注
原创 简历项目总结
文章目录1.电商平台1.电商平台1.项目中遇到的问题以及解决方法秒杀场景:秒杀开始,大量用户点击秒杀按钮,产生大量并发请求查询库存查询有库存-库存扣减-系统生成实际订单-后续处理(订单支付、物流等)查不到库存,继续查询简单来说,主要分为三步:库存查验、库存扣减和订单处理。其中最大的并发压力在库存查验。库存查验与库存扣减在redis中处理(本机QPS17万)额外的开销。redis中保存了库存量,而库存量的最新值在mysql维护,所以mysql更新后,还需要和redis同步,这个过程
2021-09-06 17:07:39 743
原创 手撕代码总结
@[TOC]链表环** * 关于链表环的两个结论: * 1.设置快慢指针,假如有环,他们最后一定相遇。(快指针一次两步,慢指针一次一步) * 2.两个指针分别从链表头和相遇点继续出发,每次走一步,最后一定相遇在环入口。 */public class EntryNodeOfLoop { public ListNode entryNodeOfLoop(ListNode pNode) { ListNode low = pNode; ListNode fast =
2021-08-31 14:25:04 924
原创 acwing学习记录
整数二分 //区间被划分为[l,mid] [mid+1,r]使用 public int bSearch1(int[] nums, int l, int r) { while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid;//check()判断mid是否满足 else l = mid + 1; }
2021-08-15 09:37:10 200
原创 拓扑排序记录
假设现有 0,1,2,3 四个文件,0号文件依赖1号文件,1号文件依赖2号文件,3号文件依赖1号文件,则源文件的编译顺序为 2,1,0,3 或 2,1,3,0。现给出文件依赖关系,如 1,2,-1,1,表示0号文件依赖1号文件,1号文件依赖2号文件,2号文件没有依赖,3号文件依赖1号文件。请补充完整程序,返回正确的编译顺序。拓扑排序视频详解、public String compileSeq(String input) { //依赖关系 String[] split = input.
2021-06-17 10:53:55 145
原创 二叉树相关
翻转二叉树public TreeNode Mirror(TreeNode pRoot) { // write code here if (pRoot == null) return pRoot; TreeNode temp = pRoot.left; pRoot.left = pRoot.right; pRoot.right = temp; Mirror(pRoot.left);
2021-05-25 15:30:44 116
原创 Git学习记录
增加/删除文件# 添加指定文件到暂存区$ git add [file1] [file2] ... # 添加指定目录到暂存区,包括子目录$ git add [dir]# 删除工作区文件,并且将这次删除放入暂存区$ git rm [file1] [file2] ...代码提交# 提交暂存区到仓库区$ git commit -m [message] # 提交暂存区的指定文件到仓库区$ git commit [file1] [file2] ... -m [message] # .
2021-04-17 10:18:55 128
翻译 JVM相关
1.类加载器的种类2.双亲委派模型3.垃圾回收4.什么是垃圾可达性分析算法从GC Roots作为根对象开始,根据引用关系向下搜索,搜索走过的路程成为”引用链“,如果某个对象到GC Roots没有任何引用链相连,则这个对象是不可能再被使用(垃圾)可作为GC Roots的对象在虚拟机栈引用的对象,比如局部变量,临时变量等方法区中的静态属性引用对象方法区中常量引用对象所有被同步锁Synchronized持有的对象5.内存溢出OOM当java虚拟机的堆内存不够,其原因可能有
2021-04-09 09:54:13 147
原创 JavaEE-Spring相关
1.spring是什么spring是轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(面向切面编程)为内核提供了展现层SpringMVC和持久层Spring JDBC以及业务层事务管理等众多的企业级应用技术,逐渐成为使用最多的java ee企业应用开源框架2.spring的优势方便解耦,简化开发通过 Spring 提供的 IoC 容器,可以将对象间的依赖关系交由 Spring 进行控制,避免硬编码所造成的过度程序耦合AOP编程的支持通过 Sprin
2021-04-02 20:41:33 118
原创 设计模式总结
1.设计模式的原则:单一职责原则:一个类只做它该做的事情开闭原则:软件实体应当对扩展开放,对修改关闭依赖倒转原则:面向接口编程里氏替换原则:任何时候都可以用子类型替换掉父类型接口隔离原则:接口要小而专,绝不能大而全合成聚合复用原则:优先使用聚合或合成关系复用代码迪米特法则:一个对象应当对其他对象有尽可能少的了解(低耦合)2.常用的设计模式工厂模式单例模式代理模式...
2021-04-02 20:24:07 112
原创 最短路解法
模型构建目标:求出某一点到达任意一点的最短距离用city[i][j]表示从i到j的距离,把自己到自己设为0,把自己到不了的点设置为一个非常大的数,注意题目要求两个点之间的路是单向还是双向的 public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int[][] city=new int[n][n];
2021-04-01 16:00:10 138
原创 JUC编程
1.实现线程的方式ThreadRunnableCallable效率较高2.线程的六个状态NEWRUNNABLEBLOCKEDWATTING无限期等待TIMED_WATTING超时等待,当时间到了,会释放锁TERMINATED3.wait&&sleep来自不同的类,wait来自object,sleep来自threadwait会释放锁,sleep不会释放wait必须在同步代码块中使用,sleep可以在任何地方使用wait不需要捕获异
2021-03-22 20:07:00 181 1
原创 贪心算法
跳跃问题每个位置i能到达的最远位置为nums[i]+i.我们依次算出能到达的最远距离即可判断 public boolean canJump(int[] nums) { int maxLen=0; int len=nums.length; for(int i=0;i<len;i++){ //i<=maxLen,说明可以到达该位置 if(i<=maxLen){
2021-03-13 17:56:58 63
原创 回溯算法集合
回溯算法1.回溯算法与DFS的区别DFS是朝某一个方向搜索,而回溯算法建立在DFS之上,在回溯中,达到结束条件后,恢复状态,回复上一层,再次搜索。因此回溯和DFS的区别在于有无状态重置(恢复状态)2.使用回溯算法的时机一般遇到子集、排列组合、搜索类问题时需要用到题目:①子集给你一个整数数组 nums ,数组中的元素互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集 public List<List<Integer&
2021-03-10 19:29:30 651
原创 code总结
1.求二叉树的深度public int TreeDepth(TreeNode node){ if(node==null) return 0; if(node.left==null&&node.right==null) return 1; return 1+Math.max(TreeDepth(node.left),TreeDepth(node.right)); }采用递归的
2021-02-25 20:30:47 407
原创 动态规划记录
1.最大子序和题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。思路:dp[n]表示class Solution { public int maxSubArray(int[] nums) { if(nums.length==1) return nums[0]; int[] dp=new int[nums.length]; dp[0]=nums[0];
2021-02-22 22:55:06 199
原创 剑指offer记录
1.整数转为二进制数String s = Integer.toBinaryString(i);此方法可以将一个int类型整数转为二进制数并用String类型输出,其中正数用原码形式,负数用补码
2021-02-01 15:31:37 279 1
原创 知识点总结
1. instanceof()instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例2.InputStream&OutputStream一般用(System.in)创建InputStream对象,表示从标准输入中获取数据,用**(System.ou**t)创建OutputStream对象,表示输出到标准输出设备中。标准输出指输出到屏幕上,即System.out.println()3.子类方法同步如果父类中的某个方法使用了 synchron
2021-01-23 16:42:19 2860
原创 MySQL高级
1.explain性能分析用法:Explain+SQL语句***①idid形同,执行顺序由上至下id不同,id值越大优先级越高,越先被执行有相同也有不同id如果相同可以认为是一组,从上往下顺序执行,在所有组中,id越大优先级越高。重点:id号每个号码,表示一趟独立的查询,一个SQL的查询趟数越少越好***②select_typeselect_type代表查询的类型,主要是用于区别普通查询、联合查询、子查询等复杂查询。select_type含义si
2021-01-17 14:48:30 277
原创 谷粒教育
1.包的扫描当该模块需要的配置类在同一个包下时启动类不需要添加扫描,不在同一个包下时需要添加扫描注解:@ComponentScan@MapperScan用来扫描同一个包下的mapper@Configuration@MapperScan("com.atguigu.eduservice.mapper")public class EduConfig { /** * 逻辑删除插件 * @return */ @Bean public ISqlInjec
2021-01-11 15:31:15 173
原创 DAO-Service-Controller
DAOpackage com.changgou.goods.dao;import com.changgou.goods.pojo.Brand;import org.apache.ibatis.annotations.Select;import tk.mybatis.mapper.common.Mapper;import java.util.List;public interface BrandMapper extends Mapper<Brand> { @Select(
2021-01-03 22:00:33 127
原创 排序算法
public class BubbleSort { public static int[] bubbleSort(int[] array){ int len=array.length; if(len==0||array==null) return null; int temp; for(int i=0;i<len-1;i++){ for(int j=0;j<len-i-1;j+
2020-12-27 17:29:12 72
原创 畅购商城
1.@SpringBootApplication @EnableEurekaClient/@EnableEurekaServer @MapperScan(basePackages = "com.changgou.user.dao") 启动类常用的三个注解2.FastDFS体系结构: .FastDFS是一个开源的轻量级[分布式文件系统],它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等, 解决了大容量存储和负载均衡的问题 .Fast...
2020-12-20 20:55:35 253
原创 sql语句
~创建数据库create database 数据库名称;~创建数据库,判断不存在,再创建create database if not exists 数据库名称;~删除数据库drop database 数据库名称;drop database if exists 数据库名称;~删除表drop table 表名;drop table if exists 表名 ;~使用数据库use 数据库名称;~创建表create table 表名(列名1 数据类型1,列名2
2020-12-20 20:54:30 159 2
原创 redis
1.Redis性能指标:.Redis介绍:.性能极高,能到 100000 次/s 读写速度.丰富的数据类型,String、List、Hash、Set、Sorted Set(有序集合).原子性:Redis 的所有操作都是原子性的.缺点:.数据库容量受到物理内存的限制,不能用作海量数据的高性能读写.适合的场景主要局限在较小数据量的高性能操作和运算上.TPS(吞吐量)系统在单位时间内处理请求的数量.RT(响应时间)系统对请求作出响应的时间。在讨论一个系统的响应时间时,一般指系统所有功能的平均
2020-12-17 10:36:38 179
原创 基于微服务的分布式事务解决方案
1.Seata介绍Seata 是阿里巴巴和蚂蚁金服共同开发的开源项目,用于解决分布式事务问题。有两个设计初衷:对业务无侵入:即减少技术架构上的微服务化所带来的分布式事务问题对业务的侵入高性能:减少分布式事务解决方案所带来的性能消耗这里采用seata中的AT分布式事务解决方案。AT模式主要关注多 DB 访问的数据一致性,当然也包括多服务下的多 DB 数据访问一致性问题2.AT2.1.AT模式的三个组件:Transaction Coordinator (TC): 事务协调器,维护全局
2020-12-16 19:48:33 183 1
原创 SpringMVC搭建流程
项目结构如图所示1.创建工程,引入依赖包2.web.xml<!--配置前段控制器,--> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--dispatcherSe
2020-12-16 14:37:03 185
原创 JavaSE
1.finally代码块一定会执行么?否。·主程序在进入try代码块前结束运行·当一个线程在执行try语句时被打断或者被终止,例如出现System.init(0);2.mysql中查找表机构用那个关键词·DESC3.如何强制垃圾回收期立即回收一个对象·java中无法强制垃圾回收器立即执行·System.gc()方法:告诉垃圾收集器开始回收,但jvm不保证立刻执行动作,并且有可能会被拒绝4.java线程:wait()与sleep()的区别·sleep属于Thread类,wait属于Ob
2020-12-06 19:40:20 1371
原创 MyBatis&MySQL
1.MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写2.SQL分类: .DDL(Data Definition Language)数据定义语言 .用来定义数据库对象:数据库、表、列。关键字:create,drop,alter .DML(Data Manipulation Language)数据操作语言 .用来对数据库中表的数据进行增删改。关键字:insert, delete, update .DQL(Data Query Langu...
2020-12-06 19:38:37 1963
原创 SecureCRT无法连接虚拟机Centos
一、虚拟机主机互ping1.虚拟机ping主机没有ping通,可参考此微博https://blog.csdn.net/shang_0122/article/details/1038522132.主机ping虚拟机如果没有ping通解决办法如下:首先查看虚拟机网络编辑器对于VMWare而言,NAT模式对应的虚拟网络是VMnet8,因此就要启用VMnet8虚拟网络,修改NAT模式后发现子网IP和引入.vmx文件的IP不一致。3.修改虚拟机ip地址[root@loc.
2020-10-20 09:52:21 491
原创 Redis分布式缓存
1.Redis读写分离1.1Redis性能TPS(吞吐量)系统在单位时间内处理请求的数量RT(响应时间)系统对请求作出响应的时间。在讨论一个系统的响应时间时,一般指系统所有功能的平均时间或者所有功能的最大响应时间QPS(每秒查询率)每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,即最大吞吐量1.2Redis读写分离本机redis性能测试QPS为17万,而一些大型项目需要千万级别的QPS,这时需要采用读写分离突破性能瓶颈。通过运行新的服务器(从服
2020-10-13 20:42:33 299
原创 linux命令
查看redis运行状态[root@pinyoyougou-docker bin]# ps -ef | grep redis启动redis[root@pinyoyougou-docker bin]# ./redis-server redis.conf
2020-10-12 14:39:49 110
原创 十次方项目总结-5消息通知改进
1.RabbitMQ什么是MQMQ全称为Message Queue,即消息队列。“消息队列”是在消息的传输过程中保存消息的容器。它是典型的:生产者、消费者模型。生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,这样就实现了生产者和消费者的解耦。RabbitMQ介绍1 每个消息都有一个称为路由键(routing key)的属性 (相当于前面介绍的地址)2 交换机根据 [路由表] 和 [消息的 路由..
2020-10-10 15:20:21 183
原创 十次方项目总结-4消息通知系统
1.消息通知与即时通讯的区别 消息通知 即时通讯 通知内容 以文字超链接为主 包括文字图片视频等 核心需求 要求高送达率,不要求延迟 要求连接稳定可靠 交互方式 要求送达,不要求回复 任何消息均可回复 2.完成基本的CRUD功能其他功能不再赘述,重点关注分页查询功能的实现。首先配置分页拦截器MybatisPlusConfig//创建分页拦截器@Configurationpublic class MybatisPl.
2020-10-10 10:47:22 238
原创 十次方项目总结3-即时通讯
1.短连接和长连接1.1短连接客户端和服务器每进行一次通讯,就进行一次连接,通讯结束即中断连接1.2长连接是指建立连接后可以多次连续发送数据,直到双方连接断开1.3短连接和长连接的适用场景短连接:并发量大,数据交互不频繁长连接:数据交互频繁,点对对通讯2.WebSocket协议定义:WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。在WebSocket中服务器和客户端只需要进行一次握手,即可创建永久性的连接,并进行双向数据
2020-10-09 21:35:41 165
原创 十次方项目总结-2-MongoDB
1.MongoDB介绍MongoDB是一个基于分布式文件存储的数据库,属于非关系型数据库(NoSQL),基于c++编写。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储非常复杂的数据。它的特点是高性能,易部署,易使用,适合存入数据量大、写入操作频繁、数据价值不高的数据。1.1MongoDB体系结构MongoDB的体系结构是一种逻辑结构,主要由:文档(document),集合(collextion),数据库(database)三部分组成。1.文档(document)相当
2020-10-09 21:12:36 160
原创 十次方项目总结-1
1.项目设计1.1开发模式十次方项目采用前后端分离的模式1.2技术选型后端:springcloud+springboot+mybatis plus+mysql前端:vue+nodejs + NUXT + elementUI本次项目开发注重于后端1.3技术架构采用前后端分离的技术架构1.4微服务模块划分微服务模块 tensquare_common 公共模块 tensquare_article 文章微服务 ...
2020-10-09 19:39:59 722 2
原创 org.springframework:spring-cloud-starter-netflix-eureka-client:unknown 的解决办法
今天统一添加依赖时,报错如下:Cannot resolve org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:unknown这是没有添加版本号所致,springcloud其他依赖都有默认号版本维护,但eureka和feign并没有,需要自己手动添加版本号: <dependency> <groupId>org.springframework.c
2020-09-30 16:39:16 2956 1
原创 IntelliJ Idea解决Could not autowire. No beans of ‘xxxx‘ type found的错误提示
错误如下这是idea自身的问题,降低Autowired的检测级别即可,如下图所示:
2020-09-24 15:41:06 87
原创 通过aliyun下载Maven依赖的方法
在maven安装目录apache-maven-3.5.2\conf\settings.xml中找到<mirrors>添加如下: <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <m
2020-09-24 10:14:27 527 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人