自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入理解java虚拟机(三)——类加载器

1 类的加载时机虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。在java语言中,类型的加载、连接和初始化过程都是在程序运行期间完成的,java语言天生可以动态扩展的语言特性就是依赖运行期动态加载和动态连接这个特点实现的。java虚拟机规范中并没有进行强制约束,这点可以交给虚...

2019-12-30 21:28:57 192

原创 深入理解java虚拟机(二)——垃圾收集算法与垃圾收集器

1 对象的死亡判断1.1 引用计数法给对象中添加一个引用计数器,每当一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。缺点:很难解决对象之间循环引用的问题。1.2 可达性分析算法通过一系列称为“GC Roots”的对象为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任...

2019-12-27 10:11:28 261

原创 深入理解java虚拟机(一)——Java内存区域与内存溢出

1 运行时数据区域(1)程序计数器:线程私有,当前线程所执行的字节码的行号指示器。执行java方法时,计数器指示的是字节码指令的地址;执行Native方法时,计数器值为null。并且此区域是唯一一个java虚拟机规范中没有规定任何OOM情况的区域。(2)java虚拟机栈:线程私有,生命周期与线程相同,描述的是java方法执行的内存模型:每个方法在执行是都会创建一个栈帧用于存...

2019-12-13 11:08:17 221

原创 ArrayList 和 LinkedList 的底层实现与比较

常见面试题:ArrayList和LinkedList的区别 ArrayList是实现了基于动态数组的数据结构, LinkedList基于链表的数据结构 对于随机访问get和set,ArrayList优于LinkedList,因为ArrayList可以随机定位,而LinkedList要移动指针一步一步的移动到节点处 (举例:因为ArrayList的底层是动态数组,它属于一个对象...

2019-09-28 19:42:41 249

原创 如何进行mysql优化

这是一个经常被问道的题目,那么如果是你该如何回答呢?围绕着这个话题,能引申多少就引申多少,尽量让自己讲,不要给面试官多提问的时间。首先,我们得开启慢查询,找到需要优化的sql语句,然后进行优化:1、对于一个数据库而言,良好的逻辑设计和物理设计才是其他优化的基础。首先得看数据库额设计是否贴切业务逻辑,不恰当的数据库逻辑设计往往优化也起不了多少作用。2、需要选择合适的数据库字段类型。数...

2019-07-12 16:03:01 356

原创 开启mysql慢查询

1、临时开始慢查询执行如下命令:show variables like 'slow_query_log'执行结果如下:执行如下命令:set  global slow_query_log = ON,然后执行 show VARIABLES like 'long_query_time' ,发现慢查询设置的是10s,这显然不合适,set global long_query_ti...

2019-02-26 23:25:08 8518

原创 SQL关于null的坑

根据我们的常规逻辑,集合a与集合!a就构成了一个全集,但在SQL中,我们会发现真理也是相对的。场景一:对于table  user的数据如下:其中用户“DDD”的年龄未知,当我们执行如下两句SQL:1)select *  from user where age>=18;2)  select *  from user where age<18;结果分别如下: ...

2019-02-22 11:10:08 13163

原创 java注解详解与自定义注解的实现

       注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。1、java注解的优缺点      注解本质上通过反射来实现的,我们都知道,反射是一种程序的自省机制,其实反射是破坏封装的一种方式,反射的效率很低的,对...

2019-02-20 00:05:43 12482

原创 java 异常详解

1、 java异常的主要回答了三个问题:what:异常类型回答了什么被抛出; where:异常堆栈跟踪回答了在哪被抛出; why:异常信息回答了为什么被抛出;2、 java 异常分类 Error:程序无法处理的异常,编译器不做检查。一般指和jvm相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法栈溢出等; Exception:程序可以处理的异常,捕获后可能恢复。 总结...

2019-02-19 11:55:38 13076

原创 springboot 统一异常处理(包含统一数据校验)

 1、统一异常处理的优势在开发中,我们是否遇到过如下两种奇葩现象:(1)只要没有成功,不管什么原因,前端界面给出提示:服务端错误/异常。哪怕是数据校验不过,也这样提示(嗯,反正先把锅甩出去再说,具体什么原因我才不在乎呢,老子就是这么聪明);(2)前端不做任何提示,一切提示信息都来自后端,成功的时候自然没什么,失败的时候,比如将Exception的描述信息(e.getMessage)...

2019-02-19 00:05:40 13787

原创 springBoot(多模块)热加载

惯例吐槽:不知北方的程序猿是怎么敲代码的。老家最近零度,代码没写几行,手指早就冻得不听使唤了。。。。。。接上一篇博客(springboot 多模块项目的搭建(以IDEA为例)):https://blog.csdn.net/hj12312/article/details/86692095       写代码的人,无论是前端还是后端,都希望,代码改动之后都能实现热加载,否则,重启或刷新,时间都...

2019-02-12 10:01:38 15913

原创 springboot 多模块项目的搭建(以IDEA为例)

吐槽一下:新年第一篇博客,水水的(忘了带鼠标笔记本电源线和鼠标回家,写篇博客不容易)。 1、搭建springboot 父项目然后一路“next”,项目创建 成功后,执行 DemoApplication.java的main方法是可以启动的,但由于是maven父项目,需要更改一些内容:1)删除不需要的文件,如下图所示的部分需要删除2)修改pom.xml,改成如下:...

2019-02-11 19:26:52 14808 2

原创 微信公众号的开发 springBoot

1、微信公众号的申请        具体申请流程此处略过,百度一下有人教你怎样一步一步申请的。       不过,个人账号什么的限制太多,而其他又要求营业执照等,太麻烦,所以如果是小白只是想学一下的话,可以申请一个测试号,具体申请方法见:https://jingyan.baidu.com/article/e2284b2b95f423e2e6118de3.html2、springBoot...

2019-01-29 15:53:36 24690 1

原创 HashMap详解

Java集合类从上图可以看出,HashMap集合类有一个子类LinkedHashMap,它的基类为AbstractMap。源码如下:public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {...}...

2019-01-28 17:29:32 24643

原创 利用velocity引擎生成文件/代码

1、velocity模板引擎语法具体见博客:https://blog.csdn.net/hj12312/article/details/856771422、利用velocity模板引擎生成文件/代码利用velocity模板引擎生成文件要求三点:(1)编写好的模板;(2)模板参数;(3)最终生成的文件的路径。这三点条件达到后,就可以根据模板生产代码、配置文件了。但是呢...

2019-01-28 17:11:59 26055

原创 java回调函数(callBack)

       最近有个新同事给我写了个接口,说是用到了回调,我等了半天发现结果才返回回来,把我都整急了。最后我看了他的代码,目瞪口呆。他还信誓旦旦的说没错,按网上的例子来写的。       我一搜,网上例子真一大堆,并且都尼玛差不多。首先,定义写的不错:经理A下班前打电话给程序猿B,叫他加班搞定一个项目,然后经理A就挂了电话,程序猿B加班搞定了整个项目,并打电话告诉了经理A。程序猿B将结果...

2019-01-28 00:34:47 15244 2

原创 velocity模板引擎语法

最近,脚手架和代码生成器比较火。mybatis-plus,mybatis-generator,gun,码云上也有很多项目有这个功能.最近我根据公司的编程习惯以及微服务框架,为我们公司定制化了一个代码生成器,采用的是velocity模板引擎(当然模板引擎有多种,如freemarker等,可以按需选择哈)。       下面总结一下velocity的常用语法:比如有一个JSONObject...

2019-01-03 12:35:44 17971

原创 文件上传/下载的几种写法(java后端)

 文件上传1、框架已经帮你获取到文件对象File了    public boolean uploadFileToLocale(File uploadFile,String filePath) {        boolean ret_bl = false;        try {            InputStream in = new FileInputStream(u...

2018-09-03 22:56:48 20285

原创 从码云上传下载代码

1、基本设置   “个人主页”-&gt;"设置"-&gt;"SSH公钥(安全设置)"-&gt;"添加公钥"-&gt;确定2、新建仓库填写了仓库名称后,后面设置按需选择选择,项目就创建好了。3、 代码上传如果是初次上传:1、进入需要上传的项目所在文件夹,点击右键-&gt;"Git Bash Here";2、使用 git init 命令 ,初始化一个git 本地

2018-06-02 19:21:29 17417

原创 3D炫酷雪花背景的实现

    3D炫酷雪花背景,并且雪的大小还会随时间变化。目前已经开源到码云上,源码下载地址:https://gitee.com/hj1991/snowFalling 。效果展示(微信截动态变化背景图,效果不太好。另外,由于不会P图,雪花用的图片就是一个白色的圆,特别是近镜头的时候,效果有点搓哈,囧囧囧~,会p图的同学可以将ParticleSmoke.png P成无背景的雪花图片,要是能把P好的图片给...

2018-06-02 15:38:08 16734 2

原创 二维码(微信二维码)缓存问题的解决方法

背景:微信二维码扫码充值的时候,会给前端返回一个二维码图片的url,而当pc端的网络不好时,可能会导致界面上加载二维码图片特慢,甚至有明显的图片一帧一帧加载的痕迹。如果还没支付用户改变充值金额再次点击充值,则会生成新的二维码将旧的二维码覆盖,那么如果刚好第二次二维码加载的比较慢,界面上可能展示的还是缓存的原来的二位码,影响支付(当然这种可以在点击策略上解决或UI上解决)。但如果要求上述的场景,该如...

2018-05-05 11:17:03 21574

原创 自增长id/UUID/雪花算法的深层次分析比较

说到id之前,先说一下mysql数据库的Innodb的主键索引,因为这和索引息息相关。我们知道,在Innodb中,采用的是B+数索引。Innodb的存储结构,是聚簇索引。对于聚簇索引,(1)顺序主键和随机主键的对效率的影响很大。我们分插入和查询来讲: 插入。在磁盘中,有一个页的概念,而一页的容量是固定的,每一页按顺序存储数据,一般数据量达到一页的15/16,则开始存到下...

2018-03-27 19:54:01 33600 4

原创 mySQL 事物提交成功不等于数据保存成功

      最近遇到过生产上的数据丢失问题,看到大家各种分析代码,然后我发现很多人认为事物提交了就认为数据不会丢失!!!。。。我只能说这是公司没有DBA,或者说大家不能深层次理解mySQL原理的悲哀!        针对此,特意写了这篇博客!(理解不深刻不准确之处,敬请指出)现象      正常情况下,我们会将一系列增,删,改操作写在一个事物中,也就是一个原子操作,那么理论上这一系列的操作,要么会...

2018-03-23 13:54:16 19174 1

原创 关于max()/min()和group by 的坑

一张student表,和一张test表,如下图所示如果要查询两次考试总分最高的同学那次的考试成绩,可能大家第一反映就是max()和group by:sql语句:SELECT s.name,t.test,t.math,t.chinese,t.english,max(t.total) from student s LEFT JOIN test t on s.id=t.student_id GROUP ...

2018-02-26 13:57:50 48717 7

空空如也

空空如也

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

TA关注的人

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