自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(136)
  • 资源 (2)
  • 收藏
  • 关注

原创 优秀资源汇总

https://javadoop.com/每篇博客质量都非常高,包含了各类源码分析文章,推荐!

2021-01-13 11:24:50 134

原创 基础排序算法总结

冒泡排序AC选择排序AC插入排序AC归并排序AC快速排序AC堆排序AC希尔排序(略)冒泡排序ACpackage basicSort;//nowcoder passpublic class BubbleSort { public int[] bubbleSort(int[] a, int n) { for (int i = 0; i < n - 1; i++) {//要进行n-1次 boolean finish =

2022-04-15 10:49:13 477

原创 动态规划总结

最长递增子序列AC最长公共子序列AC最长公共子串AC最小编辑代价AC最长公共子序列和最长公共子串的区别1.递推公式求解dp子序列:s1[i-1]==s2[j-1]dp[i][j]=dp[i-1][j-1]+1s1[i-1]!=s2[j-1]dp[i][j]=max(dp[i-1][j],dp[i][j-1])子串:s1[i-1]==s2[j-1]dp[i][j]=dp[i-1][j-1]+1s1[i-1]!=s2[j-1]dp[i][j]=0...

2022-04-15 10:40:42 619

原创 链表算法总结

从尾到头打印链表AC链表的倒数第K个节点AC反转链表AC合并递增链表AC复杂链表复制AC链表的第一个公共节点AC二叉搜索树转为双向链表AC判断链表是否有环AC链表的入环节点AC1.从尾到头打印链表AC《剑指offer》题目4package linkedlist;import java.util.ArrayList;/** * 题目描述: * 输入一个链表,从尾到头打印链表每个节点的值。 * 思路: * 联想到二叉树的递归遍历(先序,中序,后序), * 很明显的思路是想到

2022-04-15 10:22:55 300

原创 二分查找总结

public class BinarySearch { public int binarySearch(int[] arr, int key) { if (arr == null) { return -1; } int low = 0; int high = arr.length - 1; while (low<= high) { int mid = (low + high) / 2; if (arr[mid] == key) { re.

2022-04-15 10:13:58 266

原创 二叉树算法总结

二叉树的递归遍历(先序,中序,后序)AC二叉树的非递归遍历(先序,中序,后序)AC二叉树的层次遍历AC二叉树的之字形遍历AC二叉树的先序遍历、中序遍历重建二叉树AC二叉树中和为某一值的路径(路径问题)AC求二叉树的深度AC求二叉树的镜像AC求二叉树的最低公共祖先AC判断二叉树是否为二叉树的子结构AC判断二叉树是否为平衡二叉树AC判断二叉树是否为对称二叉树AC序列化二叉树AC二叉搜索树转为双向链表AC二叉搜索树的第k个节点AC判断是否为二叉搜索树的后序遍历序列AC二叉树的递归遍

2022-04-15 09:20:07 734

原创 【牛客BAT算法】9.动态规划

什么是动态规划方法?1.其本质是利用申请的空间来记录每一个暴力搜索的计算结果,下次要用结果的时候直接使用,而不再进行重复的递归过程2.动态规划规定每一种递归状态的计算顺序,依次进行计算动态规划方法的关键点:1.最优化原理,也就是最优子结构性质。指的是一个最优化策略具有这样的性质,不论过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。简单说就是一个最优化策略的子策略总是最优的,如果一个问题满足最优化原理,就称其具有最优子结构性质。2.无后效性。指的

2022-04-15 09:10:10 284

原创 《图解密码技术》总结

1.密码学家的工具箱对称加密、非对称加密、单向散列函数、消息认证码、数字签名、伪随机数生成器2.对称加密对称加密:加密和解密使用相同的密钥要解决的问题:机密性常见算法:DES、3DES、AES存在的问题:密钥配送问题关于分组密码:DES和AES都属于分组密码分组密码:只能加密固定长度的明文,加密任意长度的明文时,需要进行迭代分组密码模式:ECB、CBC、CFB、OFB、CTR3.非对称加密/公钥加密非对称加密:用公钥加密,用私钥解密(PS:

2021-12-17 18:17:38 642

原创 PKI学习整理

0.PKI理论基础网络通讯安全威胁密码技术 密码技术 图示 解决问题 对称加密(举例:AES) 保证了传输信息的机密性 存在问题: 需要事先将密钥进行共享,密钥的配送问题 非对称加密(举例:RSA) 解决了传输信息的机密性 与对称加密相比:效率较低

2021-12-17 16:49:29 1674

原创 Redis数据持久化

redis的数据持久化就是为了保障数据安全性问题。将内存数据存储到磁盘当中,即持久化问题。Redis提供了两种方式去保障数据的持久化问题。RDB:内存快照内存快照:就是指内存中数据在某一时刻的状态记录。RDB是Redis中默认的持久化方案。RDB持久化会将内存中的数据写入到磁盘中,在指定的目录下生产一个dump.rdb文件。Redis重启时会加载dump.rdb文件恢复数据。Redis中提供了两个命令生成RDB文件。分别save和bgsave.save:在主进程中执行,会导致阻塞bgs

2021-12-06 10:48:36 74

原创 IDE dart提示不管用问题(黄色小灯泡)

编写 Flutter Dart 代码,当我们点击某一个控件,前面就会出现一个黄色的小灯泡,点一下小灯泡就会出现一个下拉菜单,有一些快捷方式。但是前几天,这个功能莫名其妙消失了... 经过一番折腾还是解决了...File -> Settings -> Editor -> Intensions 找到 Dart 在如下出画勾勾... Over...

2021-08-16 13:20:51 265

原创 MacOS下DB Browser for SQLite如何打开模拟器中sqflite创建的db?

DB Browser for SQLite如何打开模拟器中sqflite创建的db?碰到的问题:在MacOS中,用户的资源库文件夹(/Users/username/Library)默认被系统隐藏了,从 Finder 窗口中不能直接打开。而模拟器中使用sqflite创建的数据库路径如下,正好在/Users/username/Library目录下。带来的问题是:点击DB Browser for SQLite“打开数据库”后,是通过Finder找到数据库文件打开,由于/Users/user

2021-06-17 18:55:55 830

原创 flutter image_picker报错:PlatformException(multiple_request, Cancelled by a second request, null, null

参考资料:https://github.com/flutter/flutter/issues/82602解决方法:image_picker: ^0.8.0+3改为image_picker: 0.7.4

2021-06-13 09:59:17 2076 2

原创 flutter doctor警告: ! CocoaPods 1.8.4 out of date (1.10.0 is recommended).

问题解决过程1.根据网上搜到的解决方案,执行sudo gem install cocoapods不管用2.使用brew安装cocoapods,最终安装成功。

2021-04-19 15:35:36 2402

原创 Mac每次都要执行source ~/.bash_profile 后,配置的环境变量才生效

问题: 自己在 ~/.bash_profile 中配置环境变量, 可是每次重启终端后配置的不生效.需要重新执行 : $source ~/.bash_profile后,才会生效。 原因: 自己是在bash中配置的环境变量,而当前系统是使用的是shell 查看当前使用的shell: 终端输入:echo $SHELL 输出是/bin/zsh,说明使用的是zsh 解决办法: 在.zshrc文件加中添加source ~/.bash_profile,方法如下 进入主目录 ..

2021-04-16 18:39:25 134

原创 JVM笔记

视频教程https://www.bilibili.com/video/BV1PJ411n7xZ(尚硅谷JVM全套教程)教程对应笔记JVM_01 简介JVM_02 类加载子系统JVM_03 运行时数据区1- [程序计数器+虚拟机栈+本地方法栈]JVM_04 本地方法接口JVM_05 运行时数据区2-堆JVM_06 运行时数据区3-方法区JVM_07 运行时数据区4-对象的实例化内存布局与访问定位+直接内存JVM_08 执行引擎(Execution Engine)JVM_09 字符串常量池Stri.

2021-04-14 16:59:13 360

原创 springboot开发web项目工具集

《springboot学习》一、springboot入门二、springboot的日志配置(有个疑问,怎么配置同步日志和异步日志?)7.配置日志的存储路径、设置日志的格式logging.path=logging.file=logging.pattern.console=logging.pattern.file=三、springboot中使用lombok在springboot中使用lombok1.安装lombok插件,引入lombok依赖2.核心注解@Data:可为实体类生成g.

2021-03-25 12:49:38 138

原创 Java中的原子操作类

目录综述1.原子更新基本类型类2.原子更新数组3.原子更新引用4.原子更新字段类综述JDK从1.5开始提供了java.util.concurrent.atomic包。通过包中的原子操作类能够线程安全地更新一个变量。包含4种类型的原子更新方式:基本类型、数组、引用、对象中字段更新。atomic包中的原子操作类基本上内部都是使用Unsafe类实现的,原子更新的实质其实就是获取内存偏移地址,对地址中的变量进行更新。1.原子更新基本类型类atomic包内包..

2021-03-22 15:28:41 94

原创 Java中的Unsafe类

目录1.Unsafe类介绍1.1实例化私有类1.2CAS操作,通过内存偏移地址修改变量值1.3直接内存访问2.Unsafe类源码分析2.1Class相关2.2Object相关2.3数组相关2.4并发相关2.4.1CAS相关2.4.2线程调度相关2.4.3volatile相关读写2.4.4内存屏障相关2.5直接内存访问(非堆内存)2.6系统相关3.参考资料1.Unsafe类介绍Unsafe类是在sun.misc包下,不属于Java标准。.

2021-03-22 15:26:25 93

原创 百度开源分布式id生成器uid-generator源码剖析

目录百度uid-generator源码snowflake算法源码实现分析DefaultUidGeneratorCachedUidGenerator基本实现原理源码剖析百度uid-generator源码https://github.com/baidu/uid-generatorsnowflake算法uid-generator是基于Twitter开源的snowflake算法实现的。snowflake将long的64位分为了3部分,时间戳、工作机器id和序列号.

2021-03-22 15:16:51 676

原创 【分布式id生成】关于分布式id生成器生成单调递增id的思考

目录如何保证获取到的id单调递增?方案评估评估详情性能情况1:当获取id的请求路由到Master情况2:当获取id的请求路由到非Master总结扩展性可用性Master切换如何处理Master切换时的id分发问题,保证在Master切换时的可用性?附录微信序列号生成器如何实现唯一、递增的如何保证获取到的id单调递增?约束条件:1)集群中一台机器为Master,仅Master提供id生成服务2)当获取id的请求路由到Master机器时,直接返

2021-03-22 15:10:31 316 1

原创 《深入理解JVM》第13章 线程安全与锁优化

目录第13章 线程安全与锁优化13.2 线程安全13.2.1 Java语言中的线程安全13.2.2 线程安全的实现方法13.3 锁优化第13章 线程安全与锁优化13.2 线程安全什么是线程安全?当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的。线程安全的代码必须具备一个特征:代码本身封装了所有必要的正确性保障手段.

2021-03-22 15:02:36 86

原创 《深入理解JVM》第12章 Java内存模型与线程

目录第12章 Java内存模型与线程12.3 Java内存模型主内存和工作内存主内存和工作内存之间的交互协议1)对于volatile型变量的特殊规则2)对于long和double型变量的特殊规则原子性、可见性、有序性先行发生原则(happens-before)12.4 Java与线程12.4.1 线程的实现12.4.2Java线程的实现12.4.2Java线程调度12.4.3 Java线程状态转换第12章 Java内存模型与线程12.3 Java内

2021-03-22 15:00:57 94

原创 JDK命令行工具

目录1.JDK的命令行工具1.1 常用工具1.2 jps:虚拟机进程状况工具1.3 jstat:虚拟机统计信息监控工具1.4 jinfo:java配置信息查看工具1.5 jmap:Java内存映射工具1.6 jhat:虚拟机堆快照分析工具1.7 jstack:Java堆栈跟踪工具1.JDK的命令行工具1.1 常用工具 名称 作用 jps JVM Process Status Tool,显示系统中

2021-03-22 14:59:26 361

原创 深入理解JVM 垃圾收集器(下)G1收集器

1.回顾CMS1.1堆内存结构新生代分为Eden区和两个survivor区。老年代是一块连续区域。只有FullGC时才可能发生内存整理。1.2新生代GC新生代淡绿色,老年代蓝色。系统运行一段时间后CMS堆内存可能如下图所示,对象分散在老年代各处。新生代存活对象从Eden区和survivor区复制到另一个空闲的survivor区。任何minorGC年龄达到阈值的老对象被升级至老年代。youngGC(minorGC)后,Eden区和一个survivor区...

2021-03-22 14:57:49 178

原创 深入理解JVM 垃圾收集器(上)

目录HotSpot虚拟机中的垃圾收集器GC评价标准GC调优响应时间吞吐量1.新生代收集器Serial收集器ParNew收集器Parallel Scavenge收集器2.老年代收集器Serial Old收集器Parallel Old收集器CMS收集器(Concurrent Mark Sweep)HotSpot虚拟机中的垃圾收集器7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用。GC实现目标: 准确、高效、低停顿.

2021-03-22 14:55:46 63

原创 Mac忘记MySQL root密码解决方法(亲测有效)

重置MySQL root密码重置MySQL root用户的密码:1)新建一个文本文件sql.txt,写入修改用户密码的SQL语句。MySQL 5.7.6及更高版本写这句:ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';MySQL 5.7.5及更早版本写这句:SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');2)停掉mysql服务cd /.

2021-03-22 14:45:56 596

原创 Spring AOP面向切面编程

目录1.AOP概览2.Spring AOP的使用举例PointCut切入点Advice通知3.Spring AOP的实现原理3.1运行时织入3.1.1代理模式3.1.2 JDK动态代理3.1.3 cglib动态代理3.1.4 Spring如何创建代理bean4.Spring AOP的实现原理4.1 链式调用4.1.1 职责链模式4.1.2 Spring内部实现5. ProxyFactory实现AOP1.AOP概览AOP(Aspect Ori

2021-03-21 23:06:08 88

原创 《从Paxos到zookeeper》第6章 Zookeeper的典型应用场景(下)

目录6.2 Zookeeper在大型分布式系统中的应用6.2.1 HadoopYARN介绍如何解决ResourceManager单点问题,实现高可用?6.2.3 Kafka术语介绍问题Kafka与ZookeeperBroker注册管理Topic注册管理生产者负载均衡消费者负载均衡6.3 Zookeeper在阿里巴巴的实践与应用6.3.2 案例二 RPC服务框架:Dubbo服务提供者服务消费者监控中心6.3.3 案例三 基于MySQL B

2021-03-21 23:02:19 211 1

原创 《从Paxos到zookeeper》第6章Zookeeper的典型应用(上)

6.0 ZooKeeper 系统模型1)数据模型和unix系统类似的树状结构。每一个数据节点成为ZNode,可以向节点中写入数据、也可以在节点下创建子节点2)节点类型 持久节点(PERSISTENT):客户端与zookeeper断开连接后,该节点依旧存在 持久顺序节点(PERSISTENT_SEQUENTIAL):客户端与zookeeper断开连接后,该节点依旧存在,zookeeper给该节点名称进行顺序编号 临时节点(EPHEMERAL):客户端与zookeepe.

2021-03-21 23:00:11 64

原创 《从Paxos到Zookeeper》第3章 Paxos的工程实践

目录Chubby设计目标chubby系统结构1)chubby一致性选举Master处理客户端请求服务端架构2)Chubby文件系统3)Chubby Master与客户端如何交互Chubby中的事件通知机制Chubby中的缓存会话和keepalive会话超时Chubby Master故障恢复参考资料ChubbyGoogle Chubby是一个分布式锁服务,GFS和Big Table等大型系统都使用它来解决分布式协作、元数据存储和Master选

2021-03-21 22:58:48 98 1

原创 《从Paxos到Zookeeper》第1章 分布式架构

目录前言:分布式一致性问题的提出1.1 从集中式到分布式1.2 从ACID到CAP/BASEACID原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)分布式事务CAP理论BASE理论前言:分布式一致性问题的提出在系统架构中,采用多副本1)增加可用性,避免单点2)通过负载均衡技术,提供性能引入了一个重要问题:数据的复制问题客户端C1将系统中的值K由V1更新成V2,客户端C2无

2021-03-21 22:56:35 85

原创 理解Raft协议

目录1.Paxos算法存在的问题2.Raft算法2.1 复制状态机2.2. Raft算法2.2.1 安全性问题2.2.2 Leader选举2.2.3日志复制参考资料1.Paxos算法存在的问题Paxos算法是莱斯利·兰伯特(英语:Leslie Lamport,LaTeX中的「La」)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。 难以理解 “The dirty little secret of the NSDI community is

2021-03-21 22:54:29 110

原创 slf4j日志框架绑定机制

目录一、环境搭建二、slf4j绑定log4j流程一、环境搭建我们以log4j为例,探寻slf4j与log4j的绑定过程。1.Java类public class Slf4jBind { public static void main(String[] args) { Logger LOGGER = LoggerFactory.getLogger(Slf4jBind.class); LOGGER.info("slf4j hello world")

2021-03-21 22:46:45 235

原创 详解Log4j2中的RollingFileAppender

目录一、什么是RollingFile二、TriggeringPolicySizeBasedTriggeringPolicyTimeBasedTriggeringPolicyCompositeTriggeringPolicy三、DefaultRolloverStrategy四、DeleteAction五、程序测试demo六、参考资料一、什么是RollingFileRollingFileAppender是Log4j2中的一种能够实现日志文件滚动更新(rollover)

2021-03-21 22:43:28 9372

原创 Log4j2中的同步日志与异步日志

目录1.背景2.Log4j2中的同步日志3.Log4j2中的异步日志3.1 AsyncAppender3.2 AsyncLoggerDisruptor简介AsyncLogger4.总结1.背景Log4j 2中记录日志的方式有同步日志和异步日志两种方式,其中异步日志又可分为使用AsyncAppender和使用AsyncLogger两种方式。2.Log4j2中的同步日志所谓同步日志,即当输出日志时,必须等待日志输出语句执行完毕后,才能执行后面的业务逻辑语句。下

2021-03-21 22:35:53 1293

原创 JVM反调调用优化,导致发生大量异常时log4j2线程阻塞

目录背景大量线程block原因关于JVM对反射调用的优化如何关闭JVM对反射调用的优化?参考资料背景在使用log4j2打日志时,当发生大量异常时,造成大量线程block问题的问题。一个关于log4j2的高并发问题:https://blog.fliaping.com/a-high-concurrency-problem-of-log4j2/大量线程block原因发生异常,打印异常栈时,会调用org.apache.logging.log4j.core.impl.Th.

2021-03-21 22:33:08 284

转载 Javassist 使用指南(一)

=======================本文转载自简书,感谢原作者!。原链接如下:https://www.jianshu.com/p/43424242846b=======================1. 读写字节码我们知道 Java 字节码以二进制的形式存储在 class 文件中,每一个 class 文件包含一个 Java 类或接口。Javaassist 就是一个用来处理 Java 字节码的类库。在 Javassist 中,类Javaassit.CtClass表示 c..

2021-03-10 17:10:32 516 1

原创 Log4j2报错ERROR StatusLogger Unrecognized format specifier

目录问题解决方法原因分析问题使用maven-shade-plugin或者maven-assembly-plugin插件把项目打成一个可执行JAR包时,如果你引入了log4j2会出现如下问题ERROR StatusLogger Unrecognized format specifier [d]ERROR StatusLogger Unrecognized conversion specifier [d] starting at position 16 in conversion p

2021-03-10 17:09:04 4217 4

原创 log4j2配置按照日志级别将日志输出到不同的文件

目录背景log4j2.xml配置文件注意点参考资料背景在项目中,可能会产生非常多的日志记录,为了方便日志分析,可以将日志按级别输出到指定文件。log4j2.xml配置文件<!--将info级别的日志单独输出到info.log中--> <RollingFile name="INFO-LOG" fileName="info.log"> <Filters> <.

2021-03-10 17:06:58 1561

校园BBS管理系统(面向对象的分析与设计)

校园bbs管理系统的分析与设计 主要包含了以下内容 1.系统简要需求分析 2.校园BBS论坛管理系统的需求分析 3.系统的UML基本模型 包含了系统用例图,时序图,活动图,协作图 4.系统中的类 包含了系统中应有的类,及类之间的关系 ------------------------------------------------------ 校园BBS论坛管理系统 1.系统简要需求分析: 该系统的使用人员主要包括收学生、教师、网站管理员。功能主要包括会员注册,登陆,管理,文章发布,查询,浏览。帖子的回复,帖子的管理,论坛分类管理,帖子分类管理等。 2.校园BBS论坛管理系统的需求分析 “校园BBS论坛管理系统”的功能需求主要包含以下几个方面:   游客对帖子的查询、浏览   会员对帖子的查询、浏览、发表、回复   版主对帖子的查询、浏览、发表、回复,以及对所在模块的帖子的管理   管理员对用户的管理,含增、删、改、查,及对会员权限的管理   管理员对所有模块的帖子的管理,含浏览、删除、发表、回复、将帖子置顶和设为精华帖   管理员对论坛分类的管理,含增、删、改、查论坛分类 管理员对帖子分类的管理,含增、删、改、查帖子分类 可以分为一下几个模块: 会员基本操作模块 会员管理模块 论坛分类管理模块 帖子分类管理模块 帖子管理模块 ………………

2013-06-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除