java
程序员阿军
程序人生,学无止境!
在此感谢大家的关注,后续会持续提供更优质的技术文章,谢谢大家!
展开
-
JDK源码分析-Map接口
Map接口以键值方式存储,常用的实现类有HashMap,Hashtable,ConcurrentHashMap,TreeMap,LinkedHashMap等。 jdk1.7的Map接口的方法有如下,到了jdk1.8还有额外的增加。package java.util; public interface Map<K,V> { //获取集合代下 int size(); //判断集合是否为空 boolean isEmpty(); //...原创 2020-10-30 14:28:33 · 207 阅读 · 0 评论 -
jdk1.7访问https请求,jdk1.8访问https请求
之前用jdk1.7去访问https,怎么都不成功,要么成功后就是返回html代码,而不是json数据,但是用jdk1.8访问就是成功的,返回的也是json数据,由于项目搭建是jdk1.7,不能够因为https问题去升级jdk,因为会很麻烦,主要因为jdk1.7默认https 请求是TLS1不支持TLS1.2,而jdk1.8是访问没问题的,下面的jdk1.7代码做了改进之后就可以访...原创 2019-06-01 17:19:27 · 7593 阅读 · 4 评论 -
分布式锁
一、为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美的运行,毫无Bug!注意这是单机应用,也就是所有的请求都会分配到当前服务器的JVM内部,然后映射为操作系统的线程进行处理!而这个共享变量只是在这个JVM内部的一块内存空间!后来业务发展,需要做集群,一个应用需要部署到几台机器上然...原创 2018-12-11 13:50:17 · 406 阅读 · 0 评论 -
redis学习
String(字符串)redis 127.0.0.1:6379> SET name "runoob"OKredis 127.0.0.1:6379> GET name"runoob"Hash(哈希)redis> HMSET myhash field1 "Hello" field2 "World""OK"redis> HGET my原创 2018-12-11 10:45:08 · 215 阅读 · 0 评论 -
线程死锁
先简单用生活列子介绍死锁, 2个人一起吃饭但是只有一双筷子,2人轮流吃(同时拥有2只筷子才能吃)。某一个时候,一个拿了左筷子,一人拿了右筷子,2个人都同时占用一个资源,等待另一个资源,这个时候甲在等待乙吃完并释放它占有的筷子,同理,乙也在等待甲吃完并释放它占有的筷子,这样就陷入了一个死循环,谁也无法继续吃饭。。 ...原创 2018-12-14 13:00:04 · 371 阅读 · 0 评论 -
线程状态
线程的几种状态转换线程在一定条件下,状态会发生变化。线程一共有以下几种状态:1、新建状态(New):新创建了一个线程对象。2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。3、运行状态(Running):...转载 2018-12-14 10:48:11 · 162 阅读 · 0 评论 -
线程通信实现方式
第一种方式是wait和(notify)notifyAll的方式,一个线程负责变量的新增,一个线程负责变量的相减,一个线程操作完,另一个线程等待,具体操作请看下面的代码这里需要注意的是一定尽量要用while判断,不要用if判断第一消除notifyAll() 引起的并发问题,第二在while循环里而不是if语句下使用wait。这样,循环会在线程睡眠前后都检查wait的条件,并在条件实际上...原创 2018-12-14 09:34:19 · 294 阅读 · 0 评论 -
CountDownLatch的使用
countDownLatch的概念CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成了...原创 2018-12-13 18:49:16 · 569 阅读 · 0 评论 -
多数据库,多数据源,数据库路由
首先,要明白为什么要使用多数据库? 正常情况下,如果,百万数据在单个mysql其实没太大影响的,但是如果数据达到了,千万,亿,甚至更多,从数据库着手我们得对数据库进行拆分成多个库,但是多个库之间的数据操作,这就涉及到了我们的数据源之间的路由的,但是具体代码怎么实现的呢?这里我用spring+springmvc...原创 2018-12-13 10:15:28 · 2509 阅读 · 1 评论 -
拆分汉字|中文拆字|分割汉字
拆分汉字|中文拆字|分割汉字中文拆字,偏旁,部首,字根,我一直以为是通过什么算法变成hash或者二进制进行运算去匹配查找字库的值,或者什么技术上下左右分割,同音字查找,其实开始已经把字库文档已经定义好了,直接从里面匹配获取就行了,就是一个简单的查询而已。package demo;import java.io.BufferedInputStream;import java.io....原创 2018-08-27 15:26:20 · 16987 阅读 · 4 评论