- 博客(77)
- 资源 (5)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring初始化Bean工厂
/** * @author hskw * @version 1.0.0 * @Description TODO * @createTime 2019-11-16 */public class Test { public static void main(String[] args) { AnnotationConfigApplicationContext ac = new A...
2020-01-05 21:37:53
725
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring源码记录(三)
接着上一个,推断完构造方法,创建实例 protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, final @Nullable Object[] args) throws BeanCreationException { // 实例化bean BeanWrapper in...
2019-12-22 19:53:23
213
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring源码记录(二)
下面经历2个生命周期,推断构造方法创建出实例,还没有进行属性填充,后面还有7个生命周期。 @Override public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepare this conte...
2019-12-08 19:33:16
236
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 ReentrantLock的源码--AQS加锁过程
在JDK 1.6之前,synchronized这个重量级锁其性能一直都是较为低下,虽然在1.6后,进行大量的锁优化策略,但是与Lock相比synchronized还是存在一些缺陷的:虽然synchronized提供了便捷性的隐式获取锁释放锁机制(基于JVM机制),但是它却缺少了获取锁与释放锁的可操作性,可中断、超时获取锁,且它为独占式在高并发场景下性能大打折扣。1、自旋(永真循环)实现同步...
2019-11-11 22:47:16
600
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring源码记录(一)
Spring源码太庞大了,部分贴出来回顾熟悉一下。解析配置类和扫描/** * Spring中出来注解Bean定义的类有两个: * AnnotationConfigApplicationContext和 * AnnotationConfigWebApplicationContex。 * nnotationConfigWebApplicationContext * 是Annota...
2019-11-10 13:29:57
214
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring-Bean 生命周期
准备工厂,然后调用invokeBeanFactoryPostProcessor去解析注解类,把他们分类放到Map当中,再调用registerBeanPostProcessor注册Bean的后置处理器,如果加了开启AOP的@EnableAspectJAutoProxy注解的话是8个,没加是7个。然后实例化所有剩余的非延迟的单例Bean,也就是Spring添加的后置处理器和扫描我们提...
2019-07-03 17:58:58
218
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 虚拟机ping不通主机,但是主机可以ping通虚拟机
我在Windows10系统安装了虚拟机,设置的主机与虚拟机的连接方式是桥接,安装好后,发现虚拟机ping不通主机,但是主机可以ping通虚拟机。我的操作是:关闭防火墙,发现虚拟机可以ping通主机了。说明是Windows10防火墙阻止了。现在存在的问题是:如果我一直关闭防火墙也不是个事啊?这样做会影响我的电脑安全的。于是我想我要先确定防火墙阻止了什么,导致需要关闭防火墙?于是网上查看资...
2018-07-31 13:07:01
179271
172
原创 解决SpringBoot项目jar包启动慢
问题:jar包部署到麒麟系统(或者Centos7)下,启动超级慢,我的当时是92秒。网上给的解决办法:编辑 /usr/java/jdk/jdk1.8.0_211/jre/lib/security/下的java.security 文件securerandom.source=file:/dev/random改为securerandom.source=file:/dev/./random但我试了之后没什么用,可能有用,你们试试...
2021-09-20 12:18:52
3082
4
转载 代码整洁之道
1.什么样的代码才是整洁的 从字面意思上理解,整洁的代码,对于程序员来说非常的一目了然,简单、整洁,结构清晰,逻辑清楚。代码其实是一种语言,传递的是逻辑,如果这份代码可以像我们说话一样快速的将逻辑传递给读者,那么这样一份代码就是一份整洁的代码。可以借助沃德原则:"如果每段代码欧让你感到深合已意,那就是整洁代码" 2.如何保持代码整洁 首先便是要有保持代码整洁的意识,书中反复提到的提到的一条童子军军规:让营地比你来时更干净。要写好整洁的代码,需要...
2021-04-24 20:53:07
1501
原创 redis配置文件—中文注释版
# Redis configuration file example.## Note that in order to read the configuration file, Redis must be# started with the file path as first argument:## ./redis-server /path/to/redis.conf# Note on units: when memory size is needed, it is possible to.
2020-10-18 22:24:41
781
1
原创 AOP动态切换数据源和org. Apache. ibatis. binding. BindingException:Invalid bound statement (not found)
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/P...
2020-01-04 13:41:15
473
原创 踩坑记
由于某些原因,不能粘贴代码,那就记录整个过程吧,没有经验,一个坑一个坑的踩!代码都是手敲的,条件不允许不能复制粘贴,我检查过了没问题。前端请求后端浏览器下载,记得不能有返回值!!!一、文件上传(EasyUI+SpringBoot)1、先是获取文件路径的时候,不管你从什么目录上传,前端获取到的都是"C:\fakepath\"目录,说这是ie8下的安全设置问题,怎么解决百度上有;2...
2019-11-10 13:29:33
387
原创 并发编程之美(第6章—2)
6.3 独占锁ReentrantLock的原理6.3.1 类图结构 ReentrantLock是可重入的独占锁,同时只能有一个线程可以获取该锁,其他获取该锁的线程会被阻塞而被放入该锁的AQS阻塞队列里面。首先看下ReentrantLock的类图以便对它的实现有个大致了解,如图6-4所示。 ...
2019-08-28 21:48:12
371
原创 并发编程之美(第6章—1)
第6章 Java并发包中锁原理剖析6.1 LockSupport工具类 JDK中的rt.jar包里面的LockSupport是个工具类,它的主要作用是挂起和唤醒线程,该工具类是创建锁和其他同步类的基础。 LockSupport类与每个使用它的线程都会关联一个许可证,在默认情况下调用LockSupport类的方法的线程是不持有许可证的。LockSupport是使...
2019-08-27 22:18:57
338
原创 并发编程之美(第五章)
第5章 Java并发包中并发List源码剖析5.1 介绍 并发包中的并发List只有CopyOnWriteArrayList。CopyOnWriteArrayList是一个线程安全的ArrayList,对其进行的修改操作都是在底层的一个复制的数组(快照)上进行的,也就是使用了写时复制策略。Copy On WriteArraylist的类图结构如图5-1所示。 ...
2019-08-26 22:30:35
194
原创 并发编程的艺术(第2章)
第2章 Java并发机制的底层实现原理 Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令。本章我们将深入底层一起探索下Java并发机制的底层实现原理。2.1 volatile的应用 在多线程并发编程中synchroniz...
2019-08-25 23:19:40
446
原创 并发编程的艺术(第1章)
第1章 并发编程的挑战 并发编程的目的是为了让程序运行得更快,但是,并不是启动更多的线程就能让程序最大限度地并发执行。在进行并发编程时,如果希望通过多线程执行任务让程序运行得更快,会面临非常多的挑战,比如上下文切换的问题、死锁的问题,以及受限于硬件和软件的资源限制问题,本章会介绍几种并发编程的挑战以及解决方案。1.1 上下文切换 即使是单核处理器也支持多线程...
2019-08-25 22:47:05
330
原创 并发编程之美(第四章)
第4章 Java并发包中原子操作类原理剖析 JUC包提供了一系列的原子性操作类,这些类都是使用非阻塞算法CAS实现的,相比使用锁实现原子性操作这在性能上有很大提高。由于原子性操作类的原理都大致相同,所以本章只讲解最简单的AtomicLong类的实现原理以及JDK 8中新增的LongAdder和LongAccumulator类的原理。有了这些基础,再去理解其他原子性操作类的实现就不...
2019-08-25 17:06:16
279
原创 并发编程之美(第三章)
第3章 Java并发包中ThreadLocalRandom类原理剖析ThreadLocalRandom类是JDK 7在JUC包下新增的随机数生成器,它弥补了Random类在多线程下的缺陷。本章讲解为何要在JUC下新增该类,以及该类的实现原理。3.1 Random 类及其局限性在JDK 7之前包括现在,java.util.Random都是使用比较广泛的随机数生成工具类,而且java.la...
2019-08-24 23:36:58
265
原创 解决IDEA 2017.2 中文无法输入、总感觉慢一拍的问题
对于idea无法输入中文,按回车再次输入,上一行刚才输入的就自动跑下来,总感觉慢一拍等问题,这里介绍两种解决方法如下 。方法一:1、关掉idea后在idea的安装路径下把jre64文件夹删掉,或者重命名也行,如把jre64改成jre642,如下图:2、升级jdk版本至jdk 8u45以上3、把Java安装路径下的jre文件拷贝到IDEA的安装目录下并重命名为jre64;4、把对...
2019-08-23 23:52:58
779
原创 并发编程之美(第二章)
第2章 并发编程的其他基础知识2.1 什么是多线程并发编程 首先要澄清并发和并行的概念,并发是指同一个时间段内多个任务同时都在执行,并且都没有执行结束,而并行是说在单位时间内多个任务同时在执行。并发任务强调在一个时间段内同时执行,而一个时间段由多个单位时间累积而成,所以说并发的多个任务在单位时间内不一定同时在执行。在单CPU的时代多个任务都是并发执行的,这是因为单个CPU同时...
2019-08-19 22:50:37
244
原创 并发编程之美 (第一章)
第1章 并发编程线程基础1.1 什么是线程 线程是进程中的一个实体,线程本身是不会独立存在的。进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。 操作系统在分配资源时是把资源分配给进程的,但是CPU资源比较特殊,它是被分配到线程的,因为真正要占用CP...
2019-08-18 17:46:37
225
原创 第一章 完美掌握把“No”变成“Yes”的技巧
有家的地方没有工作,有工作的地方没有家,他乡容纳不了灵魂,故乡安置不了肉身。一个叫家的地方,却找不到养家糊口的路,找到了养家糊口的地方,却安置不了家。从此便有了漂泊,有了远方,有了无穷无尽的牵挂,陌生人,加油!步骤1:“不直接说出自己的想法”一般来说,人都容易不假思索地把脑中的想法直接说出来。然而,这样不仅常常事与愿违,而且很容易招致反感。请不要直接说出自己的想法。这就是步骤...
2019-07-18 20:11:18
953
原创 并发编程之并发容器
一、Demo1package com.hskw.demo1;import java.util.concurrent.TimeUnit;/** * synchronized加在静态方法上锁的是类对象 */public class Demo { public synchronized static void test1(){ System.out.prin...
2019-07-14 18:47:07
201
原创 synchronized和volatile关键字
一、Demo11、demo1package com.hskw.demo1;/** * synchronized关键字 * synchronized关键字锁定的是对象不是代码块,demo中锁的是object对象的实例 * 锁定的对象有两种:1.类的实例 2.类对象(类锁) * 加synchronized关键字之后不一定能实现线程安全,具体还要看锁定的对象是否唯一。 */pu...
2019-07-14 16:05:42
196
原创 多表关联自动生成SQL语句
Navicat_for_MySQL只能连接MySQL数据库,工作中表数据比较多,很多都搬到Oracle数据库了,Navicat_Premium_cs_x64都可以连接,所以建议使用这个,下载地址链接:https://pan.baidu.com/s/134Uas-EZJE_e5qDsUGpBwg提取码:5c5d ,破解方法及需要的文件也都在其中,比较简单,网上也很多,就不说了,开始生成SQL语句吧...
2019-05-15 21:03:34
2796
原创 使用swagger生成API说明文档
干一天活比较累,不废话直接上步骤:1、导包 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version&...
2019-05-08 17:26:00
531
原创 如何修改Tomcat启动后dos窗口左上角的文字
1>在apache-tomcat-8.0.32/bin目录下找到:catalina.bat文件,用文本编辑器打开;2>找到下面这一句话,将 初始的"Tomcat"替换成你想要的文字,大约在281行:例如:if "%TITLE%" == "" set TITLE=hendon8888重新启动 tomcat 后就可以看到如下图:...
2019-04-29 11:06:24
1260
原创 JSONObject自动隐藏为null的属性的解决办法
JSON字符串转JSONObject自动隐藏为null的属性JSON中put的value=null,key=value会被隐藏掉package hskw.chd;import com.alibaba.fastjson.JSONObject;import com.google.gson.Gson;import com.google.gson.GsonBuilder;/** ...
2019-04-04 16:04:59
11314
原创 GBK与UTF-8互转乱码详解
我们知道在计算机内存中,存储的是二进制数据,在网络传输中,也是二进制数据,但最终呈现给用户的是字符串,二进制与字符串的转化就需要编码、解码的参与,如果世界上只有一种字符编码方式,就不会有乱码这一说了,但事实是,编码的方式太多了,utf-8、utf-32、utf-16、gbk、gb2312、iso-8859-1、big5、unicode等等。由于每个编码的规则不一样,一般都不能用一种进行编码,用另一...
2019-02-22 16:47:16
18975
原创 HttpURLConnection获取中文数据乱码
package com.hskw.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.HttpURLConnection;import java.net.URL...
2019-02-13 12:05:05
2600
1
原创 彻底解决Tomcat中文乱码问题
修改tomcat中conf里面的server.xml,在Connector中加上URIEncoding="UTF-8"还是不行彻底解决办法:在tomcat的bin目录下的catalina.bat加如下一条语句set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MaxPermSize=1024m -Dfile.encoding=UTF-8再次访问就OK了...
2019-01-28 18:04:29
57491
8
原创 徒手实现HashMap
HashMap可以先看一下原理分析https://blog.csdn.net/hskw444273663/article/details/86510683和 Hash算法 https://blog.csdn.net/hskw444273663/article/details/86510813package com.hash;public ...
2019-01-19 18:08:12
218
转载 Hash算法详解
你知道HashMap中hash方法的具体实现吗?你知道HashTable、ConcurrentHashMap中hash方法的实现以及原因吗?你知道为什么要这么实现吗?你知道为什么JDK 7和JDK 8中hash方法实现的不同以及区别吗?如果你不能很好的回答这些问题,那么你需要好好看看这篇文章。文中涉及到大量代...
2019-01-16 16:56:50
1134
转载 HashMap底层数据结构原理解析
老师:JDK中我们最常用的一个数据类是HashMap。那么,谁可以回答一下HashMap的底层数据结构原理是什么呢?小明:老师,我知道。众所周知,HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。HashMap数组每一个元素的初始值都是Nul...
2019-01-16 16:52:03
626
1
原创 文档转pdf工具类
将文件转换为PDF使用的是openOffice+jodConverter。openOffice可以去网上下载(免费的文字处理软件,注意是一款实实在在的软件,支持MAC OS, Linux,WINDOS…,具体可以去网上看),需要下载安装。网上人说使用openOffice需要开启服务,但是这边我是在代码中控制开启和关闭openOffice的,因为openOffice服务大约要占100M内存,所以不使...
2019-01-12 15:47:41
322
原创 根据下载地址URL下载文件到本地指定目录
一、浏览器弹下载框选择目录下载:不弹下载的提示框是因为你的提交方式是ajax提交,是不会弹出提示框的,你得换成form表单提交,就可以顺利弹框。js模拟form表单提交可以参照我另一篇博客:https://blog.csdn.net/hskw444273663/article/details/86170641 //材料下载处理 public static void do...
2019-01-09 19:14:11
3684
原创 JS模拟Form表单提交
用java写了一个下载的功能,测试没有问题,但前台就是不弹出下载的提示框。后来发现如果你的提交方式是ajax的方式的话是不会弹出提示框的,然后换成了form提交,顺利弹框通过,下来我们就用js模拟form表单提交。先看这两张图片方便理解:上面的方式理解,下面的方式编写: ...
2019-01-09 19:02:17
8420
2
原创 java.lang.IllegalStateException: getWriter() has already been called for this response解决办法
在执行response.getOutputStream()时报错java.lang.IllegalStateException: getWriter() has already been called for this response原因为代码中有打开的Response.getWriter(),未关闭,因调用点较多,不好一一排查。通过查看代码,看到response中的usingWrite...
2019-01-09 18:47:58
5395
转载 java字符转义—字符串中的双引号
创建或显示字符串时,其文本必须用双引号括起,以指出字符串的开始和结束。这些双引号不会显示出来,这就提出了一个很好的问题:如果要显示双引号该怎么办呢?为显示双引号,Java创建了一个特殊编码\",可放到字符串中。在字符串中遇到该编码时,将其替换为双引号。例如,请看下面的例子:System.out.println("Jane Campion directed \"The Piano\" in ...
2019-01-04 17:59:16
42350
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人