自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

blingfeng的博客

blingfeng

  • 博客(15)
  • 收藏
  • 关注

原创 JDK1.8 LinkedHashMap的实现原理

LinkedHashMap,顾名思义连接的HashMap,它继承了HashMap,HashMap为了避免碰撞,因此用拉链法解决冲突,读过HashMap源码的读者可能会想:HashMap桶中的节点本来就是连接的呀?为什么还要引入LinkedHashMap呢?HashMap中的连接只是同一个桶中的元素连接,而LinkedHashMap是将所有桶中的节点串联成一个双向链表。 如下图所示: ...

2018-04-17 14:14:42 3062 2

原创 ThreadPoolExecutor源码分析

ThreadPoolExecutor继承AbstractExecutorService,层级实现了ExecutorService,ExecutorService继承了Executor1 . Executor Executor提供了一种解耦任务提交与任务如何运行的 execute(Runnable command)方法,例如创建线程并启动是这样的:new Thread(()-&gt...

2018-04-16 10:52:52 219

原创 leetcode-删除数组重复的元素

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素必须是 1 和 2。你不需要考虑数组中超出新长度后面的元素。class So...

2018-04-13 14:49:12 1015 2

原创 leetcode-初级算法-异或

给定一个整数数组,除了某个元素外其余元素均出现两次。请找出这个只出现一次的元素。备注:你的算法应该是一个线性时间复杂度。 你可以不用额外空间来实现它吗?class Solution { public int singleNumber(int[] nums) { int result = 0; for(int i = 0;i < nums...

2018-04-13 14:47:38 219

原创 聊天-微信小程序websocket

效果图: chat.jsvar utils = require("../../utils/util.js")Page({ /** * 页面的初始数据 */ data: { newsList:[], input:null, openid:null }, /** * 生命周期函数--监听页面加载 */ onLoad: ...

2018-04-13 14:43:29 6953 5

原创 渐变色canvas-微信小程序

效果图如下: index.jsPage({ /** * 页面的初始数据 */ data: { windowWidth:null, windowHeight:null, }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.setData({ ...

2018-04-13 14:38:10 2066

原创 微信天气小程序

先附上成果图 index.jsPage({ /** * 页面的初始数据 */ data: { count:0, flag: true, latitude:null, location:null, longitude:null, week:[ 'Mon','Tue','Wed','Thu','Fri',...

2018-04-13 14:33:44 403

原创 linux下zookeeper集群的搭建

先把zookeeper的压缩包解压到/usr/root/solr-cloud 然后改个名字复制2份 zookeeper01 zookeeper02 zookeeper03 (zookeeper集群最少需要3个zookeeper,因为zookeeper投票选举leader是按超过总数一半来决定的) 分别在每个zookeeper目录下创建data目录用来保存一些信息 在data...

2018-04-13 14:19:42 251

原创 Activity工作流

说到工作流,我们肯定第一时间想到的是JBPM和Activity, JBPM是使用Hibernate来管理数据库的,而Activity则是 比较开放的贴近Mybatis的风格。而现在SSH框架用的也是 越来越少了,所以Activity取代JBPM也是不远的事。Activity的github地址:https://github.com/Activiti一、导入依赖这里使用的是Activ...

2018-04-13 14:14:09 3606

原创 Shiro权限框架的使用

今天项目刚好需要权限管理功能,于是就找了两个开源的权限管理框架 Spring Security 和 Shiro。 Spring Security是一款功能很强大的一款安全管理框架 而Shiro是一款小巧而功能齐全的一款安全管理框架。 Shiro基本可以实现我们的功能,那就先了解下Shiro的具体使用吧,Spring Security在Shiro的学习之后会变得更加清晰。一,导入依赖我使...

2018-04-13 14:10:04 264

原创 CountDownLatch和CyclicBarrier解决运动员赛跑多线程问题

最近有道多线程的面试题: 五个运动员(相当于五个线程),一个裁判(Main线程),满足以下三个条件,如何实现: 1.同时起跑 2.要所有运动员都到达终点以后才能进行下一个环节 3.如果有一个运动员摔跤了(异常处理),就终止这次比赛,让所有运动员都到终点进行下个环节可以使用CountDownLatch和CyclicBarrier来解决这个问...

2018-04-11 21:20:32 935 2

原创 ConcurrentHashMap之核心方法分析(JDK1.8)

ConcurrentHashMap是java.util.concurrent并发包下的一个类,相比jdk1.7,jdk1.8使用了cas来替代分段锁,其和HashMap一样底层使用了数组+链表+红黑树。字段 private static final int MAXIMUM_CAPACITY = 1 << 30;//最大容量 2^30 private static final i...

2018-04-09 10:35:54 180

原创 ConcurrentHashMap源码之tryPreSize

tryPreSize是ConcurrentHashMap扩容方法之一 private final void tryPresize(int size) { //如果大小为MAXIMUM_CAPACITY最大总量的一半,那么直接扩容为MAXIMUM_CAPACITY,否则计算最小幂次方 int c = (size >= (MAXIMUM_CAPACITY >>&gt...

2018-04-08 17:48:26 1959 1

原创 ArrayList源码学习

public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.SerializableArrayList继承了AbstractList抽象类,实现了List、RandomAccess、Serialzabl...

2018-03-28 08:45:15 150

原创 java中数组到底是一种怎么样的存在?

众所周知,在java中数组也是一种对象,而对象在被创建的时候会隐式地调用其构造方法,在字节码中为:new #1 //创建实例并将引用压入栈顶 #1为常量池中此类的符号引用dup //将栈顶元素复制一份并压栈invokespeclal #2 //将栈顶引用作为参数顶用构造方法 #2为常量池中构造方法的引用<init>创建数组对象的字节码有newarray,anewarray,以及m...

2018-03-25 18:48:42 2700

空空如也

空空如也

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

TA关注的人

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