- 博客(50)
- 收藏
- 关注
原创 Kafka学习笔记
Kafka学习笔记Apache Kafka是一个分布式消息发布订阅系统。它最初由LinkedIn公司基于独特的设计实现为一个分布式的提交日志系统( a distributed commit log),之后成为Apache项目的一部分。Kafka系统快速、可扩展并且可持久化。它的分区特性,可复制和可容错都是其不错的特性介绍Kafka前,先来回顾一下消息中间件(MQ)的知识~~1.消息中间件介绍消息中间件相比大家应该不陌生,一般我们也习惯称之为MQ。它其实没有很高大上,也是一个基于语言开发出的系统
2022-04-24 23:29:38 1578
原创 项目里的UT越来越慢,怎么办?
项目里的UT越来越慢,怎么办?JUnit是一个Java语言的单元测试框架。它由KentBeck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。它已经发展有20余年历史了现在我们的项目在Jenkins流水线上每次部署时,随着code越来越多,UnitTest这部分Stage也每次都跑得最慢,怎么可以加快速度呢?可以试着从code层面
2022-04-16 20:40:31 1224
原创 微服务---12 Factor
12 FactorI. 基准代码一份基准代码,多份部署II. 依赖显式声明依赖关系III. 配置在环境中存储配置IV. 后端服务把后端服务当作附加资源V. 构建,发布,运行严格分离构建和运行VI. 进程以一个或多个无状态进程运行应用VII. 端口绑定通过端口绑定提供服务VIII. 并发通过进程模型进行扩展IX. 易处理快速启动和优雅终止可最大化健壮性X. 开发环境与线上环境等价尽可能的保持开发,预发布,线上环境相同XI. 日志把日志当作事件流XII. 管理进程
2020-10-30 17:26:54 183
原创 docker安装的两种方法,并解决因为网络问题下载超时的问题
docker安装的两种方法,并解决因为网络问题下载超时的问题centos7 部署docker-compose——以及经常遇到的错误排解
2020-08-23 14:53:04 1817
原创 解决Idea中Gradle因为网络问题,下载软件包卡住
这几天在用idea的gradle时,打开新项目它会去下载新的gradle。大概一百多M,但是下载到三四M的时候,就会卡住。去官网下载新的gradle到本地computer,也总是因为网络原因下载不成功。 后来发现用迅雷X,可以在官网下载,如下图所示: 不过问题还没解决,虽然配置了本地的gradle,并且也在Idea的gradle配置使用本地gradle的路径。但是
2020-08-02 14:42:33 1665
原创 捋一下那些PO、VO、DTO、BO、POJO、BO/DO、DAO
Java中的PO、VO、DTO、BO、POJO、BO/DO、DAO(https://www.jianshu.com/p/d9cfd1a85068)浅析VO、DTO、DO、PO的概念、区别和用处(https://www.cnblogs.com/qixuejia/p/4390086.html)
2020-08-01 20:21:12 202
原创 史上最全、最详细的分布式知识博客推荐
分布式设计与开发(一)------宏观概述分布式设计与开发(二)------几种必须了解的分布式算法分布式设计与开发(三)------高一致性服务ZooKeeper分布式设计与开发(四)------数据拆分分布式设计与开发(五)------数据库高可用架构分布式设计与开发(六)------让memcached分布式...
2019-12-15 20:12:56 285
原创 SpringDataJPA 命名规则表
spring data jpa方法命名规则 - OxygenC - 博客园https://www.cnblogs.com/oxygenG/p/10057525.html
2019-12-12 14:20:04 406
原创 JVM学习(四):垃圾回收器
JVM学习(四):垃圾回收器前面我们学习了JVM的垃圾回收算法,如果说,垃圾回收算法是内存回收的理论,那么今天我们要讲的垃圾回收器,就是内存回收的具体实现了。在Java虚拟机规范中对垃圾回收器应该如何实现并没有任何的规定,因此不同厂商、不同版本的虚拟机所提供的垃圾回收器都可能会有很大差别。本篇博文是按照《深入理解JVM》所讲进行总结的,该书基于JDK1.7上的HotSpot虚拟机。先上张图,看...
2019-08-30 16:17:48 177
原创 聊聊MySQL的锁机制
聊聊MySQL的锁机制在MySQL中,除了对事务的管理,还有对锁机制的操纵。一直以来,这块我都不是很明白,于是,今天打算好好撸它一撸。MySQL中的锁的划分原则:按照锁的粒度划分:全局锁、表锁、页锁、行锁、按照锁的实现方式:共享锁(S锁,也称读锁)、排他锁(X锁,也称写锁)按思想划分:悲观锁、乐观锁在Innodb中还引入了“意向锁”全局锁顾名思义,全局锁就是对整个数据库实例加锁...
2019-08-30 11:05:48 471
原创 NIO是怎么发展来的
NIO是怎么发展来的前言—同步、异步 与 阻塞、非阻塞同步: 同步就是发起一个调用后,被调用者未处理完请求之前,调用不返回。异步: 异步就是发起一个调用后,立刻得到被调用者的回应表示已接收到请求,但是被调用者并没有返回结果,此时我们可以处理其他的请求,被调用者通常依靠事件,回调等机制来通知调用者其返回结果。阻塞: 阻塞就是发起一个请求,调用者一直等待请求结果返回,也就是当前线程会被挂起...
2019-08-27 14:51:42 263
原创 重温Linux
重温Linux1.Linux的文件系统众所周知,Windows下的文件系统是以C-F四个盘符组成,每个盘符里有多个文件和文件夹;而Linux是文件系统和Windows相差很大,它是一颗倒树结构,其根目录是“/”。如下图所示:一下是对这些目录的介绍:(来自菜鸟教程)**/bin:**bin是Binary的缩写, 这个目录存放着最经常使用的命令。/boot:这里存放的是启动Linux时使...
2019-08-26 19:39:05 201
原创 有赞面经(一面)---凉经
有赞面经(一面)—凉经8.10号在牛客网上投了有赞的内推,期间收到邮件邀请在线笔试,约到8.18号下午3点-4点笔试,笔试其实不难,编程题也不难,都是些Leetcode上的简单题,奈何我算法菜啊,没做出来。。。但是,还是很幸运地收到了有赞的面试邀请,约在了24号晚上七点,也就是今晚。我早早回到寝室开始准备,7点03分,接到了面试电话。电话里听声音,应该是个二十多岁的年轻人,听声音比较疲惫,估计是...
2019-08-24 23:17:37 620
原创 Spring快速整合MyBatis+”神器“MyBatis-Generator
什么是MyBatis-Generator?官网介绍:MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成器。它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。它将内省数据库表(或许多表),并将生成可用于访问表的工件。这减少了设置对象和配置文件以与数据库表交互的初始麻烦。MBG寻求对简单CRUD(创建,检索,更新,删...
2019-08-14 15:19:57 299
原创 MyBatis快速上手
MyBatis快速上手什么是MyBatis?官网介绍:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据...
2019-08-14 14:52:02 239
原创 设计模式(七):建造者模式
设计模式(七):建造者模式一、概念建造者模式属于创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。类图如下所示:二、简单实现建造嘛建造,这边我们就以建造房子为例子,讲一讲是怎么用建造者模式建房子的。假如需求是这样的:需要建造的房子暂时有两种,别墅和公寓。先不考虑设计模式,来实现一番创建House抽象父...
2019-08-07 09:40:09 258
原创 Redis学习笔记(一)
Redis学习笔记(一)1.Redis简介说到数据库,相信我们大家都了解,说的这里呢,要讲讲数据库里的分类。一类是关系型数据库(例如:MySQL、Oracle),另外一类就是非关系型数据库(也称NoSQL数据库),而我们今天要将Redis就是NoSQL数据库的典型代表。首先,讲讲为何叫NoSQL数据库呢?因为它是不用写SQL语句的数据库,而是以一种key-value形式进行数据存储的,并且它...
2019-08-06 16:15:14 164
原创 MySQL学习笔记
MySQL学习笔记在我们的日常学习和开发中,数据库是必不可少的。虽然我们平时使用数据库很频繁,但是作为一个后端开发的人员讲,我们都是在做一些很粗浅的curd活(curd大家应该都懂),真正去了解数据库的,我相信不会太多。而今天,我们就要来弥补这个不足。1.数据库范式开发人员在设计数据库的时候,需要遵循不同的规范要求,这些规范要求用专业术语来讲,就是范式,范式一共有五种,以下列出:第一范式...
2019-08-04 22:09:34 184
原创 SpringMVC笔记
SpringMVC笔记SpringMVC是Spring家族的一员,Spring是将现在开发中流行的组件进行组合而成的一个框架!它用在基于MVC的表现层开发,类似于struts2框架,它对比Structs,优点是运行快,轻量级,需要配置的信息少,所以现在主流都是用SpringMVC。1.SpringMVC的工作执行流程SpringMVC核心是一个DispatcherServlet (分发ser...
2019-08-03 20:07:09 180
转载 Spring笔记(二)
Spring笔记(二)Spring里的事务是怎么进行管理的?回答这个问题之前,我们先了解一下,事务的相关概念。1.什么是事务,它有哪些特性?事务是逻辑上的一组操作,要么都执行,要么都不执行,它有ACID四个特性:原子性:事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用一致性:执行事务前后,数据保持一致隔离性:并发访问数据库时,一个用户的事务不受其他...
2019-08-03 16:58:00 134
原创 Spring笔记(一)
Spring笔记(一)什么是Spring?Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的平台。它能帮助开发者解决基础性的问题,使得开发人员能更专注于程序的开发,大大提高了效率。Spring集成了20多个模块,体系结构如下图所示:spring又被称为容器或者大管家,其主要核心有:控制反转(IOC–Inversion of Control)依赖注入(DI–...
2019-08-03 16:54:44 150
原创 设计模式(六):适配器模式
设计模式(六):适配器模式一、概念适配器模式,讲一个类的接口转换为客户希望的另外一个接口,它使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。简单地说,就是需要的东西就在面前,但却不能使用,而短时间又无法改造它,于是我们就想办法适配它。二、实现大家都知道姚明吧?NBA里的中国球星,实力没得说,那我们今天就由他迁出适配器模式的话题;姚明一开始进入NBA,肯定是听不懂中文的,那么他要...
2019-07-31 10:00:18 148
原创 Java Web之Servlet与Jsp
Java Web之Servlet与Jsp1.什么是servlet?在官方的介绍中:Servlet 是运行在Web服务器的Java小程序。Servlet可以获取并针对Web客户端的请求作出响应。一般情况下,通过HTTP,即超文本传输协议,进行传输通信。我们再来看看它的继承体系图:Servlet是个顶级接口,定义了所有Servlet需要实现的方法ServletConfig是接口,在Se...
2019-07-30 16:50:31 378
原创 HTTP协议学习
HTTP学习一、介绍HTTP,全称为 HyperText Transfer Protocol,即为超文本传输协议。是互联网应用最为广泛的一种网络协议,所有的 www 文件都必须遵守这个标准。它有以下特点:无连接、无状态 无状态是指客户机(Web浏览器)和服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后服务器返回响应(response),连接就被关闭...
2019-07-29 21:10:10 181
原创 TCP/IP协议学习
TCP/IP学习TCP(Transmission Control Protocol,传输控制协议)IP(Internet Protocol,网络协议)UDP(User Data Protocol,用户数据报协议)目前大多数网络都是采用TCP/IP协议,它是目前最完整、最被普遍接受的通信协议标准。它可以使不同硬件结构、不同操作系统的计算机之间进行相互通讯。因此,十分有必要学习TCP/IP...
2019-07-29 21:06:49 278
原创 设计模式(五):策略模式
设计模式(五):策略模式一、介绍策略模式的类图 策略模式是处理算法不同变体的一种成熟模式,策略模式通过接口或抽象类封装算法的标识,即在接口中定义一个抽象方法,实现该接口的类将实现接口中的抽象方法。策略模式把针对一个算法标识的一系列具体算法分别封装在不同的类中,使得各个类给出的具体算法可以相互替换。 在策略模式中,封装算法标识的接口称作策略,实现该接口的类称作具体策略。二...
2019-07-29 11:27:20 296
原创 JVM学习(二):内存溢出与内存泄漏
JVM学习(二):内存溢出与内存泄漏内存溢出:Out Of Memory(OOM):指申请内存时,没有足够的内存供其使用。一般分为堆溢出和栈溢出内存泄漏:Memory Leak(ML):指程序在申请内存之后,无法释放已申请的内存,一次内存泄漏危害可以忽略,但是一旦堆积起来,后果会很严重,无论内存多少,迟早会被占用光浅析内存泄漏和内存溢出的区别1.堆溢出Java堆用于存储对象的实例,只要不...
2019-07-29 10:31:22 152
原创 JVM学习(三):垃圾回收机制
JVM学习(三):垃圾回收机制1.垃圾回收机制的作用顾名思义,就是用来释放垃圾所占用的内存,防止内存泄漏。有效使用地可使用的内存,对内存堆中已死亡的或者长时间未使用的对象进行清除和回收。它主要针对Java堆和方法区进行回收2.如何判断一个对象可被回收1.java里通过可达性分析来判定一个对象是否存活,该算法就是通过一系列的“GC Roots”的对象作为起始点,当一个对象到GC Root...
2019-07-29 10:28:01 148
原创 IDEA配置JVM参数
IDEA配置JVM参数最近在学习JVM的调参调优,idea这个工具也是最近才开始用的,不太熟悉。但是,古话说得好,自己动手,丰衣足食。于是乎,度娘了一番,成功实现效果。接下来讲一下操作步骤(其实很简单的)1.找到idea最顶部工具栏的RUN–》Edit Configurations,点击可以看到如下界面:2.在被圈起的VM Options里输入你的JVM参数,例如:-Xms20m -Xmx...
2019-07-28 16:32:03 3097
原创 JVM学习(一):java的内存结构
JVM学习(一):java的内存结构1.JVM java的内存结构运行时数据区由上图我们可以看出,java内存结构一般由五部分组成堆:Java堆屎JVM所管理的内存当中,最大的一块,它是被所有线程共享的一块内存区域,在JVM启动时被创建,唯一作用就是用于存放对象实例,堆也可以分成两部分:新生代、老年代新生代:顾名思义,新创建的对象主要分配在新生代,而新生代又可以分为Eden区...
2019-07-28 15:25:05 570
原创 设计模式(四):装饰模式
设计模式(四):装饰模式一、概念装饰模式又被称为包装模式。通过对客户端透明的方式来拓展对象的功能,是继承关系的一种替代方案二、实现假设,现在要给QQ秀里的人物设计装扮衣服,每个人可按自己不同的喜好搭配不同的衣服。先创建Person类,它里面有一个show()展示(也是穿衣服)的方法public class Person { private String name; ...
2019-07-27 20:04:44 148
原创 java多线程学习(一)
多线程学习(一)1.线程与进程概念和区别进程是正在执行的程序,它是线程的集合,一个进程可以有多个线程;而线程则是一条正在独立运行的执行路径,每个线程之间独立运行,互不影响每个线程拥有自己一整套变量,而线程则共享数据,共享变量使得线程之间的通信比进程之间的更加有效、便捷。此外,线程是“轻量级”,创建、撤销一个线程比启动新进程的开销要少得多面试题:线程和进程的区别?进程:具有一定独立功...
2019-07-27 16:38:56 201
原创 设计模式(三):抽象工厂模式
设计模式(三):抽象工厂模式一、概念抽象工厂模式 是所有形态的工厂模式中,最为抽象和最具一般性的。它可以向客户端提供一个接口。使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。二、实现昨天,我们的工厂模式的核心类是FruitFactory工厂接口,然后再定义了两个具体工厂类AppleFactory和BananaFactory。而今天,我们厂的大boss又提出了新需求...
2019-07-27 09:48:02 163
原创 设计模式(二):工厂方法模式
设计模式(二):工厂方法模式一、概念简介工厂方法模式同样属于类的创建型模式,也被称为多态工厂模式。它的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中去,核心工厂类不再负责产品的创建,成为了一个抽象工厂角色,仅仅负责具体工厂子类的必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引入新的产品。二、实现与比较昨天我们学习了简单工厂...
2019-07-25 12:10:01 142
原创 java中的反射机制
java中的反射机制一、概念在 Java 中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能成为 Java 语言的反射机制。二、常用APIClass类:反射的核心类,可以获取类的属性,方法等信息。Filed类:java.lang.reflec 包中的类,表示类的...
2019-07-25 10:41:50 266
原创 设计模式(一):简单工厂模式
设计模式(一):简单工厂模式一、定义简单工厂模式是属于类的创建型模式,又叫静态工厂方法模式。通过专门定义一个类来创建其他类的实例,就好比与一个我们生活中的工厂一样,并且被创建的实例通常都具有相同的父类二、简单实现我们先定义一个Apple和Banana的类,里面都只有一个get方法//苹果类public class Apple { public void get(){ ...
2019-07-25 10:14:08 126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人