自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

去武帝城,战王仙芝

coding on the way

  • 博客(289)
  • 资源 (1)
  • 收藏
  • 关注

原创 关于ACID与CAP理论、BASE理论

CAP理论,我们通常只会在注册中心的偏向中去比较理解它。ACID(atomicity、consistency、isolation、durability、)呢?我们在传统数据库例如mysql、Oracle、SqlServer中才会探讨它。其实CAP理论是针对非关系型数据库性能的一个比较维度:CAP:consistency 强一致性 availability 可用性 partition tolerance分区容错性CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性、可用性、分区容错性...

2021-07-08 08:07:06 336

原创 CompletableFuture的使用

场景就是,异步查询各家商店的书价格,然后返回。第一步:首先定义一个shop类商店。import java.util.Random;import java.util.concurrent.CompletableFuture;import java.util.concurrent.Future;public class Shop { String name; public double getPrice(){ return calcPrice(); //模拟

2021-05-25 11:06:45 163

原创 java的GC垃圾回收算法

关于垃圾回收算法,大家可能平时用到并不多,但是在面试的过程中很多人会问这方面的问题。其实主要也是考察大家对底层的一个了解,不需要很深入,但是希望大家可以大致了解这个过程。常见的垃圾回收算法有CMS G1我们按照回收的机制,那么可以展示成如下3种。补充下:上面的GC roots我们成为 根可达算法,采用GC roots来判断,对象是否还可用,是否需要回收。...

2021-04-12 23:40:42 130

原创 线程池代码分析

分析线程池的源码之前,先要知道线程池的作用,以下这几点引用自《码出高效-Java开发手册》:1、利用线程池管理并复用线程、控制最大并发数等。2、实现任务线程队列缓存策略和拒绝机制。3、实现某些与时间相关的功能,如定时执行、周期执行等。4、隔离线程环境。比如,交易服务和搜索服务在同一台服务器上,分别开启两个线程池,交易线程的资源消耗明显要大;因此,通过配置独立的线程池 ,将较慢的交易服务与搜索服务隔离开,避免各服务线程相互影响。 那么自然我们使用线程池的目的也就很显然了:1、线程.

2021-01-31 22:30:16 193

原创 Java的JVM内存模型全面知识点总结

Java内存 应该是Java面试中问得最多的问题,今天写一篇彻底终结面试。(* ̄︶ ̄)首先先摆上Java内存模型图:JVM内存布局规定了java在运行过程中内存申请、分配、管理的策略1、Heap堆内存区域:heap是0OM故障的主要发源地,存储几乎所有的实例对象,堆由C自动回收.通常其占用的内存也是最大的。通常情况下堆内存的空间既可以固定大小也可以在运行时动态进行调整。常见的调优参数例如:.Xms256M-Xmx256M-X是VM运行参数,ms是memorystart简称,mx...

2021-01-24 15:49:20 204

原创 消息中间件原理介绍

这几年身边的同事,总是专心于消息中间件的研究。也不知道为什么,这个就莫名其妙的火起来了,现实工作中,我想90%的系统是不需要消息中间件的。只有那些信息量巨大的分布式系统,并且对客户体验实时性很高的系统才会用到。废话不多说了,毕竟也是一门技能,简单介绍一下吧。1、首先,我们必须明白什么是消息中间件:消息中间件MOM(Message Oriented Middleware)是在分布式环境中,两个或多个独立运行的系统之间,提供消息通讯作用的中介。2、消息中间件的作用:消息中间件的作用:把各个系

2020-09-06 15:56:24 1157

原创 JAVA语言讲解设计模式---对象适配器(2)

适配器模式

2022-12-04 10:22:20 232 1

原创 算法基础知识---两颗二叉树是否是同一棵树的判断

是否是同样的两颗二叉树的判断实现

2022-06-20 10:56:47 471

原创 使用静态内部类实现懒汉单例模式-java

静态内部类实现懒汉单例模式

2022-06-16 15:25:11 430 2

原创 是否是合法字符串的判断(括号必须成对的邻近方式出现)

算法入门题,栈

2022-06-14 16:38:04 858

原创 java写冒泡排序思路分析与代码实现

冒泡排序的算法实现,重点在于找规律,想清楚

2022-06-09 09:31:38 115

原创 java进行选择排序算法练习

选择排序算法的实现

2022-06-09 08:34:41 120

原创 计算N阶乘的和引发的思考

算法思考

2022-06-08 17:27:11 109

原创 打印出一个整型数字的二进制位

算法题---位运算

2022-06-08 16:24:19 167

原创 mongoDB集成在springboot中的操作

maven项目工程中集成MongoDB很简单,我们直接引入插件包即可。引入之后,配置对应的propertis文件,然后直接适用MongoTemplate注入即可

2022-06-08 16:21:51 129

原创 已经开发接近8年,面试要求我手写一个菱形代码。。。

手写菱形代码的面试

2022-06-08 08:19:52 102

原创 创建线程的第三种方式(获取线程执行的结果)

我的多线程专栏的博客写了常见的创建线程的两种方式,继承Thread类或者实现Runnable接口这里再写一下第三种方式实现Callable接口。这里我们用FutureTask类来承载实现Callable接口的线程类。FutureTask类继承RunnableFuture接口,RunnableFuture又继承Runnable和Future接口。废话不多说,开干。先我们实现自己需要的实现Callable接口的类:import java.util.concurrent.Callable;

2022-05-12 10:02:32 169

原创 MongoDB 常见语法与传统数据库比较

在写语法之前,先插一个话题。我们学习一门技术,肯定是因为它的优点适用于业务场景。MongoDB的语句我们也常称为MQL聚几个例子截图,供大家参考:

2022-04-08 10:37:34 625

原创 Redis 必知必会常见问题

整理这些问题,主要是大家通过这些问题,去思考redis的实现原理与实际生产过程中遇到了问题,该怎么去解决。希望通过这些问题,可以让大家有一些思考,这是本篇文章的主题。1、说一下你的项目中使用redis的场景?我相信在大多数公司,大家用redis就是做一个缓存查询,并没有什么特别的点。但是呢,面试建议大家多说点。①讲一下Redis的5中数据类型,String list set zset hash 这里顺道提一下你们用的redis的实际数据是什么,我相信大多数都是string... 做个查询缓存②..

2022-04-07 15:16:08 301

原创 入门算法题002

/** * 题目:给你一个正整数n,假设有两个质数加起来等于n,问一共有多少组这样的质数? * 思路: * 1、我们得要先有一个函数去判断是否是质数 * 2、循环拆解为两个数,暴力拆解 */试下10-15分钟内做出来。public class Leecode002 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out..

2022-03-09 10:10:11 215

原创 入门级算法题001

题目:/** * 1.题意大概描述:输入一个整数,输出整数的位数,倒序输出它的每一位数字(数字 * 之间空格分开)和倒序的连续数值,而且题目限定了输入的整数不超过五位数。 * 题目所给例子: * 输入:-12345 * 输出:-5 4 3 2 1 */花了3分钟,我写了一个。public class Leecode001 { public static void main(String[] args) { Scanner sc = new Scanner

2022-03-09 08:37:04 147

原创 Mysql 中sql语句的执行流程

mysql 中想要弄清楚一条语句的执行过程,首先需要弄清楚mysql 的执行过程。我这里简单总结绘图,如下:

2022-03-01 12:04:02 426

原创 zookeeper的应用场景

zookeeper现在很多公司都在使用。这里简单总结了下其使用的场景

2022-03-01 11:58:05 1535

原创 高并发系统设计的思维角度

简单整理了下,可以从下面几个方面进行设计。欢迎留言补充:

2022-03-01 08:52:06 97

原创 Mycat中间件初入讲解

如果大家在平时的公司项目开发过程中,用的是mysql,当到了一定的数据量之后。会考虑对mysql进行分库分表的操作。那么在这个过程中会用到一款工具 mycat首先第一问:什么是mycat?我这里找了一段觉得比较完整的截图,如下。这里补充一句,虽然mycat支持多种数据库,但实际工作中我们还是在mysql数据库场景下用得最多。第二问:使用mycat的整体思想架构。第三问:实际怎么上手?这里举一个例子,linux服务器上的步骤。另外备注下,现在mycat网上最新已经到了2.0版本,推

2022-02-27 09:32:22 617

原创 Java字节码层面读程序

准备工具:IntelliJ开发工具+Jclass Lib插件,插件直接在setting选项中,搜索安装即可,见下图:然后这个工具的好处在于,可以跳转到Oracle的官网,去查看具体的JVM指令的说面文档。我这里写了两个简单的程序(箭头上的指令含义,见最下面的截图),并且分析如下:局部变量表的具体信息如下图:具体的指令,点击后可以跳转,我这里截图几个,分享下。根据这些指令,才有了上面简单程序,执行流程的解释介绍。...

2022-01-03 11:22:19 7533

原创 java设计模式实战-(反射+策略模式)

学完23种设计模式,相信很多同学都疑问,除了单例模式、工厂模式其他模式还有运用的场景吗?现在这里就举一个例子。首先策略模式需要先有了解,我们常用策略模式解决实际开发中的if else特别多的场景。但是在实际的开发中,真正单独只用策略模式的场景还是很少的。我们需要利用Spring的注入功能,实现根据不同的入参,跳转到不同的实现类中,以此来减少if else的使用。举个场景:假如我们做物流系统,需要根据前段传过来的渠道参数,来定制化不同的规则校验逻辑。这里我们距离alibaba渠道和wechat渠道

2021-12-25 14:07:08 1238

原创 Java8-Optional类

JAVA8 optianal类的使用

2021-12-19 11:37:12 340

原创 Mysql8-新特性-公用表表达式

mysql8引入了公用表表达式什么是公用表表达式?答:公用表表达式是一个命名的临时结果集。它存在于单个查询语句中,主要作用就是可以代替子查询,并且可以被后面的查询多次引用。普通公用表表达式的语法结构:WITHCTE名称 AS (子查询)SELECT|DELETE|UPDATE 语句;普通公用表表达式类似于子查询,不过,跟子查询不同的是,它可以被多次引用,而且可以被其他的普通公用表表达式所引用。假设我们有一个商品信息表(demo.goodsmaster),它保存的是商品信息,还

2021-12-11 11:04:30 724

原创 java8 常见的函数式接口对比

java8 引入了函数式接口,其中用最多的当属Consumer、Predicate、Function这三类,这里写个例子展示没有缩写时和缩写时的差异。废话不多说,直接上代码:public class FunctionExpress { public static void main(String[] args) { ArrayList<String> strings = new ArrayList<>(); Collections.

2021-12-07 08:38:30 115

原创 Java8 双冒号-构造方法引用

前两篇文章已经介绍了两种方法引用。这里再增加一个构造方法引用。1、准备一个可用的类public class Book { private String name; public Book(String name) { this.name = name; } public Book() { } public String getName() { return name; } public void

2021-12-04 17:55:03 321

原创 Java8 双冒号-对象方法引用

双冒号的使用,之前写了一篇静态方法引用。今天这里再写一篇双冒号之对象方法的引用。废话不多说,直接上代码,一切说明都在代码中:准备步骤:1、准备一个类,功能是是返回a-b之间的随机数public class RandomNum { //返回a到b之间的随机数 public int nextIntAtoB(int a,int b){ Random random = new Random(); return random.nextInt(b-a+1

2021-12-04 10:52:02 689

原创 Java8 stream流map方法使用

直接上代码,顺便演示了从匿名内部类→lamdba表达式:/** * stream流的map方法的作用 * 将当前流中的元素从一种类型转换为另一种类型存储到新流中 * map 方法中隐含的函数式接口是 Funtion接口 */public class LamdbaExpress03 { public static void main(String[] args) { ArrayList<String> strings = new ArrayList<&

2021-12-02 19:24:03 4019

原创 Java8 静态方法引用-双冒号::

java8 中静态方法的双冒号引用示例。首先我们创建一个函数式接口@FunctionalInterfacepublic interface ArrayInterface { public abstract int maxValue(int[] arr);}其次,静态方法一般都是工具类中用,我们写一个获取数组最大值的方法。/** * 工具类中定义静态方法 */public class ArrayUtils { //定义一个方法返回数组的最大值 publi

2021-11-24 21:15:31 495

原创 Java8 串行流和并行流效率对比

哈哈,废话不多说,上菜:/** * 串行流: 所有的数据操作都在一个线程中 通过stream()方法获得的都是串行流 * 并行流: 将数据分成多块,并在不同的线程分别处理每一块的数据,通过 parallelStream()实现 * * 列子:用串行流计算0-2000000的和,用并行流计算0-200000的和 * */public class LamdbaExpress01 { public static void main(String[] args) { t

2021-11-22 20:15:37 488

原创 Java8 stream流的收集

java8 引入流进行处理之后,我们常需要对流进行搜集。那么流的搜集主要有如下两种方式:1、将流收集到集合中2、将流收集到数组中具体的例子见如下代码:public class LambdaExpress { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); Collections.addAll(list,

2021-11-22 19:50:32 509

原创 Java8 Lamdba表达式缩写介绍

上一篇我写了一个Lamdba表达式的经典例子,但是实际工作中,很多人喜欢写各种缩写,导致有的伙伴看不懂。这篇主要写下,Lamdba表达式的缩写:首先我们常见的Lamdba表达式的结构如下:( 参数列表 ) -> { 方法体 }那么可以省略的场景总结如下:①参数列表有且只有一个参数,则可以省略小括号②参数列表的数据类型可以省略,随时都可以省略③当方法体有且只有一条语句的时候,可以省略大括号,如果省略了大括号,则return语句后分号也需要省略。下面针对上面的三个场景给一个例子

2021-11-21 15:05:07 243

原创 Java8 Lamdba表达式经典例子

Lamdba表达式经典例子

2021-11-20 22:47:58 340

原创 Mysql数据库的索引使用-系列10

首先介绍下索引:MySQL 中的索引,相当于图书馆的检索目录,它是帮助 MySQL 系统快速检索数据的一种存储结构。我们可以在索引中按照查询条件,检索索引字段的值,然后快速定位数据记录的位置,这样就不需要遍历整个数据表了。而且,数据表中的字段越多,表中数据记录越多,速度提升越是明显。索引的分类:1、单字段索引你可以通过 CREATE 语句直接给已经存在的表创建索引;可以在创建表的同时创建索引;可以通过修改表来创建索引。CREATE INDEX 索引名 ON TABLE 表名

2021-11-20 08:56:46 767

原创 Mysql数据库常用的数学计算函数、字符串处理函数、条件判断函数-系列09

mysql常用的 数值处理函数 有以下几种:分别是取整函数 ROUND()、CEIL()、FLOOR(),绝对值函数 ABS() 和求余函数 MOD()。向上取整 CEIL(X) 和 CEILING(X):返回大于等于 X 的最小 INT 型整数。向下取整 FLOOR(X):返回小于等于 X 的最大 INT 型整数。舍入函数 ROUND(X,D):X 表示要处理的数,D 表示保留的小数位数,处理的方式是四舍五入。ROUND(X) 表示保留 0 位小数。ABS(X)表示获取 X 的绝对值;

2021-11-20 08:04:25 707

Echarts-Demo-master (2).zip

Echarts-Demo-master (2).zip

2023-12-25

MySQL性能优化.xmind

mysql性能优化的总结,从各个方面对sql的优化进行了总结,感觉是很好的性能优化的摘要总结,所以上传共享出来,绝对的硬货。绿色版,解压直接用,方便程序猿

2020-03-28

空空如也

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

TA关注的人

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