自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 Jedis源码-连接池(一)

前言突然心血来潮想看看jedis连接池的实现策略。我看的源码是2.8.1。我本来一直以为jedis是自己实现连接池的borrow和return策略,但是其实并不是:里面居然是一个组合方式,使用一个通用的连接池实现。...

2021-06-08 17:52:03 549

原创 读书笔记:Head First设计模式第一章:策略模式

设计模式,顾名思义就是设计的时候可以有一种通用的模式,通用的解决方案。为什么是通用的,因为所解决的问题是类似的。换句话说,是前人们在遇到某类问题后,整理出来,经过时间检验的,较好的解决方案。问题虽然是类似的,但是不一定一样,通用的解决方案,并不是说一定这样做,需要把握其思想原则,进行变通。通俗的说就是,对于这类问题,管它千变万化,大体的解决思路不变。第一个设计原则:找出应用中,可能变化的地方,将其独立出来,避免和不需要变化的地方混在一起。我们通过书中的场景来说明这个原则。现在有一款.

2021-01-23 12:06:04 129

原创 JVM源码简析(楔子)-对象内存分配过程和PS回收器中YGC触发FGC的现象

前言想要搞明白Java对象内存申请过程的原因,是因为第一次接触线上GC日志的时候,发现了一些很奇怪的现象,就是young gc触发了full gc。为了搞清楚这个现象,得先要来个测试去复现。复现现象我所使用的实验代码和配置原本是用来测试空间担保机制的,不过我们重点不是这个机制而是fullgc的问题:-Xmx20m-Xms20m-Xmn10m-XX:+PrintGCTimeStamps-Xloggc:D:/gc.log-XX:+PrintGCDetails-XX:Survivor

2020-08-10 12:10:39 665

原创 URI,URL概念和spring中的Resouce含义的探究

1.前言之前因为看到spring源码深度解析中提到了对资源封装的来由,觉得比较困惑,而且我也是对URI和URL的概念比较混乱,才有了这篇的整理,源头起源于jdk说到了一篇rfc,事实证明即便英文再不好,也得硬着头皮看,会有意想不到的收获。此外还有一篇博客感觉不错,这里直接贴链接:https://www.cnblogs.com/throwable/p/9740425.html。2.URI概念...

2020-04-26 16:11:30 547

原创 linux内核与设计实现-进程(未完待续。。。)

目录介绍程序指令程序计数器指令执行大致过程寻址方式指令流水线指令乱序程序编译该章节中所参考或者部分转载的文章进程系统资源进程描述符介绍以linux内核与设计实现第三版为主线,网上资料和书籍为辅助,进行整理,参考文章放在后面。整理的目的,当然就是为了对整个计算机的体系提高理解程度,但是并不会在这里抠细节。时间越久,越会发现这些还是很重要的。...

2020-04-09 09:47:47 261

原创 Java内存模型的相关探究

介绍JMM概念,目标,Java内存模型图等CPU和编译器的乱序(重排序)内存屏障,类型,规则缓存一致协议,缓存行概念JMM定义的8种基本操作和8种规则happends-before法则volatile关键字底层实现,所提供的功能,使用条件synchronized关键字这里分享整理笔记,之前也是很困惑这块,花了时间去查资料理解。下面是我根据网上的资料和自己的一点理解,对Java...

2019-12-15 10:35:08 124

原创 Java编程记录 --- 数据库&SQL(填充中...)

介绍从Java编程记录 --- 工具箱(填充中...)文章中拆分出来的一个模块。该模块主要记录,平时遇到的一些sql方面的问题,以便后面查阅使用。下面按照问题场景分类。随机取页问题场景现在需要从表中查询定量(假设1000条数据)的数据(定时加载),而一些数据因为某些问题而无法进行处理,但是又不能废弃掉,所以在处理的时候就进行continue跳过。但是当这部分无法处理的数据堆积达到1...

2019-04-18 16:35:28 194

原创 动态扫描第三方jar包中的bean

介绍最近在看源码的时候发现一个很有用的用法。现在描述一下某个场景:某个使用Spring构建系统需要动态增加,修改,删除服务。而这个服务是由第三方jar包构成(比如统计服务)。在这些服务中需要使用系统中的bean,利用注解进行自动装配。这次主要是记录扫描的代码,接下里需要研究研究如何动态注册和自动装配的。步骤:主要利用classLoader读取jar包,进行类的加载 在类中进行静态...

2019-03-15 14:18:47 4196

原创 使用keytool生成keystore和证书

生成,导入和删除记录windows下生成和测试的过程:1.生成config.keystore>keytool -genkeypair -keyalg RSA -keysize 1024 -sigalg MD5withRSA -alias localhost -keystore D:/config.keystore -storepass 123456您的名字与姓氏是什么? ...

2019-02-24 19:07:36 1403

原创 生成docx版本的数据字典(Java,mysql)

需要生成数据字典,但是网上没有找到满意的(我只从别人那里拿到一个可以生成mysql,html版本的),所以花点时间自己写了一个简易的docx版本,这里分享一下,希望有需要的可以节约点时间;使用Spring3.1,DataSouce采用C3p0,jdk用的是1.6,数据库采用的是mysql。思路思路就是:1.利用sql语句取出指定数据库中的表注释以及相应的表信息2.将这些信息,插...

2019-02-23 11:05:12 873

原创 微信token重复请求导致redis缓存失效的问题

问题描述问题导致的源头:{"errcode":42001,"errmsg":"access_token expired hint: [8W2pha0008vr 72!]"}这个提示意思是说token失效了,为什么会失效,因为在服务器上面也有一个获取token的线程,而我本地测试也在获取token,相互覆盖了。我本地代码实现的逻辑是:第一次拿到token就放入缓存,设置有效期1小时,在这1小...

2019-02-21 13:56:00 2144

转载 IDEA 项目结构出现 0%classes,0% lines covered解决方法

Ctrl + Alt + F6,然后取消勾选,中间的那个No Coverage

2019-02-20 08:56:05 565

原创 通过反射获取静态常量字段的值

测试代码测试获取Global类中的YES常量public class Global { public static final String YES = "1"; public static Object getConst(String field){ try { return Global.class.getField(field).get(

2019-02-20 08:49:19 23844 3

原创 编程珠玑第二版 ---- 第一章个人习题集(Java)

第一题:如果不缺内存,如何使用一个具有库的语言来实现一种排序算法?直接使用Collections.sort(list)排序第二题:如何使用位逻辑运算来实现位向量?package com.xck.util;/** * 位向量 * * 这里使用字节数组来实现位向量,主要目的是给文件中所保存的(无重复的)整数排序 --- 位排序。 * * 原理: * 一个字节有8bit,相...

2018-07-26 10:15:35 686

原创 Java编程记录 --- 工具箱(填充中...)

本篇是记录自己在学习中遇到一些用法(比较泛,只要是我认为比较奇怪,惊艳的,有价值的都可以)。还有一些我经常会用到的和一些有趣的封装,先记录吧,可能后面多了会很乱,到时再说。字符串null字符串这是一个很有意思的现象,我到现在才知道,原来会出现String name = null;System.out.println(name+"");System.out.println(""...

2018-07-20 15:24:36 729

原创 maven项目的log配置 --- log4j的个人配置

因为基本上每次都会新建一个maven项目都会用到log4j.properties,所以记录一下我目前常用的配置,随时可以复用。log4j.properties#配置日志保存的天数log4j.maxBackupIndex=10#配置日志文件的路径log4j.logUrl=logs#全局的error和控制台日志#配置日志等级log4j.rootLogger=INFO,CONSO...

2018-07-18 17:30:58 6566

原创 个人IDEA配置 --- 字体大小及类型

之前在用IDEA就感觉看的很不舒服,后来发现原来是字体类型和字体大小的原因,这里记录一下几个我比较喜欢的字体。我用的是黑底的界面。还有一个是老版本的IDEA,Editor->Colors&Fonts->Font里面,根据需要调整:Scheme是DarculaPrimary font是FiraCode,也可以ConsolasSize15...

2018-07-18 14:33:45 4443

原创 Dynamic Web Module 3.1 requires Java 1.7 or newer解决方法

如题目所述,我今天将Java Project直接转为Maven Project的时候出现上面的问题,意思是就是Java版本太低,我查看了Java Build Path里面,发现里面变成JDK1.5了,改过来还是不行。我在网上找了一篇博客,这篇就讲的很清楚,我在pom.xml的plugins标签中放入了<plugin>    <groupId>org.apache.mave...

2018-03-12 19:32:11 311

原创 Description Resource Path Location Type Java compiler level does not match the version 解决方法

今天用Spring MVC搭建demo的时候遇到了下面的问题:Description Resource Path Location TypeJava compiler level does not match the version of the ins...

2018-03-12 18:58:28 1391

原创 JSP/Servlet --- 编码问题

情景1描述:jsp页面page指定编码为UTF-8,在没有任何过滤器的情况下,向servlet容器发送HTTP请求,如通过表单提交数据,传递的信息会被封装在HttpServletRequest对象request里面,若直接处理提交过来的中文字符串,会出现乱码<%@ page contentType="text/html; charset=UTF-8"%>...<form me...

2018-02-27 19:50:44 113

原创 算法题---找出给定的字母字符串中连续递增的最长子串

算法题目:给定任意一个非空的全是字母的字符串,找出其中按字典排序的,连续的子串。情况举例:相同字母也算,例如zdfffsse,最长就是dfffssdfsdfsmmxx,最长就是dfs,相同长度的子串,就取从左到右看,第一次出现的。算法思路:用一个for循环从左到右遍历,用count记录有序子串的长度,用max记录最大长度。每次遍历完一个有序子串都和max比较,若大于max,则更新max(小于等于都...

2018-02-14 21:36:05 2031

原创 spring4源码编译记录

记录一下我源码导入过程,虽然参考了网上的教程,但是出现了一些错误。Could not resolve all files for configuration ':classpath'.网上很少有这方面的错误,我也不懂这编译的原理只能看看是否是版本不匹配的问题。我已开始下的是gradle-4.4.1版本,源码是从github上https://github.com/spring-project

2018-01-11 12:04:06 534

原创 数据结构之串的模式匹配算法(KMP)

这里先给出之前我参考的博客网址,以及参考的书籍是数据结构(严蔚敏)。参考代码的网址这里我总结一下我的思路。先介绍一些基本概念主串:这里指的是要匹配的字符串模式串:需要在主串中寻找的字符串KMP匹配算法的重点在于利用模式串自身的重复部分,在匹配中消除那些重复的匹配过程。下面约定字符串和next数组的下标从1开始(人为规定)i为指向主串的指针,j和k为指向模式串的指针T代表为模式串数组,S

2017-03-14 12:42:54 655

原创 共享可变性设计中存在风险以及解决方法(五)

本篇是《Java虚拟机并发编程》第六章的阅读笔记在(四)中,因为程序中不止一个与可变状态相关或依赖的变量,所以我们使用显示锁的来进行同步操作。虽然是用了同步锁成功执行了代码,但同时也会产生许多的问题,因为同步本身就有缺陷。例如可能会产生死锁,活锁;可能会因为是人工加锁,所以会导致错误的概率增加,你需要一个个确认是否每个地方都做了适当的同步,开发效率低,等等。这里我们通过使用软件事务内存STM模型来使

2016-10-21 21:38:40 241

原创 共享可变性设计中存在风险以及解决方法(四)

本篇是《Java虚拟机并发编程》第五章的阅读笔记在(三)中,我们在代码里没有使用任何显示的同步操作,直接作用在可变变量上,当然是因为在程序中只有一个可变字段。如果程序中不止一个与可变状态相关或依赖的变量,那么我们就无可避免地要使用显示的同步操作。到目前为止重构都达到了预想的效果,但我们还要想更高要求的目标迈进:追踪并记录电源的使用情况。即每次电源电量消耗完毕的时候,我们度需要把电源的使用次数进行累

2016-09-05 17:09:24 220

原创 共享可变性设计中存在风险以及解决方法(三)

本篇是《Java虚拟机并发编程》第五章的阅读笔记本篇解决的是可见性的问题,在(一)(二)的基础上对代码进行重构package com.periodictask;import java.util.concurrent.ScheduledFuture;import java.util.concurrent.ScheduledThreadPoolExecutor;import java.util.co

2016-09-04 20:16:08 218

原创 共享可变性设计中存在风险以及解决方法(二)

本篇是《Java虚拟机并发编程》第五章的阅读笔记接着(一)中提出的几个问题,对代码进行重构(一)中最终重构的代码是package com.fixingconstructor;public class EnergySource { private final long MAXLEVEL = 100; private long level = MAXLEVEL; private

2016-09-04 16:57:56 172

原创 共享可变性设计中存在风险以及解决方法(一)

本篇是《Java虚拟机并发编程》第五章的阅读笔记首先看代码这是一段控制一个高档电源的代码,改代码允许用户使用电池里的能量,并定期对电源进行自动充电package com.originalcode;//Bad codepublic class EnergySource { private final long MAXLEVEL = 100; private lo...

2016-09-04 13:58:38 310

原创 Spring表单提交和页面数据显示的请求处理大致过程

首先在web.xml加上<web-app> <servlet> <servlet-name>springServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-n

2016-08-23 17:18:53 1125

原创 通过ApplicationContextAware接口来保存Spring ApplicationContext

测试代码package com.common.utils;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;public cl

2016-08-05 20:16:15 999

原创 Eclipse运行Tomcat8源码

1.需要准备的:apache-tomcat-8.0.3-src 以及apache-ant-1.9.6-bin2.一开始我将apache-ant-1.9.6-bin放在D盘根目录下并在path中

2016-06-01 21:20:22 759

原创 mysql多表查询1 --- 中间表

一   这里采用join的方法进行多表查询这里有4张表1.student学生表+-------------+-------------+------+-----+---------+-------+| Field       | Type        | Null | Key | Default | Extra |+-------------+----------

2016-05-28 18:49:29 3660 1

原创 js表单验证方法1

Remember Me Login 1.js代码可以通过name获取input里面的值

2016-05-16 19:05:04 244

原创 错误日志之Android Studio的application installation failed

就是如图所示的错误1.一开始我试了讲手机清除一些内存,但是并没有用2.然后我就将之前从Android Studio下的实验用的apk安装包都删除,成功了,不过原因还没有明白...

2016-04-17 22:50:47 453

原创 Android学习记录之ListView如何填充数据(Adapter)

获取一组数据,我们应该如何填充ListView1.这里由一组联系人数据(联系人名和个人头像)2.将这组数据传进适配器,同时适配器也知道为每一个数据项构建列表项视图3.因此适配器可以进一步为它们创建布局,但是在ListView创建之前我们无需创建视图,如果有几百项数据对应几百个视图,那将是个浪费。4.当适配器和ListView绑定时,ListView将

2016-04-10 14:14:07 2564

原创 Android学习记录之BaseAdapter及其SubClass基础使用1

1

2016-04-08 20:51:10 267

原创 Android学习记录之ListView和ScrollView区别

ScrollView中不管有多少个数据项都会全部加载MainActivity.javapackage com.example.android.listviewandscrollview;public class MainActivity extends Activity { @Override protected void onCreate(Bundle

2016-04-08 18:17:02 1258

mysql数据字典导出工具

数据字典导出工具,只支持mysql数据库,导出格式只有html

2019-03-18

空空如也

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

TA关注的人

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