- 博客(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 4323
原创 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 364
原创 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 1751
原创 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 2026
原创 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 708
原创 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 957
原创 java 多线程规范(1)常用的多线程的场景
一,线程池的作用线程池的作用:线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开
2017-07-18 21:48:43 953 2
原创 远程调用rpc的时候 远程的异常如何处理
远程调用rpc的时候 远程的异常如何处理?返回 错误码+错误描述 这个和RPC协议定义有关系了,一般RPC协议会有错误码的,比如0是正常,其他是错误码,并且附带errMsg 如果 远程rpc是层层调用的,就层层返回,可以加入分布式 追踪系统RPC timeout
2017-07-17 00:03:50 10330 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 1330 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 4049
原创 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 1310
原创 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 345
原创 关注程序性能(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 898
原创 如何用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 9366
原创 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 3394
原创 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 442
C程序设计语言(第2版·新版).rar+C程序设计语言(第2版·新版)习题解答.rar
2010-03-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人