自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

王者之峰

互相学习,共同进步

原创 spring 生命周期最详解

目的 在大三开始学习spring时,老师就说spring bean周期非常重要,当时也有仔细看,但是说实话搞不大懂,后面工作面试也问过,还是有点模糊,就是没有掌握好,进行深入理解,这次“老大”又问到了。不允许再回避了,所以这次坚决搞明白,理解生命周期作用,为啥要这样设计,我们能在生命周期做哪些更...

2017-08-09 19:28:34 18618 3

原创 jvm数据区域

工程运行类信息、常量、静态变量、程序指令、局部变量、操作数栈、方法出入口、动态连接、字面变量、符号引用、对象都存放在哪里呢?当然是放在内存里,今天有复习了一遍jvm,下面是我自己看得笔记。 数据库分为线程私有和公有。 程序计数器 程序计数器是线程私有的,占很小内存,用于存放字节码行号指示器,跳转、...

2019-12-17 11:27:15 29 0

原创 浮点数

定点数 计算机有两种小数,定点数和浮点数。 定点数指的是小数点后面的位数是固定的。对十进制进行BCD编码,然后加上符号位,0表示正数,1表示负数,转为BCD编码后如果加上4bit符号位是整数字节的话就用4bit,否则用8Bit。 如-9.99进行编码后是1.5个字节,那么就用4bit表示符号位,0...

2019-09-01 23:18:27 787 1

原创 0与1的世界

计算机的信息存储和逻辑计算的元数据,因为计算机是由晶体管、电路板组装成的电子设备。生活忠的十进制是"逢十进一",同理0 1表示大于1的数字是"逢二进一",1,2,3,4用二进制表示如果是4电路的话分别是0001,0010,0011,0100。 负数表示 那么...

2019-08-09 14:57:38 46 0

原创 引用

强引用 就是GcRoots对象,是栈、方法区、本地里面引用指向对象,比如 A a=new A(); 软引用 就是该引用的对象可有可无,只要不OOM是不会清除的,在内存溢出之前才会纳入gc范围。软引用一般用于一些计算结果和不需要实时获取的用户本身或者行为数据。 现在有redis之类的缓存了,一般情况...

2019-07-30 20:50:34 48 0

原创 构造器内部的多态方法的行为

例子 public class LivingCreature { LivingCreature() { System.out.println("before draw()"); draw(); System.out.pri...

2019-07-22 10:30:35 52 0

原创 finalize

前言 今天又看了下java编程思想,听实习期间“老大”的,这本书需要看三年,这也是我买这本书的第三年了(没有完整的看完过),每年都会看下,但是每次看感觉都不一样,第一年看是头大,第二年看是勉强能看懂一部分,第三年看会带着工作中的实践去思考,渐入佳境,时间过的太快了我还是没看完,今年必须得看完了,明...

2019-06-29 19:52:54 75 0

原创 java.util.ConcurrentModificationException 详解

问题出现 这次写代码写的比较急出现的一个问题,在遍历的时候使用Iterator在删除的时候用了List的remove,就出现了java.util.ConcurrentModificationException; public static void main(String[] args) { ...

2019-06-21 17:07:14 307 0

原创 Join连接条件放在on后面好和where的区别

背景 有一次跑数据发现连接条件放在on后比放在where慢

2019-05-29 11:03:40 2330 0

原创 Spring声明式事务@Transactional传播行为

propagation = Propagation.REQUIRED 默认的传播行为,该方法需要再事务环境下运行,被调用的方法有事务的话就和它在同一个事务下属于平级那一个异常都会回滚,没有就自己开启新的事务,调用别的没事务的方法会把它加到同一个事务中。下面会给出相应example 调用A方法 @...

2019-03-03 19:15:08 1694 0

原创 Spring Boot简介、开启与启动分析

简介 说实话我之前没有接触过spring boot以为它是个编写应用程序的框架,无知总不能一直无知下去,不懂就要学习。 spring boot可以认为是一个快速开发的方式方法,但本质还是spring。用过传统spring方式开发你就会发现xml配置比较烦杂,每次重新建个项目都要去配置下有可能还...

2019-02-26 14:49:32 117 0

原创 get和post区别

前言 post和get是最常见的http请求方法,但是对于它的理解始终不够明白,现在公司的项目全部是用post的请求,虽然上家公司前期用get和post但是后来不管三七二十一全部用post,前端问我为啥全用post我只回答一句post比较安全都懒的深究之前是了解过的post是总体而言比get好,...

2018-12-11 15:26:51 293 0

原创 Integer之valueof

问题引入 题目输出false的是 Integer i01=59; int i02=59; Integer i03=Integer.valueOf(59); Integer i04=new Integer(59); ...

2018-05-28 11:27:00 936 0

原创 spring非懒加载的bean实例化源码分析

懒加载和非懒加载 懒加载指的是spring容器初始化的时候并不实例,当用到的时候才实例化,需要在标签上指定”lazy-init”属性值为true,用到的时候不只指 直接使用,或者是被别的非懒加载bean依赖了。 非赖加载指的是spring容器初始化的时候实例化bean,bean不限制是单例(...

2018-05-21 15:04:32 798 0

原创 mysql之explain

explain是提供一些信息关于增删查改(mysql 5.6之前只支持查)是如何执行的命令。 执行结果列下面说明下。 下面例子测试的表 CREATE TABLE `test_people` ( `people_id` bigint(20) NOT NULL AUTO_INCREMEN...

2018-05-15 17:31:31 1727 0

原创 mysql InnoDB引擎的行锁和表锁

引入 之前是有接触行锁和表锁但是由于没有实际应用过也只是大概了解,前两天就遇到了并发同时对一条记录进行修改。mysql肯定会让修改请求排队,也就是说加了锁,但是mysql默认加的是表锁,但是会影响效率,所以我们需要用行锁。 行锁和表锁 表锁:顾名思义就是对整张表进行加锁,同一时刻整张表所...

2018-04-25 11:07:11 4444 1

原创 spring 实例化配置文件源码分析

引入 spring配置文件是怎么实例化的呢? 直接调试来看看。 package test; import org.springframework.context.ApplicationContext; import org.springframework.context.support...

2018-04-19 14:52:09 593 0

原创 java 获得今天零点时间戳

引入 今天在做查询今天某用户的订单数,是想获取今天零点时间戳,只要比今天零点时间戳大的当然是今天的时间戳咯,然后按条件查询就行了。 那么今天零点的时间戳怎么获得? 时间戳概念 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00...

2018-04-12 15:15:31 11627 2

原创 spring aop

概念 aop(Aspect Oriented Programming)面向切面编程,那么面向切面是什么意思呢?第一次接触的时候看着spring大学教程写了一大串文字描述反复用心读了几遍还是似懂非懂,很无奈,为啥书写的那么晦涩,其实本人特别不理解一些概念为啥搞的这么复杂,后来懂了其实并没有那么复杂...

2018-04-09 21:02:58 422 0

原创 java的静态代理和动态代理

概念 代理我最先接触这个概念应该是设计模式,但是之前没怎么在意,了解的也不深,后来想把spring事务这块研究下又涉及到了spring aop,然后又对spring aop有了新的认识,aop的原理就是动态代理,想要了解动态代理就要了解静态代理。 这件事也使我认识一些道理: 学习是不可以偷...

2018-04-09 16:56:06 424 0

原创 spring配置文件头

之前一直没有注意过spring xml文件头,一直以来都是复制黏贴现成的模板,后来需要加个东西,发现涉及文件头部所以就因此好奇,这个东西是干啥的呢? 这个就是文件的头部了,前面的xml:xxx=”URL”都是命名空间, xmlns="http://www.springframew...

2018-04-08 16:43:46 1699 0

原创 迭代器

引入 一直以来感觉迭代器可有可无,都有for循环遍历为啥还弄个迭代器呢?也没有去在意区别,其实是自己太局限,jdk编写了肯定有它存在的意义。 与for循环的区别 先上代码 List<Integer> l = new ArrayList<In...

2018-03-02 11:57:06 463 0

原创 Session

介绍 产生背景 session是为了解决什么问题出现的呢? http是无状态的协议,用户登录网站进来之后需要发送一些请求需要一些“状态”信息,如某些请求需要用户的Id才能完成,怎么知道这个操作用户的Id? 那么session就产生了,用户登录之后产生一个session对象,sessio...

2018-02-27 20:51:51 416 0

原创 数据库该不该使用外键

问题引入 以前的意识里都是需要建立外键,外键能起到约束作用,能保证数据的完整性和一直性,比如如果没有外键约束,你自己程序控制又不到位把基本信息都删除了,详情却存在,人的基本信息不存在了,工资信息里却存在这个人,想要找这个人究竟是谁都找不到。 今天看到原来的外键都被去掉了,问了下组长,结果回答就...

2018-02-06 18:19:10 5152 1

原创 微信公众平台java接入

环境准备java开发环境不必多少,由于微信公众平台是线上平台所以你提供的url肯定是要外网可以访问的,所以我们需要第三方开发平台把我们的内网映射成外网,我使用的是Sunny-Ngrok,免费且方便,进入网页下载客户端,怎么使用后面再说,我们先需要配置隧道如下: 注意:必须以http://或htt...

2017-10-09 20:52:12 2103 1

原创 并发之对象的组合

前面我们通过线程安全性和并发之对象的共享大概了解了线程安全和同步的一些基本知识。然而我们并不希望每一次内存访问都进行分析以确保是线程安全的。本章介绍一些组合模式,通过...

2017-09-25 09:58:52 515 0

原创 java i++和++i的区别

java i++和++i的区别

2017-09-21 16:20:32 1023 0

原创 并发之对象的共享

前面《线程安全性》介绍了竞态条件导致状态共享成为不可能,需要原子性操作,要确保原子性操作需要加锁。可能大家都觉得加锁只是为了确保原子性操作,但是当前线程修改了对象状态之后怎么让其他线程发现呢(内存可见性)? 所以...

2017-09-19 10:06:11 1034 0

原创 线程安全性

要编写线程安全的代码,其核心在于对状态访问操作进行管理,特别是对共享的和可变的状态进行访问。 共享变量是指可由多个线程同时访问,而可变的意味着其值可在其在生命周期内可发生变化...

2017-09-16 17:23:55 507 0

原创 B+Tree

B+Tree是B-Tree的变型,更适用于文件索引系统。 定义 B+Tree和B-Tree的差异在于: 有n颗子树的节点中含有n个关键字; 所有的叶子节点包含了全部关键字信息,以及指向这些关键字记录的指针,且叶子节点本身的关键字按从小到大关键字连接。 所有的关键字可以看成索引部分,节点...

2017-09-14 19:31:52 888 0

原创 B-Tree

以节点为单位进行查找适用于存储在内存中的较小文件,叫做内查找。如果文件很大还用内查找需要频繁的进行内、外存进行交换,很麻烦。B-Tree(平衡多叉树)是一种适用于外查找的数据结构,一般用于磁盘系统管理以及数据库索引组织。 平衡树:左右子树的深度之差绝对值不超过1,并且左右子树都是平衡树,控制平衡...

2017-09-14 17:50:47 332 2

原创 平衡二叉树

定义二叉树的查询速度取决于树的结构,树的深度越小查找的平均速度就越小,因此希望二叉树的高度尽可能小。前苏联科学家Adelson-Velskii和Landis......

2017-09-13 17:16:57 628 0

原创 二叉排序树

定义二叉排序树(Binary Sort Tree)又称二叉查找树,对排序和查找非常有用的数据结构......

2017-09-13 13:49:27 274 0

原创 创建mysql性能索引

简介 索引在mysql叫做“键(key)”是存储引擎用于快速查找记录的一种数据结构,这是索引的基本功能...... 索引基础

2017-09-13 09:49:25 298 0

原创 java8之Lambda表达式

Lamdba的出生Lamdba的出现是解决什么痛点呢?出现之后有没有带来新的问题呢?该不该使用它?什么情况下适合使用它?

2017-08-14 14:49:13 243 0

原创 Java8之Stream

前言 Stream 流?第一眼看起来以为是jdk1.8对I/O流的一个扩充,后来仔细看并不是的......

2017-08-11 14:44:11 220 0

原创 java 类静态代码块变量和类成员命名一样

java 类静态代码块变量和类成员命名一样

2017-07-25 15:28:43 830 1

原创 初识dubbo(阿里巴巴分布式服务框架)

为什么需要分布式服务架构 架构的发展史 单一应用: 用户请求数量不多,将所有功能部署在一起也能满足响应速......

2017-07-24 14:52:58 411 0

原创 java 集合(含数组)添加元素的原理

java 集合(含数组)添加元素的原理

2017-07-20 20:06:21 1523 0

原创 java常用的设计模式

设计模式简介 了解设计模式之前必须要知道设计模式作用,使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样......

2017-06-27 17:43:04 231 0

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