排序:
默认
按更新时间
按访问量

如何获取栈的最小值

1、基本方法:增加辅助栈,辅助栈里面存储每次存放的最小值。如图所示原理, 代码实现: public class MinStack1 { private List<Integer> data = new ArrayList&l...

2018-09-29 20:34:46

阅读数:49

评论数:0

源码解析--Long、long类型的比较遇到的问题

Long、long类型的比较遇到的问题: 1、long 是基本类型 Long是对象类型。 public static void main(String[] args) { Long A = 127l; Long B = 127l; long C = 127; lon...

2018-09-21 20:38:36

阅读数:22

评论数:0

浅谈分布式锁--基于缓存(Redis,memcached,tair)实现篇

浅谈分布式锁--基于缓存(Redis,memcached,tair)实现篇: 一、Redis分布式锁 1、Redis实现分布式锁的原理:     1.利用setnx命令,即只有在某个key不存在情况才能set成功该key,这样就达到了多个进程并发去set同一个key,只有一个进程能set成功...

2018-09-19 19:50:04

阅读数:37

评论数:0

浅谈分布式锁--基于Zookeeper实现篇

浅谈分布式锁--基于Zookeeper实现篇: 1、基于zookeeper临时有序节点可以实现的分布式锁。其实基于ZooKeeper,就是使用它的临时有序节点来实现的分布式锁。 来看下Zookeeper能不能解决前面提到的问题。     锁无法释放:使用Zookeeper可以有效的解决锁无法...

2018-09-19 19:25:50

阅读数:27

评论数:0

浅谈分布式锁--基于数据库实现篇

浅谈分布式锁--基于数据库实现篇 1、基于数据库表     要实现分布式锁,最简单的方式可能就是直接创建一张锁表,然后通过操作该表中的数据来实现了。     当我们要锁住某个方法或资源时,我们就在该表中增加一条记录,想要释放锁的时候就删除这条记录。     创建这样一张数据库表: CRE...

2018-09-18 21:00:11

阅读数:43

评论数:0

浅谈分布式锁--简介篇

浅谈分布式锁--简介篇 1、什么是分布式锁(分布式系统用到的锁):     分布式锁,是单机锁的一种扩展,主要是为了锁住分布式系统中不同机器代码的物理块或逻辑块。以此保证不同机器之间的逻辑一致性。     在集群等多服务器中经常使用到同步处理一下业务,这是普通的事务是满足不了业务需求,需要分布...

2018-09-18 20:41:55

阅读数:21

评论数:0

二叉排序树的实现

实现一个简化版的treeMap,即一棵二叉排序树,当存在着n条数据的时候,能以log(n)的时间完成节点的插入、删除、查询操作。 public class BinarySortTree { private Node root = null; public Node getRootNod...

2018-08-14 12:57:13

阅读数:44

评论数:0

模拟实现任务分配(模板模式)

在实际应用中有这样一个场景:有m台服务器,有n个任务,需要把这n个任务按一定策略分配给m台服务器来执行,请按以下要求实现该场景: 1、使用List列表代表服务器(列表中每个元素为一个IP地址); 2、使用List列表代表任务(列表中每个元素为任务ID); 3、分配的过程就是把IP地址与任务ID映射...

2018-08-14 12:47:59

阅读数:68

评论数:0

利用AOP实现一个简单的缓存存储、清除的工具

基本要求:利用aop实现一个简单的缓存存储、清除的工具,从实际使用上来说,切面应该在provider层。在service层方法调用和数据库查询之间生效。为了简化过程,不要求与数据库交互,数据可以随机生成,不要求使用redis等中间件,可以直接缓存到内存中。 代码实现非常的基础,能够很好的理解AO...

2018-07-26 21:23:12

阅读数:152

评论数:0

一条SQL查询出每门课程的成绩都大于80的学生姓名是一道有歧义的题吗?

‘用一条SQL语句查询出每门课程的成绩都大于80的学生姓名’是一道歧义题吗? name   kecheng    fenshu  张三     语文             81 张三     数学             90 李四     语文             76 李四     数学...

2018-04-22 22:23:42

阅读数:714

评论数:0

单例模式之懒汉单例(延迟初始化)多线程再解析

单例模式之懒汉单例(延迟初始化)多线程再解析1、多线程下的懒汉单例: public class Lazysingleton { private static Lazysingleton m_instance = null; // 私有默认构造方法,外界无法直接实例化 private ...

2018-04-15 16:51:22

阅读数:158

评论数:2

被破坏的单例模式

被破坏的单例模式我们知道饿汉单例天生是线程安全的,但是通过其他途径单例模式是可以被破坏的。懒汉亦如此。1、通过反射来破解单例模式 public class Eagersingleton implements Serializable { private static final long s...

2018-04-15 13:51:45

阅读数:95

评论数:0

CopyOnWriteArrayList实现原理以及源码解析

CopyOnWriteArrayList实现原理以及源码解析1、CopyOnWrite容器(并发容器) Copy-On-Write简称COW,是一种用于程序设计中的优化策略。 其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然...

2018-04-05 18:28:36

阅读数:52

评论数:0

LinkedList和ArrayList的区别(补充)

LinkedList和ArrayList的区别1、ArrayList继承于 AbstractList, LinkedList继承于 AbstractSequentialList;2、ArrayList基于动态数组的数据结构, LinkedList基于双向链表。 对于随机访问, ArrayList比...

2018-04-05 11:43:05

阅读数:64

评论数:0

LinkedList实现原理以及源码解析(1.7)

LinkedList实现原理以及源码解析(1.7)在1.7之后,oracle将LinkedList做了一些优化,将1.6中的环形结构优化为了直线型了链表结构。1、LinkedList定义: public class LinkedList<E> ext...

2018-04-04 00:32:03

阅读数:55

评论数:0

ArrayList实现原理以及源码解析(补充JDK1.7,1.8)

ArrayList实现原理以及源码解析(补充JDK1.7,1.8)ArrayList的基本知识在上一节已经讨论过,这节主要看ArrayList在JDK1.6到1.8的一些实现变化。JDK版本不一样,ArrayList类的源码也不一样。1、ArrayList类结构: //通过ArrayList实现的...

2018-04-03 23:37:10

阅读数:57

评论数:1

ArrayList实现原理以及源码解析(JDK1.6)

ArrayList实现原理以及源码解析(JDK1.6)1、ArrayList ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 ArrayList不是线程安全的,只能用在单线程环境下。 多线程环境下可以考虑用Collections....

2018-04-03 22:51:53

阅读数:34

评论数:1

多线程下HashMap的死循环

多线程下HashMap的死循环Java的HashMap是非线程安全的。多线程下应该用ConcurrentHashMap。多线程下[HashMap]的问题(这里主要说死循环问题): 1、多线程put操作后,get操作导致死循环。 2、多线程put非NULL元素后,get操作得到NULL值。 3、多线...

2018-04-01 19:35:22

阅读数:991

评论数:0

String、StringBuffer和StringBuilder的区别

String和StringBuffer、StringBuilder的区别String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)可变性 String类中使用字符数组保存字符串,private final char value[],...

2018-04-01 12:30:43

阅读数:29

评论数:0

ConcurrentHashMap实现原理以及源码解析

ConcurrentHashMap实现原理以及源码解析ConcurrentHashMap是Java1.5中引用的一个线程安全的支持高并发的HashMap集合类。1、线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情...

2018-04-01 11:55:18

阅读数:1198

评论数:0

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