自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 web.xml中servlet的配置解释

一、首先web.xml配置文件是非必须的,如果你的web项目没有servlet、filter等的配置的时候,当然是不需要web.xml的配置文件。web.xml配置文件是用来初始化项目的配置的,比如Welcome页面、servlet、servlet-mapping、filter、listener、...

2020-02-05 11:53:49

阅读数 59

评论数 0

原创 消息中间件之rabbit mq

公司用的消息中间件是rabbit mq 并在此基础上进行了一些封装 故而进行研究一番。 官方文档学习基础知识 rabbit mq 运行在erlang环境之上,所以对应erlang支持的平台环境 rmq都支持 以下的平台是Erlang语言所支持的,因此RabbitMQ可以运行其上: Sola...

2019-12-26 14:24:46

阅读数 82

评论数 0

原创 线程join之底层分析

一、线程的五种状态及相互转换条件 从操作系统的角度,线程分为就绪、运行和阻塞三种状态。 线程的生命周期   创建:一个新的线程被创建,等待该线程被调用执行;   就绪:时间片已用完,此线程被强制暂停,等待下一个属于它的时间片到来;...

2019-12-23 18:13:00

阅读数 25

评论数 0

原创 记Tomcat删除war包问题

由于不清楚tomcat部署原理,误认为tomcat部署完成之后,可以把war删除,然后以后每次部署,只需要增量部署就行了,然后还怕由于war包的存在,增量部署的内容会被覆盖掉,不清楚war包什么时候会自动重新部署。 于是,,rm -rf mm.war---尴尬了。。删除war包之后,发现解压的项...

2019-11-13 11:50:48

阅读数 30

评论数 0

原创 Spring实现事务的原理

Spring是通过AOP实现事务的,我们都知道,Spring的AOP是基于代理实现的,代理分两种,一种是JDK,一种是CGlib,JDK动态代理要求代理类必须实现一个接口,因为具体实现的时候,需要根据接口类型动态构造代理类对象。而Spring就是在代理类调用invoke方法之前或之后加上一些公共的...

2019-11-12 23:37:44

阅读数 26

评论数 0

原创 java基础面试题

一、面向对象和面向过程区别 1、面向对象比面向过程性能低,因为类的实例化需要耗费性能。 2、面向对象比面向过程更易复用、易拓展、易维护。 java性能差的主要原因并不是因为它是面向对象语言,而是因为它编译过后并不是能直接能在机器上执行的机器码,而是字节码,还需要边解释边执行,所以效率低。 那么为什...

2019-11-03 19:15:50

阅读数 9

评论数 0

原创 Volatile关键字

基础知识补充: 主内存和cpu之间的关系,因为cpu是在是处理速度太快了。所以一般cpu都有一个cpu缓存,上图的意思是主内存---》cpu缓存---》cpu寄存器---》cpu执行处理,写的时候反之。 看上图,就是多线程情况下java操作变量的大致步骤,需要注意的是,多线程操作的变...

2019-11-01 23:56:22

阅读数 17

评论数 0

原创 HashMap的扩容

HashMap默认数组大小是16,研究表明,当数组长度为2的n次幂的时候,不同的key算得的index相同的几率较小,数据在数组上分布的比较均匀,也就是产生hash碰撞的几率比较小,相对的,数据存放在链表上的几率比较小,查询效率也就比较高了。 所以在存储大数量数据的时候,最好指定hashmap的s...

2019-11-01 14:33:40

阅读数 9

评论数 0

原创 hashMap的put原理

HashMap的put过程详解 HashMap结构 HashMap是一个数组+链表构成的哈希表结构,支持多种数据结构,key和value都可以为null,但是key只能有一个为null;key和value都不可以存放基本数据类型,可以存放他们的封装类;key可以是任意对象,需要重写hashc...

2019-10-31 17:22:08

阅读数 27

评论数 0

原创 Spring原理

2019-10-24 22:53:26

阅读数 10

评论数 0

原创 Mysql索引失效的问题

mysql索引失效的情况: 索引字段使用函数表达式 索引字段使用like,以%开头如:like %id;--不使用索引;like id%--可以使用索引 or的使用,但并不是所有的or都会使索引失效,如果or连接的所有条件字段都设置了索引,那么还是会走索引的;一旦有一个条件没有建立索引,那么就会走...

2019-10-23 18:01:21

阅读数 10

评论数 0

原创 shiro实现单点登录

需求:实现同一个账号同一个时刻只能在一个IP浏览器登录,后者把前者挤掉线。 实现:通过shiro的session管理机制进行实现。 我的理解:shrio有一套sessionmanager的管理器,用来管理登录用户的session。不同的用户每次登录都会生成一个sessionid,保存在shrio框...

2019-10-23 14:19:28

阅读数 13

评论数 0

原创 记一次oracle sql语句未提交引起的生产问题

问题:今天帮助同事排查生产问题,遇到一个oracle执行语句未提交引起的坑。以下记录警醒自己。 现象:页面上某一个按钮点击之后,总会有不确定性的延迟--并不是正常延迟。 排查:查看日志,发现总是执行到一个服务中,执行失败。这个服务中有三条sql语句,前两条是更新update,第三条是删除del...

2019-10-14 22:09:53

阅读数 14

评论数 0

原创 记一次map中null坑

现象:前端ajax的post请求中的date中不存在store_code字段,但是后端controller由于逻辑复用需要使用request.getParamter("store_code");然后将该值放到pack(公司框架定义的一个数据结构,用户生成json类型的报文。支持...

2019-09-27 17:55:05

阅读数 44

评论数 0

原创 记静态常量遇到的坑

场景: public class TppsPath { static final String name = "小花"; } public class Test { public static void main(String args[]){ System.Out...

2019-09-27 16:36:23

阅读数 17

评论数 0

原创 僵尸进程

linux部署程序 场景:项目启动是按照启动脚本进行启动的,启动脚本是start.sh 现象:启动脚本启动之后,有些请求总是请求不过来,而且重启服务,使用kill -9 pid根本杀不死。 分析:当时毫无头绪,上网搜索发现可以查看一下程序是否存在僵尸进程。 僵尸进程产生的原因是由于子进程被杀死了,...

2019-09-27 11:29:55

阅读数 10

评论数 0

原创 ORACLE实现更改列字段类型为CLOB

场景:更改表TBL_MER_BASE_INFO_R_EXPAND 中的QRCODE_DATA列字段类型为CLOB类型 SQL: alter TABLE TBL_MER_BASE_INFO_R_EXPAND ADD(temp_clob CLOB);//给表新增一个clob类型的列 update ...

2019-09-25 11:42:44

阅读数 242

评论数 0

原创 简谈Java反射机制

Java反射的概念 Java反射是指在程序运行过程中能动态获取类的各种信息,在Java中,只要给定确定的类名,就能通过反射机制获取类的所有信息。反射机制的优点就是可以实现动态创建对象和编译,体现出很大的灵活性。它的缺点是对性能有影响。使用反射,相当于需要先编译,再执行,比起已经经过编译的代码,执...

2019-09-22 11:02:27

阅读数 16

评论数 0

转载 Java代码块执行顺序问题

目录 一、知识基础 二、魔鬼实战  一、知识基础 1.静态块: static{ System.out.println("This is a 静态块");} 执行时间:类加载时只执行一次,时间上优先于主函数 ; 存储区域:静态代码块中声明的变量或对象以及静态变...

2019-09-22 10:46:06

阅读数 13

评论数 0

转载 Java 链表、栈、队列底层实现原理

目录 一、自定义类实现链表 二、自定义类实现栈 三、自定义类实现队列 一、自定义类实现链表 1.定义节点的数据类型 public class NodeClass<T> { private T Date; //数据 private NodeClass<T> Next;...

2019-09-21 19:32:08

阅读数 14

评论数 0

原创 Java的反射机制

java反射机制 反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息。 Class.forName("com.mysql.jdbc.Driver.class").newInstance();//这句代码就是用...

2019-09-21 18:45:23

阅读数 15

评论数 0

原创 浅谈Java的代理模式

概念:代理模式是一种设计模式,是为了在不变动目标对象(类)源码的情况下,进行目标对象现有功能的拓展。保证不修改原有类的同时(即满足对扩展开放,对修改关闭的原则),对原有类增加一些功能实现。 1、静态代理(代理类需要自己写) 定义:静态代理就是在编译时就确定了代理类与被代理类的关系。因为在编...

2019-09-21 17:29:47

阅读数 11

评论数 0

原创 Java new一个对象的微观过程

1、从JVM的角度 1.1 类加载检查--虚拟机遇到一条new指令的时候,jvm先判断类是否已经被加载、解析、初始化过(常量池中)。 1.2 分配内存空间--一个对象的内存存储布局分为:对象头(类型指针+对象本身运行时数据,如hash码、GC分代年龄等)、实例数据、对齐填充。根据J...

2019-09-21 10:21:33

阅读数 22

评论数 0

原创 http请求的url或body或header有长度或大小的限制吗?

http请求的url或body或header有长度或大小的限制吗? 首先:http协议对url长度是没有限制的。HTTP协议不对URI的长度作事先的限制,服务器必须能够处理任何他们提供资源的URI,并且应该能够处理无限长度的URIs,这种无效长度的URL可能会在客户端以基于GET方式的请求时产生。...

2019-09-20 15:31:34

阅读数 2539

评论数 0

原创 java基础面试题

hashmap的变更:JDK1.8之前,hashmap采用链表数组数据结构实现存储,hashmap初始大小是16,每次扩容为原来的2倍。 JDK1.8之后,引入了红黑树,当产生hash碰撞导致某链表长度大于8时,自动转换为红黑树进行存储,方便查找。 红黑树,平衡二叉树,左孩子小于父节点...

2019-09-17 21:47:55

阅读数 21

评论数 0

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