自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

前路无畏的博客

专注于java后端技术及解决方案,总结,分享!

  • 博客(191)
  • 资源 (1)
  • 论坛 (1)
  • 收藏
  • 关注

原创 POJO/DO / DTO / BO / VO /AO

POJO:(Plain Ordinary Java Object)简单的Java对象DO:(date object)-数据访问层对象DTO:(data transfer object) 数据传输对象 service或者mapper向外传输的对象BO:(business object) service层输出的封装业务逻辑的对象VO:view object 视图层返回对象AO:application object : 应用对象...

2021-01-07 21:22:55 4682

原创 查看redis版本

登录redis服务器输入命令查看[root@redis-01 redis-cluster]# redis-server -v redis-server --version ```![在这里插入图片描述](https://img-blog.csdnimg.cn/20210107163727500.png)

2021-01-07 21:19:47 4696

转载 【转载】本文,是《Feign Ribbon Hystrix 三者关系 , 史上最全 深度解析》篇,为大家解读如果Feign Ribbon Hystrix 三者关系,大家可以藏好,一定有用的到时候。

本文转自:https://www.cnblogs.com/crazymakercircle/p/11664812.htmlhttps://www.cnblogs.com/crazymakercircle/p/11664812.html

2021-01-07 09:54:08 4680

原创 idea中添加阿里巴巴代码规约插件

idea中添加阿里巴巴代码规约控件。https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines/versions/点击下载会跳转到idea中。安装后重启即可!

2021-01-05 13:17:03 4696

原创 032-JVM-指令重排验证

上一篇:031-JVM-合并写(write combining)https://yuhongliang.blog.csdn.net/article/details/112135299由于cpu的执行特别快,在需要和内存或者缓存进行交互的时候就有了大把的时间,这个时间就需要执行其他的指令,这个时候就有可能会出现乱排的情况。下面的例子如果出现了0,0的情况,就说明出现了乱爬,按我们正常的逻辑是不会出现乱排的,但是在这种情况下就会出现:在x,y均赋值默认值的时候,就会出现这种情况。1. 代码如下:pac

2021-01-03 15:43:00 5535 1

原创 031-JVM-合并写(write combining)

当cpu修改了某值后会把数据线存入L1中,这个时候可能没有命中,则会一往下查找,会写入到L2中,此时,由于往L2中写的时候需要大量的时间,同时这个变量还可能继续被修改,此时会用到合并写的技术,所谓合并写就是把两次的写的结果一次进行写出。这里会用到合并鞋的地址空间,一共4个字节,也就是如果我们的修改在4个字节以内,则会使用到合并写的技术,如果超过4个字节,则无法使用到合写的红利。下面给出一个例子,1. 一次写6个字节package com.yuhl.c2020;/** * @author yuh

2021-01-03 15:24:29 5557

原创 030-JVM-Cache Line、缓存对齐、伪共享

上一篇:029-JVM-volatil e和指令重排https://yuhongliang.blog.csdn.net/article/details/1119977531.存储器的层次就结构由于寄存器的速度是非常快的,是内存的100被,是硬盘的10的六次方倍。下图是个硬件的速度指标,可以使我们对其有更为直观的认识:从cpu到大约需要cpu周期大约小的时间主存(内存)60-80nsQPI总线(between sockets ,ont drawn)20ns

2021-01-02 16:24:14 5918

原创 mysql:[ERR] 32> 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘createTime‘ at ro

1.问题提出:今天准备把Mysql数据库A传输到Mysql数据库AA中。2.查看两个数据库的版本A库:5.6.39B库:8.0.193. 数据传输3.1 工具-数据传输3.2 选择源和目标源:就是现在数据的库A目标:需要把数据库送到的目的地B3.3 选择表后点击下一步报错在传输的过程中报错如下:[ERR] 32> 1292 - Incorrect datetime value: '0000-00-00 00:00:00' for column 'createTim

2020-12-31 13:24:35 8021

原创 029-JVM-volatile和指令重排

上一篇:028-JVM-类加载子系统面试题实战https://yuhongliang.blog.csdn.net/article/details/111799834volatile可以防止,指令重拍,这个大多数小伙伴是知道的,但是他防止的是哪些指令的重拍呢?如果我们放任指令重拍会产生什么严重后果呢?这个未必都知道,下面就把这个问题说清楚。1. 从new一个对象说起1.1 源码package com.yuhl.c2020;/** * @author yuhl * @Date 2020/12/3

2020-12-30 20:52:26 8417 2

原创 028-JVM-类加载子系统面试题实战

上一篇:027-JVM-打破双亲委派机制https://yuhongliang.blog.csdn.net/article/details/111755901从实践到理论总结的过程 。1. 分析代码的执行过程package com.yuhl.c2020;/** * @author yuhl * @Date 2020/12/27 13:55 * @Classname Test2 * @Description TODO */public class Test2 { public s

2020-12-27 14:43:51 7895

原创 对于不可控的事情,我们要保持乐观;对于可控的事情,我们要保持谨慎。--爱比克泰德

对于不可控的事情,我们要保持乐观;对于可控的事情,我们要保持谨慎。—爱比克泰德觉得讲的很有道理的一句话分享给大家!

2020-12-27 13:08:30 8637

原创 查看mysql的版本号

1. 使用navicate查看mysql的版本号select version() from dual;

2020-12-27 13:04:10 7922

原创 027-JVM-打破双亲委派机制

上一篇:026-JVM-jvm对类的延时加载https://yuhongliang.blog.csdn.net/article/details/111600183为了类的安全加载,jvm底层默认实现为双亲委派,但是在实际开发中有没有 - 打破这种双亲委派机制的情况呢?答案是肯定的:有1. 打破双亲委派的原理原理是什么?前面从源码我们看到,在ClassLoader的loadClass()方法实现类具体的双亲委派逻辑,如果要打破就要用我们自己写的ClassLoader,用我们自己的loadClas

2020-12-26 17:28:04 9831

原创 026-JVM-jvm对类的延时加载

上一篇:025-JVM-虚拟机执行代码的模式解释执行+及时编译JIT https://yuhongliang.blog.csdn.net/article/details/111598534jvm加载类均是采用延时加载的方式LazyLoading。当不使用一个类的时候肯定是不会去加载的。在jvm规范中,规定了必须加载类的5中情形,这里给出,可以结合自己的开发和学习情况很容易想到。无须背过!1.必须加载类的5中情形new getstatic putstatic invokestatic 指令,访问fi

2020-12-23 22:09:14 8136

原创 025-JVM-虚拟机执行代码的模式:解释执行+及时编译JIT

上一篇:024-JVM-自定义类加载器https://yuhongliang.blog.csdn.net/article/details/111567879hotspot什么意思,就是热点探测的意思,就是jit,探测到时热点就编译为native code ,后面再执行就快了。1. 什么是热点代码就是执行测试多的代码,可以使用参数进行设置:-XX:CompileThreshold = 10000 默认值1万次数超过这个值就触发及时编译!2.默认使用的是什么执行方式?混合模式:3.个模式

2020-12-23 21:54:44 8085

原创 回顾2020年,不负青春,不负韶华,我给自己打99分!

回顾2020年,我第一感觉是累是苦,我把自己的时间安排的死死的,密不透风!回顾2020年,感觉累和苦之后,我感到欣慰,感到兴奋与高兴,如果你让我给自己打分,满分100,我会给自己打99分,最后那一分是谦虚分! 哈哈!

2020-12-22 23:05:46 11505 3

原创 我的脱发笑话

那天我去理发,问理发师 “我的发量是不是少了点”!理发师回我:还可以。我高兴了好几天。

2020-12-22 22:21:42 8085

原创 024-JVM-自定义类加载器

上一篇:023-JVM-类加载器源码分析https://yuhongliang.blog.csdn.net/article/details/111566920分析完源码,下面自定义类加载器。1. 把编译后的Miao.class放在D:\tmp\jvm目录下2. 代码实现,及分析package com.yuhl.c2020;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStre

2020-12-22 22:06:56 8078

原创 023-JVM-类加载器源码分析

上一篇:022-JVM-各类加载器加载哪些类?(类加载器的势力范围)https://yuhongliang.blog.csdn.net/article/details/111566140类加载的过程分析:1. loadClass() 加载任何类package com.yuhl.c2020;/** * @author yuhl * @Date 2020/12/22 21:27 * @Classname LoadClassResource * @Description TODO */pub

2020-12-22 21:45:48 8036

原创 022-JVM-各类加载器加载哪些类?(类加载器的势力范围)

上篇说到各类加载器再第二次得到加载一个类的时候,会在自己的视力范围内查找这个类是否存在,如果存在就加载,如果不存在就给自己孩子传出去。第一次拿到的时候需要给自己的爸爸,当然了bootstrapClassLoader没有爸爸,就是第一次拿到的时候了。那么这三个类加载器的实例范围,或者首查找的范围是什么?1. BootStrapClassLoader的实例范围在sun.boot.class.path中2. ExtClassLoader的实例范围在java.ext.dirs中3. AppClas.

2020-12-22 20:39:16 7950

原创 021-JVM-双亲委派机制

上一篇:020-JVM-类加载器的四个层级-ClassLoader https://yuhongliang.blog.csdn.net/article/details/111500612前面我们知道类的加载均是由ClassLoader加载进入内存的,那么这里类的加载有没有三六九等呢?加入我自己定义一个java.lang.String类,偷偷摸摸的写一些代码,去坑别人迷惑别人可以吗?答案是不可以的,这种安全问题不会出现,原因就是jvm加载类的时候有双亲委派机制。1. 什么是双亲委派机制Java虚

2020-12-22 20:17:53 9238 1

原创 020-JVM-类加载器的四个层级-ClassLoader

上一篇:019-JVM-类的加载过程 https://yuhongliang.blog.csdn.net/article/details/1114996041.package sun.misc.Launcher 是java虚拟机的入口应用吸纳来看下ClassLoader的代码层面的集成关系:这里要说明三点:在java程序中ClassLoader是类加载器的最顶级的类ExtClassLoader和ApppClassLoader均为ClassLoader类的的派生类Bootstrap Class

2020-12-21 22:12:49 8070

原创 019-JVM-类的加载过程

前一篇:018-JVM-class文件的形象表示https://yuhongliang.blog.csdn.net/article/details/1114991461.类加载子系统类加载子系统负责从文件系统或者网络中加载class文件到运行时数据区。ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。加载的类信息存放在一块成为方法区的内存空间中。2.类加载器ClassLoader角色Class file 存在于本地硬盘上,是

2020-12-21 21:13:24 8015

原创 018-JVM-class文件的形象表示

上一篇:017-JVM-JVM指令在多线程中是原子操作吗?https://yuhongliang.blog.csdn.net/article/details/111463444前面受过class文件中有那些元素,不够形象,这里画图更想想的表述出calss文件中中的信息:可以看原链接:https://www.processon.com/view/link/5fe0936a7d9c080207fa6f1c...

2020-12-21 20:40:30 8598

原创 017-JVM-JVM指令在多线程中是原子操作吗?

以下几个指令是原子操作:指令解释read读取write写入lock锁定unlock解锁load载入store存储use使用assign赋值

2020-12-20 21:47:44 10653

原创 016-JVM-十六进制class文件简单解读

1. 源码T0100_ByteCode01.javapackage com.yuhl;public class T0100_ByteCode01 {}2.class文件注意:默认编译后会有个无惨的构造方法//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package com.yuhl;public class T0100_B

2020-12-20 21:40:01 10410

原创 015-JVM-使用javap查看class文件内容

上一篇:014-JVM-查看class文按键的工具Binary viewer、ue、classlib Bytecode viewer https://blog.csdn.net/fsjwin/article/details/111423443处理使用上面的工具还可以使用javap查看class文件的格式1. 使用javap -v 查看Helloworld.class文件Microsoft Windows [版本 10.0.19041.685](c) 2020 Microsoft Corporatio

2020-12-20 15:08:09 10448

原创 014-JVM-查看class文件的工具Binary viewer、ue、classlib Bytecode viewer

查看编译出来的二进制文件的工具,一般可以看2进制和16进制,使用工具如下:1. Binary viewer自行搜索下载,打开后把class文件拉进去即可图标如下:启动如下:Helloword.class内容如下//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package com.yuhl;public class Hello

2020-12-20 14:56:55 10543

原创 014-JVM-Class文件结构概况

我们写了一个HelloWorld.java,然后通过javac编译出一个HelloWorld.class文件,那么这些类似的class文件中都存有那些东西呢?下面给出答案:1. Class文件结构概况下图有点模糊,可以直接访问查看源脑图:https://www.processon.com/view/link/5fdef0e763768907e4a967f72. 总结这个脑图是对class中含有文件的整体概况,一定要先过一遍,要有感性认识,然后在看二进制或者16进制的class文件源文件的时候绘

2020-12-20 14:38:51 9977

原创 013-JVM-JVM、JRE、JDK关系

上一篇:012-JVM-jvm规范出处、规范和实现https://blog.csdn.net/fsjwin/article/details/111406566JVM、JRE、JDK关系是个基础问题,但是或许你也未必那么明白。这次就把他搞的明明白白的。1. 线上官方图其实图片已经十分明白的说明了这个问题。关键是,你要一个字一个字的读一遍,别看下就曹操了事。2. JVM在最底层其实处于这个位置:3. JRE:Java runtime environment Java 运行环境运行时环境,

2020-12-19 16:58:05 10355

原创 012-JVM-jvm规范出处、规范和实现

上一篇:011-JVM-跨平台的语言和跨语言的平台https://blog.csdn.net/fsjwin/article/details/111405186对于java程序员来说jvm十分重要。那么你有么有想过一个问题?jvm的知识都是从哪里来的?现在市面上的一些有关书籍及知识是从哪里来的?1. JVM 有一套规范在oracle官网有对jvm的规范的文章,找到文档你可读一下,然后再去看市面山的jvm知识你会发现全部出自此,所以这里才是jvm的根的出处,好的,接下来我们找一下官方文档。1.1页面搜索

2020-12-19 16:44:26 10753

原创 011-JVM-跨平台的语言和跨语言的平台

我们经常听到这句话:跨平台的语言和跨语言的平台。他到底是什么意思?1. java是跨平台的语言意思是说我们程序员写代码的时候只写一份,javac编译也只编译一次,但是可以在windows上运行,也可以把打好的包放到unitx、linux、macos上运行。如果你是程序员,你一定不会感到奇怪,但是你有没有问一个问题?为什么可以呢? 记住一句话【生活哪有什么岁月静好,只是有人在为你负重前行】。你知道这个为我们负重前行的人是谁吗?就是jvm(java虚拟机Java Virtual Machine Jav

2020-12-19 15:32:05 9780 1

原创 010-JVM-Java从编译到执行的流程

1. 写一个java程序package com.yuhl;/** * @author yuhl * @Date 2020/12/19 15:01 * @Classname Helloword * @Description TODO */public class Helloword { public static void main(String[] args) { System.out.println("Helloword!"); }}2. 变异成一个

2020-12-19 15:07:19 10524

原创 CSDN页面左侧添加自己的微信公众号

1.问题提出想在csdn的博客页面左侧添加一个微信公众号的二维码怎么做嗯?效果如下:2开始实现2.1 点击我的图像下面的【博客管理】2.2 内容管理->模块管理->添加自定义模块2.3 填写内容后点击保存即可2.4 问题来了,我的二维码在哪里呢?可以在csdn上面新建一个文章,吧二维码帖进去,如下:2.5 别贴我的链接哦!到此再次回到自己的主页就可以看到已经添加完成了!...

2020-12-18 13:28:47 10104

原创 009-JVM-对象的finalization机制

上一篇:008-JVM-清除阶段算法之三:标记-压缩算法Mark-Compacthttps://blog.csdn.net/fsjwin/article/details/111342195标记为不可达的对象一定会被回收吗?这是一个好问题,一般这么问的答案肯定是否定的!!!Object.java 中的方法: protected void finalize() throws Throwable { }1. finalization机制存在的必要性finalization机制简单说就是免死金牌,或

2020-12-17 23:07:30 10587

原创 008-JVM-清除阶段算法之三:标记-压缩算法Mark-Compact

上一篇:007-JVM-清除阶段算法之二:复制算法Copyinghttps://blog.csdn.net/fsjwin/article/details/111341315前面两种标记收集算法和复制算法各有劣势,所以就有了此算法:标记-压缩算法Mark-Compact1. 背景复制算法的高效性是建立在存活对象少、垃圾对象多的前提下的。这种情况在新生代经常发生, 但是在老年代, 更常见的情况是大部分对象都是存活对象。如果依然使用复制算法,由于存活对象较多, 复制的成本也将很高。因此, 基于老年代垃圾

2020-12-17 22:09:26 10368

原创 007-JVM-清除阶段算法之二:复制算法Copying

上一篇:006-JVM-清除阶段算法之一:标记-清除算法 Mark-Sweep https://blog.csdn.net/fsjwin/article/details/1113396041. 背景为了解决标记 - 清除算法在垃圾收集效率方而的缺陷M.L.Minsky于1963 年发表了著名的论文, “ 使用双存储区的Lisp语言垃圾收集器CA LISP Garbage CoIIector Algorithm Using SeriaI Secondary Storage 。M.L.Minsky 在该论文

2020-12-17 22:00:10 10613

原创 006-JVM-清除阶段算法之一:标记-清除算法 Mark-Sweep

上一篇:005-JVM-清除阶段:单纯的讨论垃圾回收算法 https://blog.csdn.net/fsjwin/article/details/111326292先给出他的特点:位置不连续 产生碎片1.产生背景是一种非常基础和常见的垃圾收集算法,该算法被J.McCarthy等人在1960 提出并应用于Lisp 语言。2.执行过程当堆中的有效内存空间(available memory) 被耗尽的时候, 就会停止整个程序( 也被称为stop the world:STW) , 然后进行两项工作:

2020-12-17 21:49:21 9892

原创 005-JVM-清除阶段:单纯的讨论垃圾回收算法

上一篇: 004-JVM-Java中使用的标记阶段的算法:可达性分析算法中GC Roots有哪些 https://blog.csdn.net/fsjwin/article/details/111322956前面我们知道了垃圾,并且有办法找到垃圾,找到之后怎么办呢?干掉kill掉吧。那么这里就单纯讨论一下有那些垃圾回收算法。标记阶段完成后,就是清楚阶段。吓人1. 标记清除 - 位置不连续 产生碎片2. 拷贝算法 - 没有碎片,浪费空间3. 标记压缩 - 没有碎片,效率偏低...

2020-12-17 20:04:27 10604

原创 004-JVM-Java中使用的标记阶段的算法:可达性分析算法中GC Roots有哪些

上一篇:003-JVM-标记阶段的算法:怎么确定垃圾 https://blog.csdn.net/fsjwin/article/details/111322134gc roots有哪些呢?这个是面试题,也要背下来,如果不想进大厂的话,可以不背。1. 常规gc rootsJVM stack虚拟机栈中引用的对象比如: 各个线程被调用的方法中使用到的参数、局部变量等nativ method stackJNI( 通常说的本地方法) 引用的对象runtime constant

2020-12-17 19:55:00 10820

mysql-connector-java-5.1.15-bin.jar

链接数据库的jar包,想要链接数据库就必须用到,就是用Hibernate也要用。

2015-08-16

空空如也

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

TA关注的人 TA的粉丝

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