自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JavaEdge

全是硬核干货的公众号:JavaEdge

原创 为了精通Java,我收藏了这些网站和资源

并发脑图 Java内存模型知识体系:https://naotu.baidu.com/file/60a0bdcaca7c6b92fcc5f796fe6f6bc9 线程8大核心:https://naotu.baidu.com/file/07f437ff6bc3fa7939e171b00f133...

2020-03-09 17:44:23

阅读数 912

评论数 0

原创 Java对象的序列化/反序列化原理及源码解析
原力计划

0 前言 全是干货的技术殿堂 文章收录在我的 GitHub 仓库,欢迎Star/fork: Java-Interview-Tutorial https://github.com/Wasabi1234/Java-Interview-Tutorial What Java序列化是指把Java对象保存...

2020-03-31 23:08:09

阅读数 165

评论数 2

原创 Java的String类中提到的代码点,代码单元到底是什么?
原力计划

unicode unicode是计算机科学领域里的一项业界标准,包括字符集、编码方案等。计算机采用八比特一个字节,一个字节最大整数是255,还要表示中文一个字也是不够的,至少需要两个字节,为了统一所有的文字编码,unicode为每种语言中的每个字符设定了统一并且唯一的二进制编码,通常用两个字节表示...

2020-03-31 22:36:56

阅读数 159

评论数 3

原创 Java字节码修改库ASM#ClassReader实现原理分析
原力计划

1 概述 ASM是Java中比较流行的用来读写字节码的类库,用来基于字节码层面对代码进行分析和转换。在读写的过程中可以加入自定义的逻辑以增强或修改原来已编译好的字节码,比如CGLIB用它来实现动态代理。ASM被设计用于在运行时对Java类进行生成和转换,当然也包括离线处理。ASM短小精悍、且速度...

2020-03-31 22:34:04

阅读数 166

评论数 2

原创 JaCoCo官方教程
原力计划

1 概念 1.1 任务 - Mission JaCoCo应该为基于Java VM的环境中的代码覆盖率分析提供标准技术。重点是提供一个轻量级,灵活且文档齐全的库,以与各种构建和开发工具集成。 有几种适用于Java的开源覆盖技术。在实现Eclipse插件EclEmma时,观察到它们都不是真正为集成...

2020-03-31 17:10:38

阅读数 185

评论数 0

原创 Java面试快问快答-Instrument机制
原力计划

Java Instrument有什么作用? 使开发者可以构建一个独立于应用程序的代理程序Agent,用来监控和协助运行在JVM上的程序,更重要的是能够替换和修改某些类的定义; 最大的作用:可以实现一种虚拟机级别支持的AOP实现方式; 在JDK 1.5 、1.6中,Java Instrument做了...

2020-03-30 17:25:34

阅读数 202

评论数 3

原创 JaCoCo 与Cobertura 的对比

0 二者总体功能对比 详细对比 http://openclover.org/doc/manual/latest/general–comparison-of-code-coverage-tools.html#Comparisonofcodecoveragetools-legend 1 数据结...

2020-03-27 18:11:30

阅读数 528

评论数 0

原创 2020年最新腾讯Java面试真题

说说JVM内存模型。 线程的程序计数器是干什么用的? 说说堆里面的垃圾回收算法?为什么新生代用复制算法,老年代用标记整理、标记压缩? 了解CMS这个垃圾回收器吗?说说它的工作流程? CMS在并发标记的时候,用户线程也会不停的产生一些大对象,Remark再次标记的时候可能会花上很多时间,说说你的优化...

2020-03-27 17:05:15

阅读数 615

评论数 0

原创 面试官问我生成器模式(又名建造者模式),还好我都会
原力计划

1 基本概念 1.0 为什么需要生成器模式? 系统中一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种部件。而对于大多数用户而言,无须知道这些部件的装配细节,也几乎不会使用单独某个部件,而是使用一辆完整的汽车! 这时就可以通过建造者模式对其进行设计与描述,建造者模式可以...

2020-03-27 16:20:51

阅读数 1446

评论数 4

原创 Java电商系统商品详情页存储方案设计

电商的商品系统主要功能就是增删改查商品信息,没有很复杂的业务逻辑,支撑的主要页面就是商品详情页(下文简称:商详)。不过,设计这个系统的存储,你仍然需要着重考虑两个方面的问题。 第一,要考虑高并发的问题。不管是什么电商系统,商详页一定是整个系统中DAU(日均访问次数)最高的页面之一。这个也不难理解,...

2020-03-27 00:42:03

阅读数 654

评论数 0

转载 谈谈Java Intrumentation和相关应用

1 Overview   对于Java 程序员来说,Java Intrumentation、Java agent这些技术可能平时接触的很少,听上去陌生但又好像在哪里见到过。实际上,我们日常应用的各种工具中,有很多都是基于他们实现的,例如常见的热部署(JRebel, spring-loaded)、...

2020-03-25 21:28:01

阅读数 649

评论数 1

原创 JDK1~JDK13十种垃圾收集器的吐血总结
原力计划

HotSpot虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,没有最好的垃圾收集器,只有最适合的垃圾收集器.我们可以根据自己实际的应用需求选择最适合的垃圾收集器. 根据新生代和老年代各自的特点,我们应该分别为它们选择不同的收集器,以提升垃圾回收效率. 1 Serial垃圾收集器 单线程 只会...

2020-03-24 21:08:32

阅读数 2273

评论数 19

原创 看完让你吊打面试官-@Autowired注解到底怎么实现的?
原力计划

1 @Autowired 干嘛的? 用来执行依赖注入.每当一个Spring管理的bean发现有该注解时,会直接注入相应的另一个Spring管理的bean. 1.1 不同地放置有不同作用 属性 Spring将通过扫描自定义的package或通过在配置文件中直接查找bean 方法 使用@Autowi...

2020-03-24 14:54:38

阅读数 874

评论数 5

原创 ThreadLocal 源码解析
原力计划

1 线程封闭 多线程访问共享可变数据时,涉及到线程间数据同步的问题。并不是所有时候,都要用到 共享数据,所以线程封闭概念就提出来了。 数据都被封闭在各自的线程之中,就不需要同步,这种通过将数据封闭在线程中而避免使 用同步的技术称为线程封闭。 避免并发异常最简单的方法就是线程封闭 即 把对象封装到一...

2020-03-24 14:24:20

阅读数 717

评论数 4

原创 JaCoCo探针策略原理及案例总结
原力计划

1 探针策略 在一系列字节码指令中插入这些属性呢,只要该属性被执行了,说明其之前的指令都被执行了 注意方法结束了是在 return 指令前放置探针哦 跳转语句的记录 条件语句 2 探针特点 探测的唯一目的是记录它至少执行过一次。探测器不记录它被调用的次数或收集任何时间信息。后者超出了代...

2020-03-23 21:04:46

阅读数 639

评论数 3

原创 Jacoco探针源码解析(0.8.5 版本)
原力计划

目录jacoco agent入口类classFileDumper 类InstrSupport类assertNotInstrumentedpushClassAnalyzer调用ClassInstrumenterinstrumenter - 对类的植入锁定进行判断loadclass入口类:Cover...

2020-03-20 20:37:53

阅读数 1166

评论数 0

原创 计算机中的dump到底是什么意思?

你只知道是转储而已吗? 在计算机领域,dump一般译作转储,有动词和名词两种场景 1 为什么dump 一般指将数据导出、转存成文件或静态形式。比如可以理解成:把内存某一时刻的内容,dump(转存,导出,保存)成文件. 因为程序在计算机中运行时,在内存、CPU、I/O等设备上的数据都是动态的(或者说...

2020-03-20 17:02:04

阅读数 1823

评论数 1

原创 Java的Instrumentation类原理分析

Instrumentation 简介 利用 Java 代码,即 java.lang.instrument 做动态 Instrumentation 是 Java SE 5 的新特性,它把 Java 的 instrument 功能从本地代码中解放出来,使之可以用 Java 代码的方式解决问题。使用 I...

2020-03-20 16:04:07

阅读数 911

评论数 0

原创 "org.jacoco.agent.rt" 在 maven 中找不到

看起来没有,不提供源码 https://github.com/jacoco/jacoco/issues/207

2020-03-20 15:54:06

阅读数 900

评论数 0

原创 面试官再问你怎么修改订单,就把这篇甩给他
原力计划

目录0 前言1 基本功能和数据表基本功能数据表2 如何避免重复下单?2.1 怎么判断请求是否重复2.2 最佳实践3 攻克ABA3.1 什么是 ABA?3.2 解决方案通用的解决方案4 总结参考 0 前言 全是干货的技术殿堂 文章收录在我的 GitHub 仓库,欢迎Star/fork: Java-...

2020-03-20 10:06:20

阅读数 1910

评论数 1

原创 性能测试

@[TOC]# 0 测试指标 总时间 = Class transformation time(类转换时间 一次性) + Test程序运行时间(同一段代码执行一次 * 执行次数) 1 Test 程序 10^3 循环 avg:0.5s 0.3s 5000 Class transformation...

2020-03-19 18:26:02

阅读数 554

评论数 0

原创 一图秒懂开源协议-GPL、BSD、MIT、Mozilla、Apache,LGPL

祭出阮一峰大佬的宏图巨制. BSD开源协议 BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。 但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产...

2020-03-18 21:42:52

阅读数 526

评论数 0

原创 IDEA如何查看jar包里面的代码

很简单,直接添加到项目的 library 里即可

2020-03-18 21:25:39

阅读数 480

评论数 0

原创 Java代码覆盖率历史发展轨迹

这里写自定义目录标题0 覆盖率定义1 EMMA1.1 maven 集成1.2 与jenkins集成1.3 插桩坑总结2 jacocoJaCoCo优势JaCoCo基本概念JaCoCo 原理注入方式JaCoCo同时支持on-the-fly和offline的两种插桩模式On-the-fly插桩:Offl...

2020-03-18 15:55:34

阅读数 532

评论数 0

原创 Mac pro外接显示器双屏设置及主次屏设置

双屏设置有两种 1 镜像 两个屏幕同步显示同样的内容 2 非镜像 设置方式:打开 系统偏好设置-》显示器-》取消选择镜像显示器即可 3 主次屏设置 如上小屏是mac,大屏是外接屏,想让大屏变为主屏,只需要将小屏上方的白条拖到大屏上方 ...

2020-03-18 11:01:51

阅读数 518

评论数 0

转载 浅谈代码覆盖率

引言 经常有人问这样的问题:“我们在做单元测试,那测试覆盖率要到多少才行?”。答案其实很简答,“作为指标的测试覆盖率都是没有用处的。” Martin Fowler(重构那本书的作者)曾经写过一篇博客来讨论这个问题,他指出:把测试覆盖作为质量目标没有任何意义,而我们应该把它作为一种发现未被测试覆...

2020-03-18 10:56:04

阅读数 440

评论数 0

原创 mongodb-driver使用

0 前言 全是干货的技术殿堂 文章收录在我的 GitHub 仓库,欢迎Star/fork: Java-Interview-Tutorial https://github.com/Wasabi1234/Java-Interview-Tutorial mongodb-driver是mongo官方推...

2020-03-17 21:10:37

阅读数 393

评论数 0

原创 MongoDB可视化工具robomongo走起~

0 前言 全是干货的技术殿堂 文章收录在我的 GitHub 仓库,欢迎Star/fork: Java-Interview-Tutorial https://github.com/Wasabi1234/Java-Interview-Tutorial 官网下载 安装 我们可以看到有两个版本St...

2020-03-17 20:45:29

阅读数 400

评论数 0

原创 MongoDB插入,查看文档踩坑记
原力计划

文档的数据结构和 JSON 基本一样。 所有存储在集合中的数据都是 BSON 格式。 BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。 MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下: db.COLLECTION...

2020-03-17 20:30:50

阅读数 712

评论数 1

原创 MongoDB查询文档踩坑记!

1 统计条数 统计记录条件使用count()方法. 以下语句统计spit集合的记录数: db.comment.count() 按条件统计 ,例如统计userid为1013的记录条数: db.comment.count({userid:"1013"}) 2 模糊查询 Mong...

2020-03-17 20:21:38

阅读数 371

评论数 0

原创 MongoDB修改,删除文档踩坑记!

1 更新文档 语法结构 db.集合名称.update(条件,修改后的数据) 修改_id为1的记录,点赞数为1000,输入以下语句: 执行后发现,这条文档除了thumbup字段其它字段都不见了。 为了解决这个问题,我们需要使用修改器$set来实现,命令如下: db.comment.update({...

2020-03-17 20:13:10

阅读数 371

评论数 0

原创 都 2020了,你该知道MongoDB优化策略了~
原力计划

0 前言 全是干货的技术殿堂 文章收录在我的 GitHub 仓库,欢迎Star/fork: Java-Interview-Tutorial https://github.com/Wasabi1234/Java-Interview-Tutorial MongoDB 是高性能数据,但是在使用的过程...

2020-03-17 19:54:27

阅读数 737

评论数 3

原创 jacoco关于Java代码覆盖率你不得不会的基操!
原力计划

jacoco是一个开源的覆盖率工具,通过插桩方式来记录代码执行轨迹. ant是构建工具,内置任务和可选任务组成的.Ant运行时需要一个XML文件(构建文件)。 1 覆盖率统计工具对比 这块的工具对比和相关原理介绍可以参考有赞测试浅谈代码覆盖这篇帖子,原理和工具讲的比较透彻,本文就不做过多介绍了. ...

2020-03-17 14:43:34

阅读数 409

评论数 1

原创 git -modified: xxx目录没有被跟踪

删除该目录下的.git目录,一般是隐藏状态,注意让他显形[ 删除git中的code-demo,删除之后重新添加 git rm -r --cached code-demo git add code-demo git push orgin master ...

2020-03-16 09:58:31

阅读数 460

评论数 0

原创 分布式事务实战(二) -事务基本概念

1 什么是事务 一种可靠、一致的方式,访问和操作数据库中数据的程序单元。 2 ACID性质 并非任意的对数据库的操作序列都是数据库事务。数据库事务拥有以下四个特性,习惯上被称之为ACID特性。 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都...

2020-03-15 00:44:31

阅读数 1060

评论数 0

原创 基于chrome内核的微软Edge浏览器~

下载与安装Beta版本 设置选项卡

2020-03-14 23:49:20

阅读数 985

评论数 2

原创 都2020了你该知道Tomcat真正的启动文件了

0 前言 全是干货的技术殿堂 文章收录在我的 GitHub 仓库,欢迎Star/fork: Java-Interview-Tutorial https://github.com/Wasabi1234/Java-Interview-Tutorial 真正的启动是在 catalina.sh 设置s...

2020-03-13 20:53:28

阅读数 1188

评论数 0

原创 SpringCloud安全实战(一)-API及其安全机制
原力计划

我们的重点是 完整知识体系 达到系统性的思考 API安全 API? 与因特网相连的端系统提供了一个应用程序接口(英语:Application Programming Interface,缩写:API;又称为应用程序编程接口)是软件系统不同组成部分衔接的约定。 API规定了运行在一个端系统...

2020-03-13 18:15:25

阅读数 3046

评论数 4

原创 Tomcat下载安装及其基本操作
原力计划

目录0 前言1 下载1.1 进入 [Apache Tomcat官网](http://tomcat.apache.org/)1.2 [选择经典稳定版本 8.5](https://tomcat.apache.org/download-80.cgi)2 启动Tomcat2.1 终端输入2.1.1 设置...

2020-03-13 17:51:40

阅读数 896

评论数 0

原创 RabbitMQ实战(一) - 下载与安装
原力计划

1 准备: yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz 2 下载: wget ww...

2020-03-13 17:07:51

阅读数 798

评论数 0

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