自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (11)
  • 收藏
  • 关注

转载 Spring事务源码原理详解

通过this调用事务方法时,this 对象是普通的对象,不是被代理过的类,所以事务不会生效。通过private修饰的事务方法,无法被Spring 动态代理,所以事务不会生效。事务方法必须使用public修饰。通过final、static修饰的事务方法,由于方法无法被重写,无法被Spring 动态代理,所以事务不会生效。

2024-03-25 17:43:03 11 1

原创 java8:LinkedList的实现原理

1、LinkedList 的底层结构是一个带头/尾指针的双向链表,可以快速的对头/尾节点进行操作。2、相比数组,链表的特点就是在指定位置插入和删除元素的效率较高,但是查找的效率就不如数组那么高了。

2024-03-18 10:48:43 537

原创 java8:ArrayList与Vector的实现原理

1、ArrayList 创建时的大小为 0;当加入第一个元素时,进行第一次扩容时,默认容量大小为 10。2、ArrayList 每次扩容都以当前数组大小的 1.5 倍去扩容。3、Vector 创建时的默认大小为 10。4、Vector 每次扩容都以当前数组大小的 2 倍去扩容。当指定了 capacityIncrement 之后,每次扩容仅在原先基础上增加 capacityIncrement 个单位空间。

2024-03-18 10:20:38 557

原创 java8:ConcurrentHashMap源码分析

注意,调用这个方法,得到的初始容量和我们之前讲的HashMap以及jdk7的ConcurrentHashMap不同,即使你传递的是一个2的幂次方数,该方法计算出来的初始容量依然是比这个值大的2的幂次方数。② 当添加完元素后,判断当前元素个数达到了扩容阈值,此时发现sizeCtl的值小于0,并且新数组不为空,这个时候,会去协助扩容。为正数,如果数组未初始化,那么其记录的是数组的初始容量,如果数组已经初始化,那么其记录的是数组的扩容阈值。为0,代表数组未初始化, 且数组的初始容量为16。

2024-03-15 11:43:12 973

转载 volatile 关键字解析

摘要:在 Java 并发编程中,要想使并发程序能够正确地执行,必须要保证三条原则,即:原子性、可见性和有序性。只要有一条原则没有被保证,就有可能会导致程序运行不正确。volatile关键字被用来保证可见性,即保证共享变量的内存可见性以解决缓存一致性问题。一旦一个共享变量被 volatile关键字 修饰,那么就具备了两层语义:内存可见性和禁止进行指令重排序。

2024-03-14 15:57:24 531

原创 线程工具类与原子类

CountDownLatch 一般用于某个线程 A 等待若干个其他线程执行完任务之后,它才执行;CyclicBarrier一般用于一组线程互相等待至某个状态,然后这一组线程再同时执行;CountDownLatch是不能够重用的,而 CyclicBarrier 是可以重用的(reset)。Semaphore和锁有点类似,它一般用于控制对某组资源的访问权限。

2024-03-14 09:38:04 862

原创 多线程锁.

偏向锁:适用于单线程适用的情况,在不存在锁竞争的时候进入同步方法/代码块则使用偏向锁。轻量级锁:适用于竞争较不激烈的情况(这和乐观锁的使用范围类似), 存在竞争时升级为轻量级锁,轻量级锁采用的是自旋锁,如果同步方法/代码块执行时间很短的话,采用轻量级锁虽然会占用cpu资源但是相对比使用重量级锁还是更高效。重量级锁:适用于竞争激烈的情况,如果同步方法/代码块执行时间很长,那么使用轻量级锁自旋带来的性能消耗就比使用重量级锁更严重,这时候就需要升级为重量级锁。

2024-03-13 17:11:15 1018

原创 多线程概述

FutureTask是Future接口的唯一的实现类RunnableFuture同时实现了Runnable接口与Future接口,FutureTask实现了RunnableFuture接口,且构造方法接收Callable入参,所以它既可以作为Runnable被线程执行,又可以作为Futrue得到Callable的返回值。/***/Thread t1 = new Thread(futureTask , "继承Callable线程");

2024-03-13 10:47:46 996 1

原创 Java进程CPU高负载排查

CPU飙升问题定位的一般步骤是:1.首先通过top指令查看当前占用CPU较高的进程PID;2.查看当前进程消耗资源的线程PID: top -Hp PID3.通过print命令将线程PID转为16进制,根据该16进制值去打印的堆栈日志内查询,查看该线程所驻留的方法位置。4.通过jstack命令,查看栈信息,定位到线程对应的具体代码。5.分析代码解决问题。

2024-03-12 17:27:41 706 1

转载 ThreadLocal 的原理及问题

ThreadLocal 是线程内部的数据存储类,每个线程中都会保存一个ThreadLocal.ThreadLocalMap threadLocals = null;,ThreadLocalMap 是 ThreadLocal 的静态内部类,里面保存了一个 private Entry[] table 数组,这个数组就是用来保存 ThreadLocal 中的值。通过这种方式,就能让我们在多个线程中互不干扰地存储和修改数据。

2024-03-12 17:15:42 16 1

原创 Synchronized 锁升级优化

JVM 在 JDK1.6 中引入了分级锁机制来优化 Synchronized,当一个线程获取锁时,首先对象锁将成为一个偏向锁,这样做是为了优化同一线程重复获取导致的用户态与内核态的切换问题;其次如果有多个线程竞争锁资源,锁将会升级为轻量级锁,它适用于在短时间内持有锁,且分锁有交替切换的场景;偏向锁还使用了自旋锁来避免线程用户态与内核态的频繁切换,大大地提高了系统性能;但如果锁竞争太激烈了,那么同步锁将会升级为重量级锁。减少锁竞争,是优化 Synchronized 同步锁的关键。

2024-03-12 17:13:05 1030 1

原创 Synchronized

输出结果总结一个对象里面如果有多个非静态synchronized方法,某一个时刻内,只要一个线程去调用其中的一个synchronized方法了, 其它的线程都只能等待,换句话说,某一个时刻内,只能有唯一的一个线程去访问这些synchronized方法 锁的是当前对象this,被锁定后,其它的线程都不能进入到当前对象的其它的synchronized方法。当一个线程正在访问一个对象的非静态 synchronized 方法,那么其他线程不能访问该对象的其他 非静态synchronized 方法。

2024-03-12 16:57:39 812 1

原创 zookeeper简介

Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。

2024-01-16 11:47:50 3200

原创 zookeeper集群搭建

复制/opt/apache-zookeeper-3.5.7/conf/ 这个目录下的 zoo_sample.cfg 为 zoo.cfg,将原先的配置文件修改为zoo_sample.cfg.bak。dataDir:保存Zookeeper中的数据,注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录。就是 A 的值,Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比。复制文件至其它服务器,修改其对应myid文件为2,3。

2024-01-16 11:46:36 1063 1

原创 java8:HashMap的实现原理

这个哈希表是基于 Map 接口的实现的,它允许 null 值和null 键,它不是线程同步的,同时也不保证有序。Map 的这种实现方式为 get(取)和 put(存)带来了比较好的性能。但是如果涉及到大量的遍历操作的话,就尽量不要把 capacity 设置得太高(或 load factor 设置得太低),否则会严重降低遍历的效率。影响 HashMap 性能的两个重要参数:“initial capacity”(初始化容量)和”load factor“(负载因子)。

2023-08-24 17:04:30 241 1

原创 Springboot配置热部署

一、添加热部署依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <opti...

2019-08-03 15:55:26 457

原创 centos安装jenkins以及初始化配置

一、下载jenkins下载地址:点击下载稳定jenkins选择自己需要的版本下载!](https://img-blog.csdnimg.cn/20190330202145711.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h...

2019-03-31 00:18:57 14183 1

原创 centos安装maven

一、下载mavenmaven历史版本选择要下载的版本二、安装maven1、进入maven安装包所在的目录cd /opt2.解压maven安装包tar -zxvf apache-maven-3.5.0-bin.tar.gz三、配置环境变量1.编辑配置文件vim /etc/profile2.添加maven环境变量M2_HOME=/opt/apache-mave...

2019-03-30 18:43:19 272

原创 Centos安装git

CentOS版本:centos6.8一、下载git安装包下载git安装包二、安装git1、使用git bash 连接到CentOSssh 用户账号@ip ssh [email protected]、安装编译git 时需要的包yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-deve...

2019-03-30 17:45:16 247

原创 CentOS安装Tomcat

CentOS版本:CentOS-6.8-x86_64一、解压下载的Tomcattar -zxvf apache-tomcat-7.0.70.tar.gz二、配置环境变量vim /etc/profileTOMCAT_HOME=/opt/apache-tomcat-7.0.70PATH=//opt/apache-tomcat-7.0.70/bin:$PATHexport TOMCA...

2019-03-30 16:18:21 188

原创 Centos安装JDK

CentOS版本:CentOS-6.8-x86_64一、官网下载jdk官网下载二、安装JDK一、使用xftp上传下载好的JDK二、解压下载的JDKtar -zxvf jdk-7u79-linux-x64.gz二、配置环境变量vim /etc/profile使用G定位到文件末尾JAVA_HOME=/opt/jdk1.7.0_79PATH=/opt/jdk1.7.0_7...

2019-03-30 15:54:51 140

原创 MySQL 1130错误,无法远程连接

一、错误描述错误:ERROR 1130: Host ‘xxx.xxx.xxx.xxx’ is not allowed to connect to thisMySQL serve错误1130:主机’xxx.xxx.xxx.xxx”不允许连接到thismysql服务原因:被连接的数据不允许使用 'xxx.xxx.xxx.xxx访问,只允许是用 localhost;)二、解决办法:一、mys...

2019-03-29 19:49:45 11382

原创 Centos安装mysql

安装MySQL一、卸载旧版本使用下面的命令检查是否安装有MySQL Serverrpm -qa | grep mysql有的话通过下面的命令来卸载掉目前我们查询到的是这样的:[root@centos6 opt]# rpm -qa | grep mysqlmysql-libs-5.1.73-7.el6.x86_64如果查询到了,就删除吧普通删除模式rpm -e mysql-li...

2019-03-29 16:09:02 110

原创 linux搭建JavaEE开发环境(持续更新)

安装JDK一、解压下载的JDKtar -zxvf jdk-7u79-linux-x64.gz二、配置环境变量vim /etc/profile使用G定位到文件末尾JAVA_HOME=/opt/jdk1.7.0_79PATH=/opt/jdk1.7.0_79/bin:$PATHexport JAVA_HOME PATH注意:1、需要在PATH目录后面添加 “ :$PATH...

2019-03-29 00:13:29 3707

原创 linux安装(虚拟机)

检查BIOS虚拟化支持

2019-03-20 23:12:40 256

原创 MyBatis-@param注解详解

@param参数注解一、@Param注解单一属性dao层示例Public User selectUser(@param(“userName”) String name,@param(“userpassword”) String password);xml映射对应示例&amp;amp;amp;amp;amp;amp;amp;lt;select id=&amp;amp;amp;amp;amp;amp;quot; selectUser&amp;amp;amp;amp;amp;a

2019-03-03 10:53:12 19402 2

转载 spring validation完成数据后端校验

一、前言数据的校验是交互式网站一个不可或缺的功能,前端的js校验可以涵盖大部分的校验职责,如用户名唯一性,生日格式,邮箱格式校验等等常用的校验。但是为了避免用户绕过浏览器,使用http工具直接向后端请求一些违法数据,服务端的数据校验也是必要的,可以防止脏数据落到数据库中,如果数据库中出现一个非法的邮箱格式,也会让运维人员头疼不已。我在之前保险产品研发过程中,系统对数据校验要求比较严格且追求可变性...

2019-03-01 16:51:17 270

pandoc-2.7.3-windows-x86_64.zip

pandoc-2.7.3-windows-x86_64.msi

2019-08-13

Junit4.zip

里面包括junit-4.12.jar,hamcrest-core-1.3.jar

2019-07-15

TortoiseGit-2.8.0.0-64bit.msi+TortoiseGit-LanguagePack-2.8.0.0-64bit-zh_CN.msi

包含TortoiseGit-2.8.0.0-64bit.msi+TortoiseGit-LanguagePack-2.8.0.0-64bit-zh_CN.msi

2019-03-19

Java编程思想第四版完整中文高清版(含书中源码与jar包)(688页版本)

《Java编程思想(第4版)》书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、Iava’UO系统、枚举类型、并发以及图形化用户界面等内容。这些丰富的内容,包含了Java语言基础语法以及高级特性,适合各个层次的Java程序员阅读,同时也是高等院校讲授面向对象程序设计语言以及Java语言的绝佳教材和参考书。  从《Java编程思想(第4版)》一书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书的作者拥有多年教学经验,对c、c++以及Java语言都有独到、深入的见解,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。

2019-03-01

jdk-1.6中文版+Java-ee中英文对照chm开发文档

jdk-1.6中文版+Java-ee中英文对照chm开发文档。

2018-12-17

Oracle数据库驱动包

资源包括:ojdbc5.jar,ojdbc6.jar,ojdbc6_g.jar。

2018-12-11

struts-2.3.24所有架包

该压缩包包含Struts2开发的所有架包。。。。。。。。。。。。。。。。。

2018-06-18

MySQL5.1参考手册

是关于5.1版至5.1.2-alpha版MySQL数据库系统的参考手册。该手册不适用于旧版本MySQL软件,这是因为在MySQL 5.1和以前的版本存在很多功能性差异和其他差异。如果正在使用MySQL软件的较旧版本,请参阅MySQL 5.0参考手册,该手册涵盖了MySQL 5.0,或参阅MySQL 4.1参考手册,该手册涵盖了MySQL 4.1以及MySQL的所有早期版本。在手册的文本中,通过引用发布版本号(5.1.x),注明了MySQL 5.1的二级版本。

2018-06-18

json基础架包

该压缩文件包含的架包为:commons-beanutils-1.8.0.jar,commons-collections-3.2.1.jar,commons-lang-2.6.jar,commons-logging-1.1.1.jar,ezmorph-1.0.6.jar,json-lib-2.4-jdk15.jar,xom-1.2.6.jar

2018-06-18

jstl基本架包

该压缩包含的架包为:jstl.jar,standard.jar,有需要的可以下载

2018-06-18

hibernate核心架包+MySQL+SQLserver数据库驱动包

该文件夹中包含的架包如下:antlr-2.7.7.jar,dom4j-1.6.1.jar,hibernate-commons-annotations-4.0.2.Final.jar,hibernate-core-4.2.4.Final.jar,hibernate-jpa-2.0-api-1.0.1.Final.jar,javassist-3.15.0-GA.jar,jboss-logging-3.1.0.GA.jar,jboss-transaction-api_1.1_spec-1.0.1.Final.jar,jtds-1.2.jar,junit-4.10.jar。

2018-06-18

空空如也

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

TA关注的人

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