自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 关于数据序列化(4),FastJson的两个bug

fastJson循环引用的一个bug。 fastJson可以将一个对象序列化为json,也可以通过反序列化出一个完整的对象。且支持循环引用。package com.sincetimes.website.core.common.support;import com.sincetimes.website.core.common.vo.ToStringAbstract;/** ::new */publ

2017-07-29 19:03:34 4303

原创 zookeeper(1) linux下的安装

下载安装跟nginx的安装有点儿相似,window和linux都是同于一个安装文件 安装下载后上传到服务器先,然后解压tar -zxvf zookeeper-3.4.9.tar.gz 复制或改名 [root@iZ2zei0nwllapkwklisoncZ conf]# pwd /data/zookeeper-3.4.9/conf [root@iZ2zei0nwllapkwklisoncZ

2017-07-22 22:31:17 350

原创 Java 文件与字节流(InputStream.available()在本地文件和网络文件的异同)

1 文件到字节流1.1 IOIO:输入流,直接写完close即可InputStream in = new FileInputStream(fileName); DataInputStream stream = new DataInputStream(in); IO:输出流,直接读完close即可,即使FileOutputStream(String name, boolean append)可以有

2017-07-20 14:39:04 1617

原创 Java 并发与多线程规范(4) 自旋锁是可重入的吗?CAS与自旋锁的关系,CAS的ABA问题,以及乐观锁,悲观锁,互斥锁,读写锁的整理

CASCAS,自旋锁跟compare and set有关系,但是并不是CAS就是自旋锁。我们看一段代码:/* 不同线程检测最大值 */ AtomicLong largest = new AtomicLong(); long obsvValue = 0; /* 错误的方式,此更新不是原子性的 */ largest.set(Math.max

2017-07-19 15:06:32 2009

原创 Java 并发与多线程规范(3)happen before和volatile总结,ArrayList和CopyOnyWriteList的区别

volatile的语义volatile 的语义是memory barrier可以参考一下Java 内存模型。线程在启动后,读取内存Heap 值复制到自己的工作缓存,比如寄存器、N级缓存等。寄存器、N级缓存在CPU,如果需要其他线程感知的话,需要同步是主存中,如果其他线程看到变量是volatile的话,回去主存加载。Heap 就存放在主存中,也就是内存中。volatile 实际上是强制线程去主存中读取

2017-07-19 11:42:53 691

原创 Java 多线程规范(2)线程池详解

十四,线程池详解线程池示例public class ThreadPoolTool { public static final ThreadPoolExecutor THREAD_POOL_EXECUTOR = new ThreadPoolExecutor( 0, Integer.MAX_VALUE, 60L,

2017-07-18 21:51:05 938

原创 java 多线程规范(1)常用的多线程的场景

一,线程池的作用线程池的作用:线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开

2017-07-18 21:48:43 925 2

原创 远程调用rpc的时候 远程的异常如何处理

远程调用rpc的时候 远程的异常如何处理?返回 错误码+错误描述 这个和RPC协议定义有关系了,一般RPC协议会有错误码的,比如0是正常,其他是错误码,并且附带errMsg 如果 远程rpc是层层调用的,就层层返回,可以加入分布式 追踪系统RPC timeout

2017-07-17 00:03:50 10241 1

原创 REDIS (14) Jedis简单监控

redis(jedis)监控项目中往往需要在redis服务不可用的时候出发告警发短信或者邮件给运维或者开发人员。代码不复杂但是尽量干净简单可靠。代码:import java.util.Objects;import java.util.concurrent.atomic.AtomicInteger;import java.util.function.Supplier;/*** * 定时执行t

2017-07-16 21:18:23 1306 2

原创 REDIS (13) 并发使用Jedis原理分析

redis(jedis)监控项目中往往需要在redis服务不可用的时候出发告警发短信或者邮件给运维或者开发人员。代码不复杂但是尽量干净简单可靠。2. jedis的部分源码我们先从Jedis的源代码入手了解Jedis JedisPool pool = new JedisPool(poolConfig, host, port, timeout, psw, database);找到JedisFactor

2017-07-15 00:04:22 4000

原创 java8常用的函数,以及lamda表达式有非运行异常能否在外部捕获

Stream API中经常使用的函数式接口 函数式接口 参数类型 返回类型 描述 Supplier<T> 无 T 提供一个T类型的值 Consumer<T> T void 处理一个T类型的值 BiConsumer<T,U> T, U void 处理T类型和U类型的值 Predicate<T> T boolean 一个计算B

2017-07-12 23:57:01 1290

原创 Exception

我们先自定义个运行时异常package redis.clients.jedis.exceptions;public class JedisException extends RuntimeException { private static final long serialVersionUID = -2946266495682282677L; public JedisException(St

2017-07-12 22:12:50 332

原创 关注程序性能(2) jstack, jmap, jvisualvm

jstacklocalhost:jvm_test_dump bao$ jstack 574262017-07-07 10:58:50Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.131-b11 mixed mode):"JMX server connection timeout 14" #14 daemon prio=9 os_pr

2017-07-07 11:26:42 881

原创 如何用Java和Redis设计一个高效的先入先出的队列

问题:如何用redis和Java设计一个高效的先进先出队列?分析: redis的list底层是多个ziplist结构组成的“双向”链表。中间部分还压缩了一下。 最外层是由两个哈希表构成的dict。 哈希表的get(key)时间复杂度为O(1),而且这个O(1)理论上不会因为所占内存的大小和元素数目所改变。list的出队列和入队操作也都是O(1)。 Java的队列时间复杂度也应为O(1)。可不

2017-07-06 21:54:07 9301

原创 Spring mvc(3)如何获取所有的requestMapping

Java 代码@AutowiredApplicationContext context;private Map<Object, Object> requestMappings() { Map<String, Object> map = context.getBeansWithAnnotation(Controller.class); Map<Object, Obj

2017-07-05 16:53:29 3351

原创 Spring mvc(2)spring mvc+quarz+mybatis+druid

1.定时器pom.xml<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.3</version></dependency>修改demo-servlet.xml的配置1.增加 xmlns:task="http://www.

2017-07-04 21:21:40 429

数据结构树与二叉树数据结构树与二叉树

数据结构树与二叉树数据结构树与二叉树数据结构树与二叉树

2010-05-05

C程序设计语言(第2版·新版).rar+C程序设计语言(第2版·新版)习题解答.rar

C程序设计语言(第2版·新版).rar+C程序设计语言(第2版·新版)习题解答.rarC程序设计语言(第2版·新版).rar+C程序设计语言(第2版·新版)习题解答.rar

2010-03-27

codeblocks 编程好软件 c++ 各种

codeblocks 编程好软件 c++ 学生编程的好帮手

2010-03-21

Matlab【课件Matlab【课件Matlab【课件】

Matlab【课件Matlab【课件Matlab【课件】

2010-03-21

素描自学 让编程之余 自学绘画水到渠成

素描自学 让编程之余 自学绘画水到渠成 爱好绘画的可以下

2010-03-21

21天学通c++ 习题以及代码

21天学通c++ 习题及代码 学习《21天学通c++ 》的好伴侣

2010-02-15

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

TA关注的人

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