j2se
且_听_风_吟
2018年至今java后端,spring boot 、cloud项目设计管理,微服务开发模式下的高并发和分布式整体架构研究。
2015-2017年主要做传统java web ssh服务,传统的集群、分布式架构设计。
了解前端、安卓开发;
展开
-
java进阶笔记线程与并发之CountedCompleter
说明CountedCompleter是ForkJoinTask的一个子类。其可以简单理解为处理业务和数量有关的一些FJT,一般分为如下几类:和数量无关,一般不使用CountedCompleter一个: findAny、searchFirst这种操作,只要在集合、流中找到一个就表示整个任务完成的指定数量的: 比如有的业务需要触发多次完成的。可能需要有序完成的,有序完成可以通过Count...原创 2019-10-21 22:11:48 · 2789 阅读 · 0 评论 -
java 进阶笔记线程与并发之Future简析
简介Future表示异步计算的结果。方法用于检查计算是否完成,等待计算完成,并检索计算结果。只有当计算完成时,才能使用get方法检索结果,如果需要,可以阻塞它,直到它准备好为止。取消由取消方法执行。还提供了其他方法来确定任务是正常完成还是被取消。一旦计算完成,就不能取消计算。如果为了可取消而不提供可用的结果,可以声明Future作为底层任务的结果返回null。说明Future<V>...原创 2019-10-21 21:55:19 · 218 阅读 · 0 评论 -
java 进阶笔记线程与并发之AbstractExecutorService
简介一个正常的submit、invokeAny 和 invokeAll 方法的通用实现。源码简析RunnableFuture/** * 成功执行run(),才会使Future完成,并得到它的结果。 * @see FutureTask * @see Executor * @since 1.6 * @author Doug Lea * @param <V> The re...原创 2019-10-21 21:53:07 · 187 阅读 · 0 评论 -
java 进阶笔记线程与并发之ForkJoinPool简析
简介ForkJoinPool是一个线程池,支持特有的的ForkJoinTask,对于ForkJoinTask任务,通过特定的for与join方法可以优化调度策略,提高效率。使用通常,我们继承使用ForkJoinTask任务的子类:RecursiveAction:用于没有返回结果的任务。RecursiveTask :用于有返回结果的任务。通过,在子任务类的compute()中,我们将...原创 2019-10-21 21:49:22 · 2329 阅读 · 2 评论 -
java进阶笔记之字符串String,StringBuilder,StringBuffer区别和分析
简介String,StringBuilder,StringBuffer都是CharSequence(接口)的实现。 ,而,StringBuffer继承了AbstractStringBuilder, 而AbstractStringBuilder直接实现了CharSequence接口。CharSequence CharSequence是一个接口,定义了length(), charA...原创 2018-04-27 09:13:34 · 307 阅读 · 0 评论 -
java进阶笔记之数组分析
java中的数组是什么?在我看来,java中的数组可以理解为是一个没有物理class类, 但是可实例化对象且有自己类型的一个对象,并且是Object的子类。或者说java中的数组除了没有对应的class文件和不可继承外,和别的java对象并无区别.注意:C语言中数组名确实代表数组首元素的地址。但java中数组都是对象,数组名就代表这个数组对象,而不是它的首地址。所以pri...原创 2018-05-04 10:51:28 · 249 阅读 · 0 评论 -
java实例化时的属性、构造方法、继承代码、静态代码块的执行/初始化顺序
示例import org.junit.Test;public class ExtendsTest { static class A{ { System.out.println("A_3:init block 1"); } C c = new C("A"); static { ...原创 2018-05-10 16:43:16 · 439 阅读 · 2 评论 -
java进阶笔记之常用(通用)Map(Hash,Tree,Linked,Properties等)
简介Map是将键映射到值( key-value )的对象。 一个映射不能包含重复的键;每个键最多只能映射到一个值。 Map 接口提供三种collection 视图,允许以键集(keySet())、值集(values())或 键-值映射关系集(entrySet())的形式查看某个映射的内容( 即获取键值对的内容 )。映射顺序定义为迭代器在映射的 collection 视图上返回其元素的...原创 2018-05-03 17:03:28 · 774 阅读 · 0 评论 -
java进阶笔记之java语言类层次结构概览
简介本文主要简介java语言中常用类/接口/jvm的结构。 注意:不同java版本的结构可能有不同常用java包java中常用的几个包介绍: 包名 说明 java.lang 该包提供了Java编程的基础类,例如 Object、Math、String、StringBuffer、System、Thread等,不使用该包就很难编写Java代码了。 ...原创 2018-04-20 17:59:50 · 866 阅读 · 1 评论 -
java进阶笔记之装箱(boxing)和拆箱(unboxing)操作
简介简而言之装箱就是将基本数据类型转换为包装器类型;拆箱就是将包装器类型转换为基本数据类型。 在jdk1.5之前需要手动完成装箱和拆箱的操作。而在其之后,则能够自动完成拆箱和装箱 (Autoboxing and unboxing)。类型对照java中的基础数据类型和对应包装类型的对照表 基础类型 包装类型 基础类型暂用的内存大小(字节) int ...原创 2018-04-20 17:51:20 · 2616 阅读 · 0 评论 -
原码,补码,反码和常见二进制位运算
原码,补码,反码原码 用最高位的二进制位表示符号。0 = 正数,1 = 负数。 正数的原码就是其二进制位本身。 负数的源码是对应绝对值的二进制位,但是最高位变为1。 源码存在的问题是存在正0和负0的问题,虽然+0 = -0,但是它们无法在二进制表示式上统一。 同时正数和负数的加法运算不容易实现。1 => 0 000 0001-1 => 1 000 0001...原创 2018-05-07 11:24:54 · 1130 阅读 · 2 评论 -
java进阶之unsafe与CAS操作简介
简介UnsafeUnsafe类属于在sun.misc包下,不属于Java标准包。 但是很多Java的基础类库,比如Netty、Cassandra、Hadoop、Kafka等都使用此类。 Unsafe类因为是native方法,直接调用底层,所以效率很高,在增强Java语言底层操 作能力方面起了很大的作用。当然,因为其直接操作内存,有点不受JVM管束,所以 官方建议除了JAVA自带...原创 2018-05-07 11:34:23 · 1959 阅读 · 0 评论 -
java进阶之LockSupport
简介LockSupport是java.util.concurrent.locks包下的类,功能是对线程进行阻塞和唤醒。 LockSupport中以park开头的方法来阻塞当前线程,unpark来唤醒被阻塞的线程。 和传统的wait/notify机制不同的是,wait/notify是对当前线程阻塞和唤醒一个线程(而不能具体指定); 而LockSupport阻塞当前对象,但是唤醒时却可以唤醒...原创 2018-05-14 17:34:59 · 295 阅读 · 0 评论 -
java进阶笔记之Set(HashSet和TreeSet和LinkedHashSet等)
简介java的set用于存放值不重复的对象,其结构如图。 Set接口继承自Collection接口,而SortedSet接口继承自Set。AbstractSet是一个抽象类。 Set主要有两种实现HashSet和TreeSet、LinkedHashSet。AbstractSetpublic abstract class AbstractSet<E> exte...原创 2018-05-16 15:23:03 · 251 阅读 · 0 评论 -
java进阶笔记之volatile和atomic原子操作
前言概念简介简称全称说明CASCompare and Swap比较并交换JUCjava.util.concurrentjava的一个类包,主要用于并发控制概念说明在现代计算机的cpu中,cpu对数据的读写取分为两个步奏,第一步:cpu从cpu自带的高速缓存(可能有L1、L2甚至L3等多级高速缓存)中查询对象,如果找到即使用。第二步:如果第一步中c...原创 2019-03-24 15:55:08 · 860 阅读 · 0 评论 -
java进阶笔记之多线程:Thread类
简介java中的线程是jvm中虚拟的一个进程中的多个执行序列,线程执行并不一定是并行执行,可能是均分cpu的时间块来在执行各个线程的代码,由于时间块足够小,所以表现为多个线程在“同时”运行。线程状态每个线程都有自己的运行状态。新建状态用new关键字和Thread类或其子类新建立一个线程对象后,该线程对象就处于新生状态。处于新生状态的线程有自己的内存空间,通过调用start方法进入就绪...原创 2019-03-24 17:49:58 · 165 阅读 · 0 评论 -
java进阶之Lock与ReentrantLock
简介Lock与ReentrantLock都是java.util.concurrent.locks包中常用的接口和类。其中ReentrantLock是Lock最常见的一个实现类。LockLock是一个接口:public interface Lock { //获取锁,会'休眠'到当前线程成功获取 void lock(); /** * 获取锁,和lo...原创 2019-06-07 16:10:48 · 323 阅读 · 0 评论 -
java进阶笔记之线程池
前言对于线程池,网上的资料非常的多,本文不准备重复介绍和说明,而仅仅对重点和注意事项说明。线程池中一些概念说明线程的创建、销毁都是需要消耗系统资源的,而线程池可以复用池中的线程,所以可能大幅减少这两个步奏带来的资源开销,从而提高效率。逻辑任务提交时,判断的顺序为 corePoolSize –> workQueue –> maximumPoolSiz配置说明workQueu...原创 2019-06-02 10:18:41 · 149 阅读 · 0 评论 -
java进阶之Condition接口
简介Condition Condition 是java5加入的,全限定名 java.util.concurrent.locks.Condition,是一个接口,主要功能是配合Lock是使用,实现对象监视器的功能。Condition 其作用和Object中的wait、notify 和 notifyAll 类似(Object中的这些方法需要配合synchronized使用)。大致功能如下:Con...原创 2019-07-07 08:58:48 · 166 阅读 · 0 评论 -
java进阶笔记之Queue队列分析
Queue简介Queue是一种线性的数据(队列)结构,其一般只允许在队列数据的前端(front,也称为头部head)和 数据的后端(rear,也称为尾部tail)进行数据操作。Queue队列一般存在FIFO和LIFO两种:FIFO 最先插入的元素将是最先被删除的元素; 反之最后插入的元素将是最后被删除的元素; FIFO(FIFO—first in first out)队列一般...原创 2018-05-02 14:40:48 · 398 阅读 · 0 评论 -
java进阶笔记之List
简介java的List类是一个接口,其继承自Collection接口。 List中的元素是有序的,且是可重复的。 List中只能存放引用类型。 而常用的有实现有:ArrayList 线程不安全,底层是数组实现,查改快,增删慢。 默认容量10. 扩容机制:当 ArrayList 的元素个数小于 6 时,容量达到最大时,元素容量会扩增至 12;当 ArrayList 的元素...原创 2018-04-24 17:35:54 · 214 阅读 · 0 评论 -
一个关于Json数据List和对象嵌套反序列化的工具类,java(20151130)
背景说明: 本示例中用的是fastJson来解析具体的事务;问题: 当json数据遇到嵌套,我找了一段时间都没有找到很好的解决办法,所以自己写了这个工具来解析相关json字符串,并使之还原为一个对象; 这是后可能报错:not close json text, token : , 比如遇到如下json数据:原创 2015-11-27 17:16:46 · 6035 阅读 · 0 评论 -
java生成图片验证码二,加入透明颜色,各种干扰线,干扰点,干扰框,旋转,随机位置
public class VerificationCode { Random rand = new Random(); /** * 随机产生的加数和被加数 */ private int jiashu=0; private int beijiashu=0; /** * 随机产生的计算方式,0表示加,1表示减 */ private int js=0; priv原创 2015-11-11 14:48:49 · 7535 阅读 · 0 评论 -
java图片验证码包括文字和图片的旋转
java图片验证码包括文字图片的旋转:此例子演示的是两位数的加减运算,需要的可以通过自己的修改获得更多的方式:或者我上传的资源中也有其他的两种方式供选择(这个就自己搜索了):名字包含VerificationImagepackage com.utils;import java.awt.Color;import java.awt.Font;import java.awt.Graph原创 2014-10-16 10:01:16 · 4780 阅读 · 0 评论 -
地宫取宝----第五届蓝桥杯
/* * 标题:地宫取宝 X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。 地宫的入口在左上角,出口在右下角。 小明被带到地宫的入口,国王要求他只能向右或向下行走。 走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。 当小明走到出口时,如果他手中的宝贝恰原创 2014-09-30 10:46:52 · 1697 阅读 · 0 评论 -
小朋友排队--第五届蓝桥杯
第一种,直接思考的方法,不知对不对:/* * 标题:小朋友排队 n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。 每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。 如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换, 则他的不高兴程度增加2(即总的不高兴程度为3),依次类推。当要求某原创 2014-10-09 10:42:40 · 2088 阅读 · 0 评论 -
蚂蚁感冒---第五届蓝桥杯
蚂蚁感冒 长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。 这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。 请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。【数据格式】原创 2014-09-30 10:04:03 · 955 阅读 · 0 评论 -
六角填数---第五届蓝桥杯
/* * 如图【1.png】所示六角形中,填入1~12的数字。 使得每条直线上的数字之和都相同。 图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少? 请通过浏览器提交答案,不要填写多余的内容。 */public class 六角填数 { public static void main(String[] args) { // TODO Auto-generated原创 2014-09-29 16:59:48 · 1026 阅读 · 0 评论 -
奇怪的分式---第五届蓝桥杯
public class 奇怪的分式 {/** 奇怪的分式 上小学的时候,小明经常自己发明新算法。一次,老师出的题目是: 1/4 乘以 8/5* 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见图1.png) 老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼!* 对于分子、分母都是 1~9 中的一位数的情况,还有哪些算式可以这样计算呢? 请写出所有不同算式原创 2014-09-28 15:09:34 · 630 阅读 · 0 评论 -
用java模拟dos树结构(tree命令)第二弹
上一次的模拟地址: 上一次的模拟式不成功的,当然一直也没有打算研究,地址如下http://blog.csdn.net/huitoukest/article/details/21298021, 这一次偶然研究了下,结果如下;public class FileTree { public static void main(String args[]) { File h =原创 2016-01-14 11:23:37 · 974 阅读 · 0 评论 -
java_模拟dos文件夹树
java_模拟dos文件树原创 2014-03-15 21:42:50 · 949 阅读 · 0 评论 -
java8 lambda表达式之 Stream常用方法
前言:废话不错,一切都在代码中.import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Set;import java.util.TreeSet;import java.util.function.BinaryOperator;import java.util原创 2017-03-20 11:21:54 · 1647 阅读 · 0 评论 -
带有范围权重信息的随机数列表 java8实现1
简介注意: 第二种优化的实现方式见 http://blog.csdn.net/huitoukest/article/details/79474767我们常常用到随机数,也经常用到随机数列表。比如常见的抽奖,微信/支付宝红包等。 而带有权重信息的随机数列表:是让列表中不同范围的数据具有不同的权重信息,使之在此范围内 产生的随机数的平均值符合此权重比值的数的概率最大。(看不懂的可以看示例说...原创 2018-03-05 21:44:05 · 549 阅读 · 0 评论 -
java 时间转换解析 通用
简介去掉所有非数字字符按照固定17位格式补足剩余数据格式化输出实现import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import org.junit.Test;public class DateTest { @Test p...原创 2018-03-14 17:47:40 · 2350 阅读 · 0 评论 -
中国二代居民身份证校验_编码正确性校验 java实现
规则身份证18位分别代表的含义,身份证15位升级到18位,原来年用2位且没有最后一位,从左到右方分别表示 ①1-2 升级行政区代码 ②3-4 地级行政区划分代码 ③5-6 县区行政区分代码 ④7-10 11-12 13-14 出生年、月、日 ⑤15-17 顺序码,同一地区同年、同月、同日出生人的编号,奇数是男性,偶数是女性 ⑥18 校验码,如果是0-9则用0-9表示,如果是10则用...原创 2018-03-08 11:10:47 · 1075 阅读 · 2 评论 -
NoClassDefFoundError com/sun/media/imageio/stream/RawImageInputStream StreamSegmentMapper ...
问题原因:此类是缺少java jai中的图像处理类,此类并且没有包含在标准的jdk中。 解决方案: 1.将运行环境改为jar试试,亲测jre1.7可用(jar7中是带有此类的); 2.手动下载jai_imageio-1.1.1.jar文件加入运行环境(或者用maven引入);...原创 2018-02-08 15:27:53 · 5096 阅读 · 1 评论 -
带有范围权重信息的随机数列表 java8实现 2
说明其定义可以参考http://blog.csdn.net/huitoukest/article/details/79449076 主要是使产生的随机数在一个列表中的几个范围内的平均值符合给的的权重比值。 在此文实现中,对权重值过大的情况进行了处理,通过自动降低权重值的方法来使之产生出符合 最大值和最小值的随机数。思路和RandomListUtil中的填充数据->随机数...原创 2018-03-07 17:59:34 · 584 阅读 · 0 评论 -
java8 新特性 lambda格式入门
废话不说,直接上代码,看注释import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.List;import java.util.function.Consumer;/** * * lambda完整格式 * (Type1 param1, Typ...原创 2017-03-17 16:53:48 · 571 阅读 · 0 评论 -
人民币大小写转换 java 实现
参考:http://blog.csdn.net/guaishushu1ss/article/details/76757405对匹配的金额大小,转换规则做了部分修改工具类:public class CurrencyUtil { /** * 转换为中国人民币大写字符串,精确到分 * @param money 传入小写数字字符串 * @return * @throws Ex原创 2017-10-12 17:28:31 · 6408 阅读 · 6 评论 -
java23种设计模式简结
前言我觉得设计模式的本质还是面向对象编程的思想,而需要达成的编程目的即解耦和复用.小结此处用一图作为简要小结,方便结构理解和查看记忆.原创 2017-04-11 21:00:33 · 446 阅读 · 0 评论