自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 JDBC详解和相关组件详解

JDBC是java定义的一系列接口,然后由各厂商去实现,java是主导者定制标准,各大厂商去实现 独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源。点开mysql-connector-java包->meta-inf->services->java.sql.Driver,会有加载的驱动名称om.mysql.cj.jdbc.Driver。设置参数,下标从1开始。

2023-03-22 15:21:47 284

原创 异常执行顺序-try catch finally return

异常执行顺序

2023-02-06 17:14:14 318

原创 Git 从master拉取代码创建新分支 修改合并到master并删除分支

git操作

2023-01-31 12:54:24 1697

原创 踩坑值int和Integer比较之空指针异常

int与integer的比较大小

2021-12-28 10:55:15 1764

原创 分布式锁Redisson的源码总结--可重入锁篇

最近在看Redisson的源码,用了将近一周的时间终于看完了,现在总结一下比较重要的一些点,如果不够仔细,还请各位指出问题所在,如下是可重入锁的源码1. 创建锁RLock lock = redisson.getLock("mylock");创建的是RedissonLock2. lock.lock()或者lock.lock(1000,TimeUnit.SECONDS);如果传入leasetime也就是上文的1000,则leasetime就是用传入的值,否则默认使用30000ms,也就是3...

2021-06-26 16:47:36 318

转载 Linux如何查看JDK的安装路径

如何在一台Linux服务器上查找JDK的安装路径呢? 有那些方法可以查找定位JDK的安装路径?是否有一些局限性呢? 下面总结了一下如何查找JDK安装路径的方法.1:echo $JAVA_HOME使用$JAVA_HOME的话能定位JDK的安装路径的前提是配置了环境变量$JAVA_HOME,否则如下所示,根本定位不到JDK的安装路径[root@localhost ~]# java -versionjava version "1.7.0_65"OpenJDK Runtime Enviro.

2020-07-23 23:48:19 162

原创 windows下配置tomcat的GClog

step1.找到配置文件进入tomcat安装目录的bin文件夹 window下找到catalina.bat(Linux是catalina.sh)配置JAVA_OPTS参数,主要是红色部分。我这里配置的是tomcat目录/log目录下step2.配置文件在set "JAVA_OPTS=%JAVA_OPTS% ……"下添加如下语句(……的意思是可能有别的信息)set "JAVA_OPTS=%JAVA_OPTS% -verbose:gc -XX:+PrintGCDetails -XX:+Prin

2020-06-23 23:29:22 648

原创 配置tomcat psi-probe

step1.新建文件%tomcat_home%/conf/Catalina/localhost/manager.xml内容如下<?xml version="1.0" encoding="UTF-8"><Context privileged="true" antiResourceLocking="false"docBase="${catalina.home}/webapps/manager"><Valve className="org.apac...

2020-06-22 22:55:49 245

转载 Redis 6.0.0 稳定版发布

Redis的作者在博客上宣布:Redis 6.0.0 稳定版发布了。原文地址:http://antirez.com/news/132那么,从RC1到今天,除了稳定之外,还有什么变化呢?1、重新设计了客户端缓存,特别是放弃了caching slot,而只使用key names。2、现在Redis支持这样一种模式:如果用于复制的RDB文件不再有用,它将立即删除。在某些环境中,最好不要...

2020-05-03 12:49:07 320

原创 CentOS6上安装Python3.7“No module named '_ctypes'”问题解决

今天在cenos上安装Python3.7.0的时候,遇到一个问题:在执行make install的时候,总是报ModuleNotFoundError: No module named ‘_ctypes’,后来查了一下,发现基本都一样,都是你抄我的,我抄你的,就是3.7版本用到外部模块_ctypes,需要一个新的包libffi-devel,安装此包之后再执行make&&make in...

2020-02-22 00:25:01 1060 1

转载 JVM内存结构 内存模型 内存对象

JVM内存结构、Java内存模型和Java对象模型,是什么首先,这三个概念是完全不同的三个概念。本文主要目的是对这三个概念加以区分以及做简单的介绍。而这每一个知识点都是又都是比较复杂的。以后会单独写文章做详细介绍。Jvm内存结构我们都知道,Java代码是要运行在虚拟机上的,而虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途。其中有些...

2020-02-20 14:47:25 143 1

原创 网址 URL 路径加斜杠“/”和不加的区别

最近群友提了一个问题,爬虫闯关第三关时,发现被爬网址最后不加 /,就出现一直没有正确响应的情况,我打开浏览器的调试模式看了下,发现不加 / 时,地址返回的是 301 MOVED PERMANENTLY,怪不得哦~但是我也发现有些网址结尾带有斜杠,而有的网址后面没有带斜杠,这个斜杠到底是干嘛的?加不加有什么区别呢?又为什么我们在浏览器地址栏上打出一个网址,按回车后地址末尾会自动加上一个反斜杠?...

2019-12-09 14:23:03 6801

原创 new String与toString的区别

今天在学习rabbitmq的时候,消费端转换出的消息总是类描述,查了一下,是因为解析byte的时候用了.toString,应该用new Stringbyte[]字节数组的toString()获得的字符串,和使用new String(byte[]) 构造一个新的字符串。得出的结果不同。Java对象都继承于Object,Object中提供了toString方法,用于简单返回该类的类签名。在Ja...

2019-12-07 23:46:35 380

原创 rabbitMQ重启

重启rabbitmq服务通过两个命令:rabbitmqctl stop:停止rabbitmqrabbitmq-server restart: 重启rabbitmq因为rabbitmqctl是没有restart命令的,所以需要这么两步

2019-12-01 17:47:19 6036

原创 RabbitMQ使用手册中文

原文地址https://blog.csdn.net/csdnzouqi/article/details/78926603

2019-11-30 17:34:04 2790

转载 mybatis IncompleteElementException:Could not find result map java.lang.String

MyBatis项目中在查询数据库时遇到org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.lang.String。原因了把resultType="java.lang.String" 写成了resultMap="java.lang.String" ,就会出错的,注意这是对你整...

2019-09-02 17:20:29 420

转载 TCP的三次握手与四次挥手理解

序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字...

2019-05-18 15:44:57 80

转载 java web项目下的lib和build path 中jar包问题解惑

一、build path&WEB-INFO/lib介绍build path:可以说是引用;WEB-INFO/lib:可以说是固定在一个地方;eclipse编译项目的时候是根据build path的,如果不用eclipse来发布项目的话,就会出现找不到jar,tomcat运行项目首先是在它自己的公共lib里找jar,如果找不到的话就会去项目的WEB-INFO/lib目录找,如果找不...

2019-04-22 12:45:55 1004

原创 sqlplus执行单个sql脚本和批量sql脚本

用PL/SQL在oracle下执行多个SQL脚本的方法:PL/SQL developer----->File------>New---->command window然后在弹出的窗口里依次执行:SQL> @f:\abc\a.sql;SQL> @f:\abc\b.sql;SQL> @f:\abc\c.sql;SQL*Plus 中执行多个*.sql脚本文...

2019-04-20 11:07:15 6638

原创 NIO使用总结

服务端创建关键步骤1) 创建服务端启动类对象(ServerBootstrap)2) 设置线程组(Boss 线程组和 Worker 线程组)3) 设置服务端 channel 对象(NioServerSocketChannel)4) 设置 ChanelHandler 对象5) 绑定并启动端口监听(等待客户端链接)2. 服务端代码实现代码如下:创建事件服务器public class ...

2019-03-20 17:37:40 112

转载 一致性哈希算法(consistent hashing)的理解

一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:1、平衡性(Balan...

2019-03-16 22:34:04 94

转载 关于jar包add to build path与放入lib下的区别

一、add to build path比如某A.jar放在C盘,而你的classpath设置的是D盘的某些路径,如果你将A.jar包add to build to path,实际上是额外增加了一个对C盘这个jar包路径的引用,A.jar的物理路径没有发生改变。另外,这里引入的只是我们编译用到的jar包。二、将jar包放入lib下这时是指A.jar真实的放在了webroot下的lib文件...

2019-02-28 11:04:39 783

转载 类(型)的生命周期--装载、连接、初始化、卸载

Java虚拟机通过装载、连接和初始化一个Java类型,使该类型可以被正在运行的Java程序所使用。 1.       装载 装载阶段包括三个基本动作: a)         通过该类型的完全限定名,产生一个代表该类型的二进制数据流。b)         解析这个二进制数据流为方法区的内部数据结构(方法区)c)         创建一个表示该类型的java.lang....

2018-12-03 15:54:19 184

原创 java中static详解

今天在看《Thinking in Java》时,看到文章介绍静态。就想再深入钻研一下,记几个注意事项:首先,static 是Java中的一个关键字,我们不能声明普通外层类或者包为静态的1.静态变量:静态变量是属于类的,而不是属于类创建的对象或实例(当然,类对象实例也可以调用静态变量,效果和直接类.变量一样)。因为静态变量被类的所有实例共用,所以非线程安全的。通常静态变量还和关键字fin...

2018-12-03 11:38:26 174

转载 Eclipse中maven项目目录 Java Resources 和src区别

使用maven管理java web项目时,我们往往会被eclipse上展示的目录结构所迷惑,明明有个Java Resources包,为啥又冒出个src文件夹呢?我们先看看整体的目录结构:经过对比,可以发现src下多了一个webapp文件夹,这个文件夹里存放着项目所有页面资源。项目右键&gt;Properties&gt;Deployment Assembly。可以看到src/ma...

2018-11-11 22:35:55 4202

原创 数据结构--树基本概念

树是一种非线性的数据结构,是由n(n &gt;=0)个结点组成的有限集合。n=0时称为空树(1)每个元素称为结点(node);(2)有一个特定的结点被称为根结点或树根(root)。(3)除根结点之外的其余数据元素被分为m(m≥0)个互不相交的集合T1,T2,……Tm-1,其中每一个集合Ti(1&lt;=i&lt;=m)本身也是一棵树,被称作原树的子树(subtree)。节点的度:一...

2018-10-25 17:38:15 166

原创 算法之快速排序

快速排序采用的思想是分治思想。快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的正确位置。最后每个元素都是在排序后的正 确位置,排序完成。所以快速排序算法的核心算法是分区操作,即如何调整基准的位...

2018-10-24 17:07:28 77

原创 算法之数组模拟堆

一直对堆栈的理解是先进先出和先进后出,今天试着模拟了一下堆的处理代码如下:public class StackTest {    public int start=0;    public int end=-1;    public int count=0;    private int[] arr;    public StackTest() {        arr=new i...

2018-10-19 21:58:25 375

原创 算法之数组模拟栈

一直对堆栈的理解是先进先出和先进后出,今天试着模拟了一下栈的处理代码如下:public class ObjectImitateSteak {    public int position=-1;    public Object[] arr;        public ObjectImitateSteak() {        arr=new Object[10];    } ...

2018-10-19 17:14:54 201

原创 算法之基本排序 选择排序,冒泡排序,插入排序

一直想重温一下有关算法的内容,这几天项目上线,有时间看点东西,整理一下第一部分,三种基本排序 1冒泡排序 (1)原理:  1、从第一个数据开始,与第二个数据相比较,如果第二个数据小于第一个数据,则交换两个数据的位置。  2、指针由第一个数据移向第二个数据,第二个数据与第三个数据相比较,如果第三个数据小于第二个数据,则交换两个数据的位置。  3、依此类推,完成第一轮排序。第一...

2018-10-14 22:45:17 115

转载 解决:Failure to transfer org.apache.maven.plugins:maven-jar-plugin:pom:2.4 from错误

在使用Maven时出现以下错误: Failure to transfer org.apache.maven.plugins:maven-jar-plugin:pom:2.4 from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted ...

2018-07-04 12:51:38 850

转载 JS作用域作用域链详解

变量作用域在JavaScript中全局变量的作用域比较简单,它的作用域是全局的,在代码的任何地方都是有定义的。然而函数的参数和局部变量只在函数体内有定义。另外局部变量的优先级要高于同名的全局变量,也就是说当局部变量与全局变量重名时,局部变量会覆盖全局变量(如下面例子)。 var num = 1; //声明一个全局变量 function func() {   ...

2018-05-31 14:13:17 103

原创 淘宝标题效果

淘宝标题 固定大小 浏览器缩小的时候,两边空白会缩小,缩小到一定程度,中间标题才会缩小 &lt;div id='divpad'&gt;&lt;/div&gt; &lt;div id='divwapper'&gt; &lt;div id='divcontext'&gt;&lt;/div&gt; &lt;/div&gt; #divwapper{ height:50px; background-c...

2018-05-31 14:12:37 191

原创 java中流总体整理

前一段时间看了一下Java中流的概念,整理一下流根据输入方向的不同分为输入流,输出流根据处理单位的不同分为字节流,字符流根据作用不同分为节点流,处理流一般情况下是根据作用不同做区分:节点流: ByteArrayInputStream,CharArrayReader(对应的ByteArrayOutputStream和CharArrayWriter,以下省略)               FileIn...

2018-05-31 11:04:30 301

转载 字节编码不同和演变

GBK编码,一个汉字占两个字节,英文字母占两个字节。UTF-8编码是变长编码,通常汉字占三个字节,扩展B区以后的汉字占四个字节,英文字母占两个字节。UTF-16编码,通常汉字占两个字节,CJKV扩展B区、扩展C区、扩展D区中的汉字占四个字节(一般字符的Unicode范围是U+0000至U+FFFF,而这些扩展部分的范围大于U+20000,因而要用两个UTF-16),英文字母占两个字节。unicod...

2018-05-26 15:45:04 303

原创 研究数组和对象的深拷贝 浅拷贝

对于数组的深拷贝,浅拷贝网上的资料比较杂,自己整理一下,如有错误,请指出。首先什么是深拷贝,浅拷贝,大多数的说法是 深拷贝在复制数组的时候,在计算机中新开辟了一块内存,存放新复制的对象。原数组改变不影响复制的数组浅拷贝是只是复制了原数组的引用,两个数组指向同一个地址,改变一个,另一个随着改变。还有一种说法是如果数组中对象包含其他属性,浅复制不会全都复制,深拷贝是全都拷贝了。即:浅拷贝是指拷贝对象时...

2018-05-24 16:35:32 314

原创 大白话概念性东西--事件句柄

按现在的理解句柄大体分为两种:windows句柄和javascript中的事件句柄这是比较通俗的概念:事件句柄:事件句柄(又称事件处理函数),是指事件发生时要进行的操作。每一个事件均对应一个事件句柄,在程序执行时,将相应的函数或语句指定给事件句柄,则在该事件发生时,浏览器便执行指定的函数或语句,从而实现网页内容与用户操作的交互。当浏览器检测到某事件发生时,便查找该事件对应的事件句柄有没有被赋值,如...

2018-05-08 10:30:40 2395

原创 java中int范围补码详解

一直知道java中int范围是-2147483648到2147483647,但是不知道为什么今天研究了一下:首先回忆了一下计算机中原码反码补码    正数的原码反码补码相等;    负数而反码等于原码符号位不变,其余各位取反,补码等于反码加1计算机中32位int类型变量的范围,其中int类型是带符号整数。正数在计算机中表示为原码,最高位为符号位:正整数1的原码为0000 0000 0000 000...

2018-04-25 17:57:13 3371 1

原创 关于win10下配置java环境变量无效怎么办

一直以来都是在win7下配置环境变量,今天试了下win10下配置,果然出错了试了下,java -version没有问题,java也没问题但是javac总是提示不是内部或外部命令,推测应该是path得问题最后试了一下,发现由于win10和win7有区别。win7环境变量全在一块,每个用分号隔开,而win10自动分行,不用分号了,所以建环境变量有点不同,分两行建,点击新建,把 %JAVA_HOME%\...

2018-04-23 13:18:53 3725

转载 深入理解java编译后的字节码文件

也许你写了无数行的代码,也许你能非常溜的使用高级语言,但是你未必了解那些高级语言的执行过程。例如大行其道的Java。Java号称是一门“一次编译到处运行”的语言,但是我们对这句话的理解深度又有多少呢?从我们写的java文件到通过编译器编译成java字节码文件(也就是.class文件),这个过程是java编译过程;而我们的java虚拟机执行的就是字节码文件。不论该字节码文件来自何方,由哪种编译器编译...

2018-04-19 17:15:53 13304 2

空空如也

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

TA关注的人

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