自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

人过留名 雁过留声

梦无止尽 行者无疆

  • 博客(32)
  • 资源 (3)
  • 收藏
  • 关注

原创 Java虚拟机类加载器

类加载器类加载概念:在Java代码中,类型的加载、链接、初始化过程都是在程序运行期间完成的。类的生命周期:加载(Loading)->验证(Verification)->准备(Preparation)->解析(Resolution)->初始化(Initialization)->使用(Using)->卸载(Unloading)类加载的过程:类的加载指的是将类的...

2020-02-28 14:22:14 211

原创 Java8总结

Java8(部分内容来自Java实战一书)零.Lambda表达式1. 为什么需要Lambda表达式在Java中,我们无法将函数作为参数传递给一个方法,也无法声明返回一个函数的方法。在JS中,函数参数是一个函数,返回值是另一个函数是常见的,所以JS是一门非常典型的函数式语言2. 什么是Lambda表达式:维基百科:函数式编程(英语:functional programming)或称函数...

2019-04-16 23:15:44 543

原创 使用Grafana和Prometheus监控JVM进程

总体架构图下图展示了各个组件在此过程中的作用组件1:jmx_prometheus,负责生成JVM的监控信息下载agent的jar包:jmx_prometheus_javaagent-0.12.0.jar,下载地址配置:jmx_prometheus.yaml,更多配置信息请参考 jmx_exporterwercaseOutputLabelNames: truelowercaseOu...

2020-04-03 22:42:36 1729

原创 Spring事务

1. 事务概念2. 事务配置参数名称功能描述readOnly该属性用于设置当前事务是否为只读事务,设置为true表示只读,false则表示可读写,默认值为false。例如:@Transactional(readOnly=true)rollbackFor23. 事务属性3.1 事务隔离级别3.2 事务传播属性3.3 事务超时3.4 事务只读属性...

2020-02-28 14:44:37 293

原创 大型网站架构与Java中间件-读书笔记

1. 大型网站的架构演进用Java技术和单机来构建的网站单机负载告警,数据库与应用分离应用服务器负载告警,如何让应用服务器走向集群?出现如下问题:用户对服务器的访问的选择问题(可以通过加一个负载均衡器)Session问题,解决方法:Session Sticky:针对同样的请求发送到相同的服务器上Session Replication:应用服务器通过相互复制Session来实现。...

2019-11-29 16:20:45 338

原创 Redis数据类型的常用命令

Redis数据类型:数据类型不支持类型嵌套字符串类型散列类型列表类型集合类型有序集合类型Redis命令:key命名可以采用:对象类型:对象ID:对象属性 如:user :1:friends 表示用户为1的好友列表全局相关KEYS pattern:获得符合规则的键名列表,pattern支持通配符格式,该操作会遍历Redis中所有的键,数量较多会影响性能,不建议在生产环境使用EX...

2019-10-31 10:04:33 195

原创 字符集合字符编码

ASCII (American Standard Code for Information Interchange,美国信息交换标准代码):利用 7 bit来表示一个字符,共计可以表示 128种字符。ISO-8859-1(向下完全兼容 ASCII):利用 8 bit表示一个字符,即用一个字节(byte)来表示一个字符,共计可以表示256个字符gb2312:利用2个字节(byte)来表示一个汉...

2019-10-09 14:17:05 156

原创 Netty集成Google ProtoBuf

集成步骤:1、编写 .proto 文件编写 netty_demo.proto 文件,内容如下syntax ="proto2";package com.github.mgljava.protobuf.netty;option optimize_for = SPEED;option java_package = "com.github.mgljava.protobuf.netty";...

2019-08-19 15:44:51 344

原创 TDD测试驱动开发

TDD概述变红 ——> 变绿 ——> 重构测试驱动开发(TDD)是一个依赖重复非常短的开发周期的软件开发过程:需求变成非 常具体的测试用例,然后软件只能通过新的测试。既然是测试驱动,便是测试,测试用例先行;首先编写好测试用例,期待值,实际值;开发的目的是让测试运行通过;开发围绕测试展开;练习题编写一个程序从1到100.当遇到数字为3的倍数的时候,点击“Fi...

2019-06-04 16:53:17 747 2

原创 MySQL索引

1. 什么是索引索引是对数据库表中一列或多列的值进行排序的结构。使用索引可以提高数据库中特定数据的查询速度。索引是一个单独的,存储在硬盘上的数据库结构,它们包含着对数据库表中所有记录的引用指针。索引是在存储引擎中实现的,InnoDB存储引擎只支持 BTREE 索引。2. 索引的优缺点优点:通过创建唯一索引,可以保证数据库中每一行数据的唯一性。可以大大加快数据的查询速度。在实现...

2019-05-28 13:59:26 124

原创 MySQL数据表的基本操作

创建表查看数据表结构查看表基本结构:DESCRIBE / DESC 表名;查看表详细结构语句:SHOW CREATE TABLE <表名>;修改表1. 修改表名(RENAME)ALTER TABLE <旧表名> RENAME [TO] <新表名>;ALTER TABLE users RENAME TO user; //TO 可选2. 修改字...

2019-05-17 10:09:13 289

原创 Java利用Jackson进行序列化和反序列化

Java利用Jackson进行序列化和反序列化

2019-04-18 15:28:52 931

原创 JDK8 HashMap实现原理

JDK8 HashMap实现原理1. 存储结构2. Hash冲突3. 源码分析1. 存储结构数据结构:位桶+链表/红黑树使用常量TREEIFY_THRESHOLD来控制是否切换到平衡树来存储。目前,这个常量值是8,这意味着当有超过8个元素的索引一样时,HashMap会使用树来存储它们。2. Hash冲突产生原因:HashMap中调用hashCode()方法来计算hashCode。由...

2019-04-13 00:25:00 738 2

原创 Java虚拟机

深入理解Java虚拟机

2019-04-11 16:40:56 314

原创 Sonarqube安装和配置,扫描Java项目

代码:Github一. 安装SonarQube下载:下载链接配置sonarqube进入到sonarqube-6.5/con/目录,打开sonar.properties,作如下配置:sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewrite...

2019-03-23 12:29:07 3716 1

原创 使用Docker来构建和运行springboot项目

使用Docker来构建和运行springboot项目一. 新建一个SpringBoot的应用新建一个gradle的springboot项目加入一个简易的代码@RestControllerpublic class TestController { @GetMapping(value = "/test") public String sayHello() { retu...

2019-03-14 15:12:55 193

原创 Flyway提供的六种命令

Flyway对数据库进行版本管理主要由Metadata表(默认是flyway_schema_history)和6种命令完成,Metadata主要用于记录每次执行的脚本和version等信息,下面一一介绍。Metadata表(flyway_schema_history)Flyway中最核心的就是用于记录所有版本执行结果和状态的Metadata表,在Flyway首次启动时会创建默认名为flywa...

2019-03-12 18:58:13 2516

原创 SpringBoot 集成数据库迁移工具 Flyway(基于Gradle构建)

SpringBoot 集成数据库迁移工具 Flyway(基于Gradle构建)------ 源代码:Github由于在整合时用到了一些相关的数据库技术,就不一一详解了,具体如下:flyway plugin: org.flywaydb.flywayDruid: druid-spring-boot-starterJPA:spring-boot-starter-data-jpa1. ...

2019-03-11 14:44:57 1062

原创 Git常规操作汇总

零:Git常用命令git init 初始化repositorygit add filename 添加文件filename到本地仓库,添加所有文件,使用 git add .git commit -m “commit message” 提交代码到本地仓库git status 查看本地仓库文件的状态git diff filename 查看文件做了那些修改,不指定文件名查看所有git log...

2019-01-16 15:33:01 590

原创 并发和并行的区别

并发:一个处理器同时处理多个任务。并行:多个处理器或者是多核的处理器同时处理多个不同的任务.前者是逻辑上的同时发生(simultaneous),而后者是物理上的同时发生.因为某个时间点,一个处理器只能处理一个任务。并发性(concurrency),又称共行性,是指能处理多个同时性活动的能力,并发事件之间不一定要同一时刻发生。并行(parallelism)是指同时发生的两个并发事件,具有并...

2019-01-16 15:32:30 330

原创 RestfulAPI设计

RestfulAPI设计1. 使用Https这个和 Restful API 本身没有很大的关系,但是对于增加网站的安全是非常重要的。特别如果你提供的是公开 API,用户的信息泄露或者被攻击会严重影响网站的信誉。2. API地址和版本在 url 中指定 API 的版本是个很好地做法。如果 API 变化比较大,可以把 API 设计为子域名,比如 https://api.github.com/v...

2019-01-16 15:31:50 267

原创 Study

学习读书路线项目管理和代码管理Maven 2018年9月28日16:14:34Gradle 2018年10月5日16:27:00travis-ci 在线持续集成工具代码整洁之道重构数据库相关Redis 2018年10月8日10:15:19Flyway 数据库迁移工具 2018年10月12日10:19:23MySQLTDD/BDDMocktio 单元测试框架...

2019-01-16 15:30:04 198

原创 Maven工程加入Jacoo生成代码测试覆盖率报告

完整代码Github地址: https://github.com/mgljava/jacoco-demoMaven:Apache Maven是一个软件项目管理和理解工具。Maven基于项目对象模型(POM)的概念,可以从中心信息管理项目的构建、报告和文档Jacoco:Java Code Coverage Library1.创建Maven工程--》不多说。我用的是Intellij IDE...

2018-10-10 11:33:48 1499

原创 HTTP状态码含义

500:(Internal Server Error 内部服务器错误):500错误指的是服务器内部错误,也就是服务器遇到意外情况,而无法履行请求。501:服务器501错误是服务器还是不具有请求功能的,而且501错误原因是没有实施的,可以用来HttpWebRequest指定一个UserAgent来试试的,有时候你可以换电脑来测试一下的。502:Bad Gateway是指错误网关,无效网关;在...

2018-08-07 10:44:56 468

原创 观察者模式

# 观察者模式## 概念:一个目标对象管理所有相依于它的观察者对象,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实时事件处理系统。(--维基百科)## 类图### 类和接口解释:#### Subject:被观察的对象,需要维护一个观察者对象的列表(List)。其中还有三个方法:##### 1.notifyObserves...

2018-07-19 15:33:20 147

原创 Maven项目的pom.xml和Gradle项目的build.gradle相互转换

maven--》gradle    执行命令:gradle init --type pomgradle-》maven    第一种方式:执行命令    1.在build.gradle中增加以下内容(group,version,artifactId)                apply plugin: 'java'        apply plugin: 'maven'        gro...

2018-06-28 18:21:14 7502

原创 一个人到底是怎样变成平庸的大人的?

常常有人问:一个人到底是怎样变成平庸的大人的?其实,一个人之所以变得平庸,不是因为他做了什么,而是因为他什么都没有做。胡适先生说:”一个人的前程,全靠他怎样利用闲暇时间,闲暇定终生。”每个人的上班时间都有限,能好好利用下班时间的人,往往都是成长速度最快的。有句话叫做:“功夫在8小时之外。”你下班后做的事,才真正拉开了同龄人间的段位差。如果你在8小时之外,只是吃吃喝喝,你会成为一名美食家,或者美食博...

2018-03-03 09:41:09 707

转载 JVM的Enen区和Survivor区

1.JVM堆分代(新生代,老年代,永久代) 2.新生代GC 我们先来捋一捋,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时

2017-08-22 16:11:57 532

原创 Centos+Sonatype Nexus 搭建Maven私有库

Centos+Sonatype Nexus搭建Maven私有库

2017-07-27 10:08:36 378

原创 ActiveMQ的Hello World实例

ActiveMQ的Hello World实例 一.安装ActiveMQ 1. 下载压缩包:http://download.csdn.net/detail/mgl_1/9901322 2. 直接解压,运行bin目录下对应的win32或者win64下的activemq.bat 3. 运行成功后,输入http://localhost:8161地址,并输入admin和admin可访问web页面

2017-07-17 16:25:16 341

原创 Linux下安装Nginx服务器

Liunx下安装Nginx服务器一 所需要的安装环境1.需要gcc的环境,安装gcc:yum install gcc-c++2.需要PCRE环境,安装pcre:yum install -y pcre pcre-devel3.需要zlib环境,安装zlib:yum install -y zlib zlib-devel4.需要openssl,安装openssl:yum instal

2017-07-06 08:35:55 255

原创 MyEclipse10集成SVN插件

MyEclipse集成SVN

2017-06-26 10:27:47 616

jmx_prometheus_javaagent-0.12.0.jar

代理Java包,用于生成JVM的健康的数据,jmx_prometheus_javaagent-0.12.0.jar

2020-04-03

SonarQube和SonarScanner

Sonarqube集成的包,包含Sonarqube和Sonar-Scanner。版本为(sonarqube-6.5,sonar-scanner-3.2.0.1227)

2019-03-22

apache-activemq-5.8.0-bin.zip

apache-activemq-5.8.0-bin压缩包

2017-07-17

空空如也

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

TA关注的人

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