自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (6)
  • 收藏
  • 关注

原创 动态代理中的死循环导致的java.lang.StackOverflowError

其中this就是$Proxy0,h是动态代理类,调用动态代理类重写的public Object invoke(Object proxy, Method method, Object[] args)方法,里面又调用$Proxy0的toString()方法,进入了死循环。才出现的问题,必然是这句话导致的,需要结合生成的com.sun.proxy.$Proxy0源码分析,通过设置即可保存生成的$Proxy0源码,保存在子工程目录下com\sun\proxy。

2023-08-09 22:07:48 312

原创 Integer的int compare(int x, int y)方法为什么不直接用x-y?

比较两个数下意识会做减法,其实这样是不对的,因为每种数据类型都有范围,向上溢出(超过最大值)会从最小值开始计数;向下溢出(小于最小值)会从最大值往回计数。得不到我们需要的结果。今天在查看Integer源码时发现有下面这个方法,为什么要废这么大劲写这么长。Integer.MAX_VALUE-(-1)结果为-2147483648。Integer.MIN_VALUE-1结果为2147483647。

2023-07-27 09:30:09 113

原创 Java中byte、short等长度不足32位的类型>>>和>>>=区别

b >>>=10 ,先执行-1>>>10得到上面的结果,再转为byte,原来结果是4194303,再转为byte,byte只有8个二进制位,所以左侧长度大于8的部分全部丢失得到低8位1111 1111 ,补码1111 1111 1111 1111 1111 1111 1111 1111。解析:byte的-1转为整型, 原码1111 1111 1111 1111 1111 1111 1000 0001。b>>>10 补码右移10位(去掉右侧10位)左侧补0,得到。>>>=,先按>>>位移然后赋值,但因为。

2023-07-15 15:34:12 225

原创 JAVA中break和continue结合标签达到类似goto的效果

/跳过label2当前的循环并开始label2的下一次循环,效果和continue一样。java中的保留字goto,目前没有使用,但可以用break和continue结合标签达到类似goto的效果。//跳过label1当前的循环并开始label1的下一次循环。//中断label2循环,但外层label1循环还会继续。//中断label1循环。对应for循环的步进也不会执行,需要特别注意可能导致的死循环问题。注意,使用break中断了哪个for循环,,请参考test2()最后输出的i。

2023-07-14 22:15:12 237

原创 Spring的ApplicationContext.xml中使用properties文件中的属性初始化bean

url;username;password;return url;<bean id="urlurlusernameusernamepasswordpassword</bean>其中蓝字部分和红字部分 命名全文应保持一致。

2023-03-14 22:34:17 403

原创 每日一练防手生

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。public class GivenNumPlusDemo { public static void main(String[] args) { System.out.println("请输入运算的数字:"); Scanner scanner = null; try { ...

2022-02-11 23:57:04 169

原创 每日一练防手生

题目:输入一个字符串,分别统计出英文字母、数字、空格和其他字符的数量。public class CharStatDemo { public void analyseNum(String content) { int eng_letters_count = 0; int space_count = 0; int figure_count = 0; int other_count = 0; for (int i = ...

2022-02-10 22:55:00 197

原创 每日一练防手生

题目:给定两个正整数,输出最大公约数和最小公倍数public class GCDDemo { public void printGCDNum(int a, int b) { int divisorNum = getDivisorNum(a, b); System.out.println(a + "和" + b + "的最大公约数为" + divisorNum); System.out.println(a + "和" + b + "的最小公被数为" ...

2022-02-09 22:17:10 177

原创 每日一练防手生

将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。public class PrimeFactorDemo { private final static int START_FACTOR = 2; public void printPrimeFactor(int i) { int factor = START_FACTOR; System.out.print(i + "="); int leftNum = i; ...

2022-01-29 23:08:13 466

原创 每日一练防手生

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?public class RabbitNum { private static final int BASE_NUM = 2; /** * 递归 * * @param dayNum * @return */ public int getRabbitNum2(int dayNum) { ...

2022-01-28 16:26:22 428

原创 关于Thread.join()方法的理解

一、用法:main方法中调用其他线程的join方法public static void main(String[] args) {...Thread t1 = new Thread(runnable);t1.start();t1.join();...}二、源码解读:public final synchronized void join(long millis)throws InterruptedException {...if (millis == 0

2021-12-29 15:36:05 272

原创 关于ForkJoin框架的一点小坑

一、使用ForkJoinPool执行ForkJoinTask,如果main方法中使用pool.execute(task);主函数中没有其他操作,会看不到task执行结果。原因分析:1.execute是异步执行(不需要等待task执行完毕主函数就继续执行下面的语句);invoke是同步执行,主函数等待invoke执行完毕再继续执行。2.主线程是非守护线程,ForkJoinPool执行任务的线程是守护线程。主线程执行execute后没有等...

2021-10-26 17:42:59 1303

原创 不定时练习之使用ForkJoin框架实现连续整数累加

public class PlusWithForkJoinTask extends RecursiveTask<Integer> { private static final int STEP = 200; private int startNum; private int endNum; public PlusWithForkJoinTask(int startNum, int endNum) { super(); this.s...

2021-10-26 17:40:28 93

原创 关于SynchronousQueue的一些随笔v1.1

最近用到了SynchronousQueue,也在网上查阅了相关资料,总感觉有些话说得让人费解,下面结合自己的理解总结下。1、一个不存储元素的阻塞队列。这句话就让我困惑了,不存储元素,那元素保存到哪里了?通过阅读源码,以非公平模式为例: ...casHead(h, s = snode(s, e, h, mode)) ...static SNode snode(SNode s, Object e, SNode next, int m...

2021-07-12 17:52:24 190 1

原创 ArrayBlockingQueue和LinkedBlockingQueue的区别

两者都是常用的有界阻塞队列,不同点如下:1、ArrayBlockingQueue是数组结构的(final Object[] items;),LinkedBlockingQueue是链表结构的(private transient Node<E> head;)。2、ArrayBlockingQueue直接保存对象,LinkedBlockingQueue需要把对象转为Node类型再保存。3、ArrayBlockingQueue读写共用一把锁,不能做到同时(任意时刻)读写,宏观上看是读写交替

2021-07-06 12:50:59 251

原创 实现两个线程交替执行

比如线程1输出0,线程2输出0,线程1输出1,线程2输出1。既然有先后顺序,优先想到和顺序有关的锁,ReenTrantLock的公平锁,等待时间最长的线程优先获取锁。代码如下:public class AlternateDemo { public static void main(String[] args) { Task task = new Task(); Thread ta = new Thread(task); Thread tb...

2021-02-05 22:28:21 493

原创 二叉树的遍历

目录3.后序遍历(左-右-根)2.中序遍历(左-根-右)1.先序遍历(根-左-右)二叉树如图: 无论我们用哪种顺序遍历二叉树,都要明确下面几点:什么时候入栈 什么时候出栈 什么时候打印由于先序遍历和中序遍历比较简单,就没详细...

2020-10-11 11:56:22 138

原创 ConcurrentHashMap1.8源码学习之扩容(链表结构)

读源码时,transfer(Node<K,V>[] tab, Node<K,V>[] nextTab)方法总是看不懂,咋整呢?画图吧,梳理下执行过程。初始容量16,标号为0的槽位下各节点Hash值如下图,intn= tab.lengthintrunBit= fh& n;Node<K,V> lastRun = f;如图,n=16,二进制位10000,如果fh是10000,那么runBit=10000&10000(16&1...

2020-10-06 21:55:32 743

原创 Java温故篇之位移运算符<<,>>和>>>

如题,3种位移运算符可分为2以10和-10为例:10原码、反码、补码:00000000 00000000 00000000 00001010-10原码:10000000 00000000 00000000 00001010 反码: 11111111 11111111 11111111 11110101 补码: 11111111 11111111 11111111 11110110(计算机中以补码表示负数)一、有符号位移<<,>>位移前后符号位不变...

2020-09-25 17:59:27 140

原创 for循环中删除元素结果不正确的原因分析及处理方法

先上代码:blic static void main(String[] args) { Integer[] arr = new Integer[] { 1, 2, 3, 4, 5, 4, 3, 2, 1 }; List<Integer> list = new ArrayList<Integer>(Arrays.asList(arr)); for (int i = 0; i < list.size(); i++) { ...

2020-09-10 18:07:30 416

原创 List使用遍历时删除元素抛出异常java.lang.UnsupportedOperationException

我们都知道集合在遍历时删除元素要么使用迭代器,要么倒序遍历删除,可是我这使用迭代器了为啥删除依然报错呢?找到List的remove()方法,Arrays$ArrayList->AbstractList,父类方法如下public E remove(int index) { throw new UnsupportedOperationException(); }乖乖,父类直接抛出异常,而且子类没有重写,等等,这个ArrayList怎么这么奇怪,还有前缀?原来是一...

2020-09-09 18:15:13 668

原创 Netty入门(二)常见问题,持续更新

一、io.netty.util.IllegalReferenceCountException: refCnt: 0从字面意思看是不合法的计数引用异常,我们知道Netty中ByteBuf资源释放是靠引用计数的,类似JVM垃圾回收的引用计数,当资源被引用时,计数器+1,调用release或其他方式申请释放资源,计数器-1,计数器为0时ByteBuf释放掉。由此,我们需要结合自己代码看哪里资源释放出...

2020-03-23 10:14:05 520

原创 枚举及赋值

public enum EnumDemo { read(0), blue(1), green(2); private int value; EnumDemo(int value) { this.value = value; } public int getValue() { return value; ...

2019-08-14 17:15:11 1539

转载 彻底理解ThreadLocal

彻底理解ThreadLocal参考:http://www.iteye.com/topic/103804http://www.iteye.com/topic/777716源码分析  为了解释ThreadLocal类的工作原理,必须同时介绍与其工作甚密的其他几个类ThreadLocalMap(内部类) Thread  首先,在Thread类中有一行: /...

2019-05-15 19:10:50 164

原创 线程知多少(一)线程实现数据共享的方式

一、继承Thread1、使用static关键字,使被共享的数据变为类变量,这样即使创建多个Thread对象,也可以使多个Thread对象共用类变量package demo.threadtest;public class TicketsThread extends Thread {private static int tickets = 500;public void ru...

2019-04-07 17:08:00 372 1

原创 Spring Boot启动后访问页面报错Whitelabel Error Page,控制台报错:元素类型 "meta" 必须由匹配的结束标记 "/meta>" 终止。

Spring Boot启动后访问首页,发现游览器报错,如图:Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Wed Jan 23 17:03:31 CST 2019There was an unexpected...

2019-01-23 17:23:48 1762 3

转载 Maven中央仓库地址整理

转载:http://blog.csdn.net/win7system/article/details/51260282最近做项目的时候,一直发现常用的oschina maven源一直都没有反应,后面发现原来oschina竟然关闭了maven源服务,后面经同事推荐了阿里云的maven源,这速度杠杠的Maven 中央仓库地址:1、http://www.sonatype.org/nexus/...

2018-12-30 00:05:45 1037 2

原创 CentOS7安装mysql (2)修改默认密码

1、安装完成后启动mysql:service mysqld start2、登录mysql:mysql -uroot -p,发现需要输入密码,可是我们安装没有设置过密码,直接回车也报错 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO),莫方3、开启mysql免密登录,vi ...

2018-12-27 16:15:35 650

原创 CentOS7安装mysql (1)

1、查询是否安装了mysql:rpm -qa | grep mysql2、下载mysql相关包,一共4个,mysql-community-libs-8.0.13-1.el7.x86_64.rpm,mysql-community-common-8.0.13-1.el7.x86_64.rpm,mysql-community-client-8.0.13-1.el7.x86_64.rpm,mysql-...

2018-12-27 16:05:32 150

原创 CentOS7安装apache及访问失败

1.查询系统是否安装了apache : rpm -qa | grep httpd2.查询apache相关软件包:yum search httpd3.安装apache:yum install httpd4.启动apache:service httpd start5.浏览器访问,浏览器地址栏输入 http://ip:80/,ip替换为linux服务器ip,发现访问不了。   5.1...

2018-12-25 17:43:03 2002 1

原创 Can't open /dev/sdb1 exclusively. Mounted filesystem?

在CentOS中做LVM时 pvcreate /dev/sdb1创建物理分区报错,在网上查了下,看别人都是multipath的问题,照着操作一番,我这跟他们还不一样。我这才学的linux分区,创建虚拟机没几天,就格式化文件系统,挂载到了/opt目录,然后我想是不是挂载导致的。然后就去挂载,命令如下:umount /optvim /etc/fstabmount -a完了重新执行 pvcr...

2018-12-23 14:26:28 18625

原创 无法启动MYSQL服务,发生系统错误1067,进程意外中止原因及解决方法

本人的另外一篇博客有定位启动失败原因的方法,在此基础上查看启动失败的原因。https://blog.csdn.net/a1257427517/article/details/84927457通过查看日志,发现 unknown variable 'innodb_checksum_algorithm=0' 是该属性导致启动失败181209 14:01:54 [Note] Plugin 'F...

2018-12-09 14:09:39 1282

原创 MYSQL启动失败解决方法

在MYSQL安装目录下查找.err类型的文件,比如我的mysql安装下是 mysqlServer5.5\data\JYF-PC.err。打开后可以看到:181209 13:38:27 [Note] Plugin 'FEDERATED' is disabled.181209 13:38:27 InnoDB: The InnoDB memory heap is disabled181209...

2018-12-09 13:48:36 1414 1

原创 Mybatis映射文件Mapper.xml中#和$的区别

关于Mapper.xml映射语句中什么时候用"#"什么时候用"$",已经有很多人做过总结,我最近在写项目时仍然遇到了一点问题,所以在这里结合项目文档和案例,再做一下总结,也作为个人的笔记,在这里再总结下。一、先看一下在mybatis api中关于"#"和"$"的描述1、"#"图 1来自于mybatis api “Mapper XML文件”章节,   简单来说"#"在编译时使用&

2018-12-06 20:02:51 8994

原创 使用spring整合mybatis时,通过spring加载的mapper操作怎么回滚

1 错误代码:    try{    ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");    String[] beanNames = app.getBeanDefinitionNames();    factory = app.getBean(SqlSessionF...

2018-11-24 17:49:53 1040

原创 MYSQL建表语法错误排查

SQL执行错误 #1064You have an error in your SQL syntax;...SQL如下:create table book(id int AUTO_INCREMENT primary key COMMENT '图书编号', bname varchar(50) not null COMMENT '图书名称', category varchar(50...

2018-10-25 13:31:56 2451

原创 使用log4j控制台报错

log4j:ERROR Could not instantiate class [log4j].java.lang.ClassNotFoundException: log4j    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)    at java.net.URLClassLoader$1.run(URLClassLoad...

2018-10-18 21:43:41 947

原创 Result Maps collection already contains value for

 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.BeanCreationException: Error c...

2018-03-19 21:44:37 870

原创 mybatis集成spring开荒问题

1、log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).log4j:WARN Please initialize the log4j system properly.没有log4j.properties文件或log4j.properties配置不正确...

2018-03-15 22:42:34 223

原创 使用ajax发送post请求后调用servlet成功前台没有调用success

使用jquery ajax发送请求后,前台success方法一直没有调用。经调试,返回状态码200说明请求发送成功,后台执行OK,猜测问题应该在前台解析返回值部分。错误示例:function validateName() {var name = $("#nameInputId").val();$.ajax({type:"POST",url:"JsonReturnClie

2018-02-14 23:02:02 1656

eclipse openexplorer 插件

eclipse openexplorer 插件,包含1.0,1.3,1.5版本,为eclipse提供Open Explorer(选中资源右键打开所在目录选项)

2019-01-17

eclipse Pax Runner(Pax Cursor)插件

Pax Cursor已经改名为pax-runner-eclipse-core-1.6.0.jar,主要是pax-runner-eclipse-core-1.6.0.jar,其他几个什么作用暂不清楚目前还在学习阶段。

2019-01-05

felix-framework-6.0.1.rar

内含bin,bundle,conf,doc等文件包含了OSGI框架和标准的服务。

2019-01-05

Mybatis最新jar及源码

mybatis-3.4.6/mybatis-3.4.6.jar,lib为 依赖的jar包 mybatis-3-mybatis-3.4.6源码

2018-11-01

Mytatis集成Spring依赖的jar

自己在学习Mybatis时,集成spring,经常在tomcat启动时报错缺少某个类,所以在做完项目后将依赖的jar共享出来,以后各位在学习Mybatis时可以节省点事件。后续将持续更新

2018-03-19

cas-server-webapp-4.0.0.war单点登录

历尽千辛万苦,从官网找到了cas-server包,用于了解sso单点登录。其他地方需要的分数太高,我是穷人,少要点分,造福大家。侵删

2017-11-01

空空如也

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

TA关注的人

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