这个就是实现一个简单的 ArrayList 的遍历,如果存在一个为"aaa"的值,就添加一个"ccc" package Array; import java.util.ArrayList; import java.util.Iterator;public class demo2 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<Stri…
在处理一道题目是,发现他们使用了List 中的set 方法,这个方法我平时很少用到,今天来研究一下,set和add的区别 add(int index,Object obj)方法与set(int index,Object e) 我们写一个例子: package cn.magicdu.think.collections; import java.util.ArrayList; import java.util.List; public class ListTest { public static v…
Java IO 源码研究: 一.输入流 1  基类 InputStream 简介: 这是Java中所有输入流的基类,它是一个抽象类,下面我们简单来了解一下它的基本方法和抽象方法. 基本方法: public void mark(int readLimit) 标记方法,标准做法是将当前输入流的位置标记下来,等待在某一时刻回到这个位置(当调用了reset方法时) public boolean markSupported() 判断 mark 方法是否可用,若返回 false  则  mark  和 re…
Random Java中的Random类生成的是伪随机数,使用的是48-bit的种子,然后调用一个linear congruential formula线性同余方程(Donald Knuth的编程艺术的3.2.1节) 如果两个Random实例使用相同的种子,并且调用同样的函数,那么生成的sequence是相同的 也可以调用Math.random()生成随机数 Random实例是线程安全的,但是并发使用Random实例会影响效率,可以考虑使用ThreadLocalRandom变量. Random实…
阅读本文大概需要 3.6 分钟. 阅读Java源码的前提条件: 1.技术基础 在阅读源码之前,我们要有一定程度的技术基础的支持. 假如你从来都没有学过Java,也没有其它编程语言的基础,上来就啃<Core Java>,那样是很难有收获的,尤其是<深入Java虚拟机>这类书,或许别人觉得好,但是未必适合现在的你. 比如设计模式,许多Java源码当中都会涉及到.再比如阅读Spring源码的时候,势必要先对IOC,AOP,Java动态代理等知识点有所了解. 2.强烈的求知欲 强烈的求知欲…
1. liugh-parent源码研究参考 1.1. 前言 这也是个开源的springboot脚手架项目,这里研究记录一些该框架写的比较好的代码段和功能 脚手架地址 1.2. 功能 1.2.1. 当前用户 这里它用了注解切面进行登录用户的统一注入入口参数,这个做法可以进行参考,不需要在需要使用到登录用户的地方用对象去取了 import com.liugh.annotation.CurrentUser; import com.liugh.exception.UnauthorizedExceptio…
 OCR(Optical character recognition) —— 光学字符识别,是图像处理的一个重要分支,中文的识别具有一定挑战性,特别是手写体和草书的识别,是重要和热门的科学研究方向.可惜国内的科研院所,基本没有几个高识别率的训练集——笔者联系过北京语言大学研究生一篇论文的作者,他们论文说有%90的正确识别率,结果只做了20个笔画简单的汉字(20/6753 = %0.3 常用简体汉字的千分之三),然后找了20个学生,各自手写了一遍.真的是为了论文而论文,而且很会选择样本(小而简单)…
上一篇Websocket的续篇暂时还没有动手写,这篇算是插播吧.今天讲讲不重启项目动态切换redis服务. 背景 多个项目或微服务场景下,各个项目都需要配置redis数据源.但是,每当运维搞事时(修改redis服务地址或端口),各个项目都需要进行重启才能连接上最新的redis配置.服务一多,修改各个项目配置然后重启项目就非常蛋疼.所以我们想要找到一个可行的解决方案,能够不重启项目的情况下,修改配置,动态切换redis服务. 如何实现切换redis连接 刚遇到这个问题的时候,想必如果对spring…
看来断点.单步调试还不够硬核,根本没多少人看,这次再来个硬核的.依然是由于apaas平台越来越流行了,如果apaas平台选择了java语言作为平台内的业务代码,那么不仅仅面临着IDE外的断点.单步调试,还面临着为了实现预览效果,需要将写好的java源码动态的装载到spring容器中然后调用源码内的某个方法.这篇文章主要就是实现spring/springboot运行时将源码先编译成class字节码数组,然后字节码数组再经过自定义类加载器变成Class对象,接着Class对象注册到spring容器成…
刚才在论坛不经意间,看到有关源码阅读的帖子.回想自己前几年,阅读源码那种兴奋和成就感(1),不禁又有一种激动. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心.   说到技术基础,我打个比方吧,如果你从来没有学过Java,或是任何一门编程语言如C++,一开始去啃<Core Java>,你是很难从中吸收到营养的,特别是<深入Java虚拟机>这类书,别人觉得好,未必适合现在的你. 虽然Tomcat的源码很漂亮,但我绝不建议你一开始就读它.我文中会专门谈到这个,暂时不展开.…