• 等级
  • 140802 访问
  • 138 原创
  • 2 转发
  • 24747 排名
  • 21 评论
  • 27 获赞

JAVA8新特性之Stream

为什么需要StreamStream作为Java8的一大亮点,它与java.io包里的InputStream和OutputStream是完全不同的概念。它也不同于StAX对XML解析的Stream,也不是AmazonKinesis对大数据实时处理的Stream。Java8中的Stream是对集合(Collection)对象功能的增强,它专注于对集合对...

2019-03-16 12:57:34

Kafka部署到服务器

Kafka部署到服务器下载从官方镜像地址下载到安装目录并解压wgethttp://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgztar-zxfkafka_2.11-2.0.0.tgz-C/data1/ehserver/env修改配置文件修改config/server.properti...

2019-03-16 11:41:25

服务器部署Zookeeper

Zookeeper下载从官方镜像地址下载到安装目录并解压wgethttps://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gztar-zxfzookeeper-3.4.13.tar.gz-C/data1/ehserver/env修改配置文件cpco...

2019-03-16 11:38:12

用栈实现一般公式的解析器(中级版)

用栈实现一般公式的解析器:1、采用栈来进行出栈运算,运算值再入栈的方法。2、支持小数点,负数的运算。3、接收参数可以是一个全部数字的公式,也可以是一个包含变量的公式,另外一个参数就是公式里面的参数对应key,values的Map,key是变量名,value是变量的值。优化点:4、在//处理公式,对于负数的前面补0formula=formula.replaceAll("...

2019-03-16 11:25:55

java进程占用CPU过高常见的两种情况及分析定位

java进程爆cpu的快速定位1、背景在程序开发的过程中,难免遇到进程占用cpu过高(现网居多、开发环境)的情况,现网出现这种情况就需要及时的能定位到问题,快速解决,否则就导致系统不可用,用户投诉等多种一系列的问题。2、java进程占用CPU过高常见的两种情况:代码中有死循环或者接近死循环的操作快速创建大量临时变量,导致频繁触发gc回收3、在windows中的定位方法如图所示:...

2019-01-03 17:10:36

如何获取栈的最小值

1、基本方法:增加辅助栈,辅助栈里面存储每次存放的最小值。如图所示原理,代码实现:publicclassMinStack1{ privateList<Integer>data=newArrayList<Integer>(); privateList<Integer>mins=newArrayList<Integ...

2018-09-29 20:34:46

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

Long、long类型的比较遇到的问题:1、long是基本类型Long是对象类型。 publicstaticvoidmain(String[]args){ LongA=127l; LongB=127l; longC=127; longD=127; //Java中如果使用==双等于比较对象,等于比较的是两个对象的内...

2018-09-21 20:38:36

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

浅谈分布式锁--基于缓存(Redis,memcached,tair)实现篇:一、Redis分布式锁1、Redis实现分布式锁的原理:   1.利用setnx命令,即只有在某个key不存在情况才能set成功该key,这样就达到了多个进程并发去set同一个key,只有一个进程能set成功,如果设置了锁返回1,已经有值没有设置成功返回0。   2.死锁问题,仅有一个setnx命令,r...

2018-09-19 19:50:04

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

浅谈分布式锁--基于Zookeeper实现篇:1、基于zookeeper临时有序节点可以实现的分布式锁。其实基于ZooKeeper,就是使用它的临时有序节点来实现的分布式锁。来看下Zookeeper能不能解决前面提到的问题。   锁无法释放:使用Zookeeper可以有效的解决锁无法释放的问题,因为在创建锁的时候,客户端会在ZK中创建一个临时节点,一旦客户端获取到锁之后突然挂掉(Se...

2018-09-19 19:25:50

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

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

2018-09-18 21:00:11

浅谈分布式锁--简介篇

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

2018-09-18 20:41:55

二叉排序树的实现

实现一个简化版的treeMap,即一棵二叉排序树,当存在着n条数据的时候,能以log(n)的时间完成节点的插入、删除、查询操作。publicclassBinarySortTree{ privateNoderoot=null; publicNodegetRootNode(){ returnthis.root; } /**向二叉排序树中插入结点*/ ...

2018-08-14 12:57:13

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

在实际应用中有这样一个场景:有m台服务器,有n个任务,需要把这n个任务按一定策略分配给m台服务器来执行,请按以下要求实现该场景:1、使用List列表代表服务器(列表中每个元素为一个IP地址);2、使用List列表代表任务(列表中每个元素为任务ID);3、分配的过程就是把IP地址与任务ID映射上的过程;4、策略要支持多个,如按IP地址随机、按任务数量平分等,策略需要支持可扩展(扩展时不用修改...

2018-08-14 12:47:59

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

基本要求:利用aop实现一个简单的缓存存储、清除的工具,从实际使用上来说,切面应该在provider层。在service层方法调用和数据库查询之间生效。为了简化过程,不要求与数据库交互,数据可以随机生成,不要求使用redis等中间件,可以直接缓存到内存中。代码实现非常的基础,能够很好的理解AOP以及缓存的基本原理,想要深入理解可以去查阅更多的资料。仅供自己学习。1、实体类:public...

2018-07-26 21:23:12

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

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

2018-04-22 22:23:42

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

单例模式之懒汉单例(延迟初始化)多线程再解析1、多线程下的懒汉单例: publicclassLazysingleton{ privatestaticLazysingletonm_instance=null; //私有默认构造方法,外界无法直接实例化 privateLazysingleton(){ } //静态工厂方法 publicstatic...

2018-04-15 16:51:22

被破坏的单例模式

被破坏的单例模式我们知道饿汉单例天生是线程安全的,但是通过其他途径单例模式是可以被破坏的。懒汉亦如此。1、通过反射来破解单例模式 publicclassEagersingletonimplementsSerializable{ privatestaticfinallongserialVersionUID=888L; privatestaticEagersingl...

2018-04-15 13:51:45

CopyOnWriteArrayList实现原理以及源码解析

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

2018-04-05 18:28:36

LinkedList和ArrayList的区别(补充)

LinkedList和ArrayList的区别1、ArrayList继承于AbstractList,LinkedList继承于AbstractSequentialList;2、ArrayList基于动态数组的数据结构,LinkedList基于双向链表。 对于随机访问,ArrayList比较占优势,LinkedList插入、删除元素比较快,如果只要调整指针的指向那么时间复杂度是O(1),但...

2018-04-05 11:43:05

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

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

2018-04-04 00:32:03

powerfuler

己所不欲,勿施于人!
关注
  • 计算机软件/Java开发工程师
  • 中国 河南省 开封市