自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 01作业提交

作业

2023-01-01 23:49:33 131

原创 Java 内存模型

栈内存的结构每启动一个线程,JVM就会在栈空间栈分配对应的 线程栈, 比如 1MB 的空间( ‐Xss1m )。线程栈也叫做Java方法栈。 如果使用了JNI方法,则会分配一个单独的本地方法栈(Native Stack)。线程执行过程中,一般会有多个方法组成调用栈(Stack Trace), 比如A调用B,B调用C。。。每执行到一个方法,就会创建对应的 栈帧(Frame)。堆内存的结构Java程序除了栈内存之外,最主要的内存区域就是堆内存了。细谈Xmx、Xms、Xmn、Meta、Di

2021-12-08 22:49:07 185

原创 高质量代码的几大标准

一、高质量代码的几大标准如何写出高质量地代码?要写出高质量代码,我们就需要掌握一些更加细化、更加能落地地编程方法论这就包含面向对象设计思想、设计原则、设计模式、编码规范、重构技巧等等。1、可维护性(maintainability)所谓“维护”无外乎就是修改bug、修改老的代码、添加新的代码之类的工作。所谓“代码易维护”就是指, 在不破坏原有代码设计、不引入新的bug的情况下,能够快速地修改或者添加代码。所谓“代码不易维护”就是指,修改或者添加代码需要冒着极大地引入新bug地风险,并且需要花费很长时间

2020-11-30 22:24:18 2855 2

原创 Docker学习笔记二 ----镜像原理,数据卷,DockerFile

1、镜像1. 1 镜像加载原理docker的镜像实际上由一层层文件系统组成,这种层级的文件系统UnionFS。以pull为例,再下载过程中可以看到docker的镜像在一层层下载:分层的最大好处就是–共享资源比如由或多个镜像都从相同的base镜像构建而来,那么宿主机只需要在磁盘上保存一份base镜像,同时内存中也需加载一份base镜像,就可以为所有容器服务。而且镜像的每一层都可以被共享。可以看到tomact有些层就是跟其他共享,pull的时候显示“already exists”。1.2 镜像特

2020-08-13 22:03:10 261

原创 Docker学习笔记一 ---- 基础概念及命令篇

为了更好的理解Docker是什么,先讲个故事:我需要盖一个房子,于是我搬石头、砍木头、画图纸、盖房子。一顿操作,终于把这个房子盖好了。结果,住了一段时间,心血来潮想搬到海边去。这时候按以前的方法,我只能去海边再搬石头、砍木头、画图纸、盖房子。烦恼之际,跑来一个魔法师教会我一种魔法。这种魔法可以把我盖好的房子复制一份,做成镜像,放到我的背包里。等我到了海边,就用这个镜像复制一套房子,拎包入住。是不是很神奇?对应到我们的项目中来,房子就是项目本身,镜像就是项目的复制,背包就是镜像仓库。如果要动态扩容

2020-08-09 20:04:18 157

原创 ActiveMQ学习笔记三---- 消息的高级特性

本文将讲述:一、消息的持久化二、消息的事务三、消息确认机制四、消息的投递方式一、消息的持久化消息持久化是保证消息不丢失的重要方式。ActiveMQ提供了以下三种消息存储方式:1)Memory消息存储-基于内存的消息存储 jms: template: delivery-mode: non_persistent #non_persistent消息不持久化,当activeMQ重启时,没有被处理的消息会丢失. 默认persistent2)基于日志消息存储方式,KahaDB

2020-08-06 23:32:50 262

原创 ActiveMQ学习笔记三----JMS消息组成

一、JMS消息组成格式整个JMS协议组成结构如下:结构描述JMS Provider消息中间件/消息服务器JMS Producer消息生产者JMS Consumer消息消费者JMS Message消息JMS Message消息由三部分组成:消息头消息体消息属性二、JMS 消息头JMS消息头预定义了若干字段用于客户端与JMS提供者之间识别和发送小于,预编译头如下(红色为重要消息头):@RunWith(SpringJUnit4ClassRu

2020-08-02 22:51:45 196

原创 ActiveMQ学习笔记二-----Queue的生产和消费篇

注意: 本文基于Spring一、依赖PTP(queue)模式生产者斜体样式

2020-08-02 21:17:13 246

原创 Spring学习笔记----Spring Framework体系结构及内部各模块jar之间的maven依赖关系

一、目前的问题在 Spring Boot 出现之前,Spring开发java项目,当配置maven依赖的时候并不能知道要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱。甚至下一次创建相同类型的工程时也不知道要配置哪些spring的依赖,还是拷贝之前的,导致maven越来越乱,还容易出错。为何需要添加这些依赖?各依赖之间有何关系?某个依赖是否可以省略?要回答这些问题,就有必要了解 Spring 的依赖体系。二、应用spring的jar包只

2020-08-01 11:23:50 717

原创 ActiveMQ学习笔记一 ----基本概念篇

一、消息中间件应用场景异步处理应用解耦流量削锋二、常见的MQ对比特性ActiveMQRabbitMQRocketMQKafka开发语言JavaErlangJavaScala单击吞吐量万级万级10万级10万级时效性毫秒级微秒级毫秒级毫秒级可用性高(支持主从架构)高(支持主从架构)非常高(分布式架构)非常高(分布式架构)三、ActiveMQ相关基本概念...

2020-07-29 22:57:30 148

原创 学习SpringBoot缓存看这一篇就够了

一、JSR107缓存规范Java Caching定义了5个核心接口,分别是CachingProvider,CacheManager,Cache,Entry,和Expiry。CachingProvider:定义了创建、配置、获取、控制多个CacheManager。一个应用可以在运行期访问多个CachingProvider。CacheManager:定义了创建、配置、管理和控制多个唯一命名的Cache,这些Cache存在于CacheManager的上下文中。一个CacheManager仅被一个Cachi

2020-07-25 00:57:11 346 1

原创 浅谈java泛型,泛型类,泛型方法,泛型接口,泛型通配符

一、泛型概述泛型(generics)的本质是参数化类型,也就是说所的操作的数据类型被指定为为一个参数。这种参数类型可用于类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。二、为什么需要泛型没有泛型的情况下,通过对类型Object的引用来实现参数的“任意化”,"任意化"带来的缺点是要做显示的强制类型转换,而这种转换要求开发者对实际参数类型可以预知的情况下进行。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。泛型的好处是在编译的时候检查类型安全,并且所

2020-07-15 21:45:20 619

原创 Collections工具类

一、Collectors,Collection,Collections区别Collectors主要是用于java stream中,是用来最后处理stream的,比如Collectors.toSet()Collection 是所有集合类的接口类,比如常用的Set, List, MapCollections是Java官方提供的针对集合类的工具。二、Collections的方法1. 排序操作void reverse(List list):反转void shuffle(List list): 随机

2020-05-25 17:46:04 284

原创 JAVA集合详解 Collection, Map

java集合类的继承图Java的集合主要按两种接口分类:Collection、Map。1. Collection1)Collection 接口有 3 种子类型集合: List、Set 和 Queue。2)与数组的区别数组集合长度固定可变存储元素基本类型/对象对象元素类型一致性必须一致可以不一致3)Collection的主要方法boolean add(Object o)添加对象到集合boolean addAll(Collection c)将集

2020-05-25 16:11:31 355

原创 Spring Data JPA 和 JPA

Spring Data项目的目的是为了简化构建基于Spring框架应用的数据访问技术,包括非关系数据库、Map-Reduce框架、云数据服务等等;另外也包含堆关系数据库的访问支持。Spring Data包含多个子项目:Spring Data CommonsSpring Data JPASpring KeyValueSpring Data LDAPSpring Data MongoDBSpring Data RESTSpring Data Redis…等1. Spring Data特点

2020-05-10 22:08:19 233

原创 Mybatis配置详解

https://github.com/mybatis/mybatis-3

2020-05-06 00:26:21 311

原创 Druid 数据源配置

源码参考: https://github.com/Viviennechenwei/Learning_SpringBoot/tree/master/ch10-springboot-mybatis一、SpringBoot自动配置springBoot 版本2.2.6需要导入druid启动器 <!-- https://mvnrepository.com/artifact/c...

2020-05-03 23:37:18 594

原创 Java Interger和int(基本数据类型和包装类)区别

一、Java基本数据类型Java基本类型有8种:简单类型booleanbytecharshortintlongfloatdouble二进制位数18161632643264封装器类型BooleanByteCharacterShortIntegerLongFloatDouble默认值false0‘u0000’0...

2020-05-02 21:35:50 253

原创 Java JVM 底层机制,类加载器、堆、栈、方法区等详解

一、JRE、JDK、JVM之间的关系JVM(Java Virtual Machine) : Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心。java.exe是java class文件的执行程序,但实际上java.exe程序只是一个执行的外壳。它...

2020-04-30 22:26:33 891

原创 String、StringBuilder和StringBuffer超详解

一、String类String的部分源码如下public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final ch...

2020-04-26 22:52:09 377 2

原创 java反射

反射

2020-04-25 18:20:52 149

原创 自定义注解

一、定义用来说明程序地一个标识,给计算机看的。注解也叫元数据,是一种代码级别的说明。它是JDK1.5之后引入地一个特性,是一种特殊地接口,可以使用在字段、类、方法、包参数等上面。注意:注解本身并没有任何功能,仅仅起到一个标识性地作用。我们通过反射获得注解,再根据是否有这个注解、注解中的一些属性去判断,执行哪种业务逻辑。二、自定义注解1) 语法注解的关键字为@interface。在底层实现...

2020-04-25 00:08:31 205 1

原创 Java8 时间与日期

一、传统时间写法问题:线程不安全public class DateBeforeJava8Test { public static void main(String[] args) throws ExecutionException, InterruptedException { SimpleDateFormat sdf = new SimpleDateFormat("y...

2020-04-23 00:22:00 231

原创 Java8 Optional类

Optional类是一个容器类,代表一个值存在或不存在。原来用null表示一个值不存在,现在Optional可以更好的表达这个概念。并且可以避免空指针异常。常用方法:...

2020-04-20 21:54:22 148

原创 Java8 Stream详解

一、Stream概念Stream是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。注意:1)集合讲的是数据,流讲的是计算2)Stream自己不会存储元素3)Stream不会改变源对象,会返回一个包含结果的新Stream4)Steam操作时延迟执行的。这意味着它们会等到需要结果的时候才执行二、Steam步骤1)创建Steam通过Collection系列集合提供的stre...

2020-04-18 23:42:05 399

原创 Java8 函数式接口、方法引用、构造器引用详解

Stream

2020-04-18 17:16:17 454 1

原创 Mockito详解(二)Mockito中的语法和示例

一、Subbing和Assert

2020-04-15 21:32:55 3043

原创 IDEA常用快捷键大全

含义快捷键copy上一行代码Ctrl+D上下移动Ctrl+Shift+↑/↓

2020-04-13 22:54:12 97

原创 Java8 Lambda表达式详解

一、Lambda表达式Lambda表达式时Java8重要的新特性。lambda允许把函数作为一个方法的参数。使用lambda可以是代码变得更加简洁紧凑,尤其在集合的遍历和其他集合操作中。Lambda对接口的要求:使用Lambda表达式可以对某些接口进行简单的实现,但不是所有的接口都可以使用Lambda表达式。Lambda规定接口中只能有一个必须要被实现的方法,不是规定接口中只能有一个方法。...

2020-04-13 22:52:42 822 1

原创 Mockito详解(一)介绍及例子

Mockito官网一、Mockito的使用场景在写test case的时候, 我们不应该有任何的外部的依赖,比如:需要访问数据库拿数据或者更新数据不应该依赖网络去下载文件发送mail的时候,不应该依赖任何SMTP server。。。Mock就是做一个假的object,对这个object里的方法的调用,都会被已经Mock的假对象拦截,然后返回用户预设的行为。这样可以绕过需要从其它地方...

2020-04-12 21:33:25 6706 1

原创 Junit 自己mock对象总结

一、单元测试的步骤1、准备数据数据尽可能全面,以及包含各种边界(0,null,等)。当测试数据全面时,有利于测试驱动开发,以及代码重构。 比如测试StringUtil中的isBlank方法。当开发或重构时只需要保证各个case成功 //isBlank(null) == true //isBlank(" ") == true //tab //isBlank("") == ...

2020-04-11 23:44:49 1993

原创 SpringBoot的数据库访问

一、SpringBoot快速配置数据库的访问在yml中配置了spring.datasource之后,SpringBoot就可以自动配置,注入JdbcTemplate和DataSource。我们就可以直接使用了。需要注意以下几点1. SpringBoot默认使用的数据源是com.zaxxer.hikari.HikariDataSource2. 可指定spring.datasource.type...

2020-04-11 00:12:43 269

原创 SpringBoot的日志管理

1. 目前的日志框架有:日志的抽象层日志的实现JCL(Jakarta Commons Logging),jboss-logging,SLF4j(Simple Logging Facade for Java)JUL(java.util.logging),Log4j,Log4j2,Logback用的是时候要选择一个日志抽象层和一个日志的实现Spring框架默认使用JCL...

2020-04-07 00:01:15 198

原创 Spring自动配置原理

1. SpringBoot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfiguration2. @EnableAutoConfiguration的作用: 收集所有spring.factories中EnableAutoConfiguration相关bean的类,并将得到的类注册到spring容器中。–> AutoConfigurationImportSelecto...

2020-04-05 22:47:53 704

原创 SpringBoot配置之Profile详解

profile是Spring对不同环境提供不同配置功能的支持,可以通过激活指定参数等方式快速切换环境1. 多profile文件形式格式:application-{profile}.properties例如常见的:application-dev.properties, application-uat.properties, application-prod.properties2. 多...

2020-04-05 16:20:44 780

原创 IDEA提交新的项目到Git

1.创建git的remote库2. 创建本地的git库3. 创建.gitignore文件,并添加需要ignore的文件执行完之后, 项目根路径下会有.gitignore一般会ignore以下文件4. 选中你要提交的代码,点击commit5. 把代码提交到git上点击VCS–> 点击Git --> 点击Push。 然后按照以下步骤操作点击Define rem...

2020-04-05 01:06:49 816

原创 SpringBoot注解

1、 @RestController@RestController = @Controller + @ResponseBody@Controller表明了这个类是一个控制器类@ResponseBody表示方法的返回值直接以指定的格式写入Http response body中,而不是解析为跳转路径。@RestControllerpublic class HelloController {...

2020-04-05 00:00:24 107

原创 SpringBoot的配置文件读取

一、SpringBoot的配置文件SpringBoot使用全局的配置文件,可对一些默认配置进行修改配置文件名是固定的。springboot会自动使用该配置文件application.propertiesapplication.yml配置文件放在src/main/resources目录或者类路径/config下...

2020-04-03 00:20:54 235

原创 YAML的语法

一、基本语法K:(此处有个空格)V 表示一对键值对,空格必须要有,属性和值大小写敏感用空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一层级的二、值的写法1. 自变量:普通的值(数字,字符串,布尔):k: v 字面直接来写字符串默认不用加单引号或则双引号;“value”: 双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表达的意思name: “zhangsa...

2020-04-02 23:29:44 190

原创 @SpringBootApplication详解 以及 pom 讲解

一、@SpringBootApplication 主要有以下注解组成@SpringBootConfiguration@EnableAutoConfiguration二、@SpringBootConfigurationSpring Boot 配置类, 它本质上是@Configuration@Configuration配置类注解,它本质上是一个组件@Component@Configurat...

2020-04-01 23:35:41 2777

空空如也

空空如也

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

TA关注的人

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