- 博客(5)
- 资源 (18)
- 收藏
- 关注
原创 equals()和hashcode()
java中,在定义bean对象时,一般会定义这两个方法,是否两个方法必须定义呢?两者又是如何协同的呢? equals方法如果返回ture,代表两个对象‘’相等‘’,这里的相等指的是定义equals方法时指定的属性值相等,但并不一定相同,比如两个对象equals返回true,但是没有相同的hashcode,你会发现添加进set集合里会有两个相等的对象。 同样,ha
2017-04-12 15:20:58 227
原创 java 字符串常量池
java中字符串的创建有两种形式,一是采用字面常量的形式,一种是采用new的形式。这两种字符串在内存储存上有一定的差异性,第一种字面常量形式,jvm单独维护一块内存区域称为字符串常量池或者字符串字面量池,目的是为了减少字符串对象的重复创建。第二种new的方式创建的对象在堆上,和其他堆对象没什么区别。 对于字面量的形式,每当有新的字面量被创建时,jvm会检查常量池是否有相同对象的引用
2017-04-11 17:29:49 305
原创 volatile可见性原理
java中volatile关键字,是可以保证共享变量在线程间具有可见性的,什么意思呢? 首先理解可见性,反过来问,为什么共享变量在线程间不是可见的呢(严格说是为什么不总是可见呢)?根据jmm,各个线程对共享变量拥有自己的工作副本,所有的操作,都是针对工作副本操作的,之后刷新副本到主内存,此时,其他线程才可以看到最新的共享变量。如果某一线程更改共享变量后,还未刷新到主存,而另外一个线程对该变量做读取
2017-04-09 22:27:06 2770
原创 java线程池
java提供的调度框架如上图所示,最顶层接口Executor定义了执行任务的接口execute,其下有两个关键类实现了执行、调度的方法。java线程池提供了一个工厂类Executors来创建线程池,主要提供了以下几种:FixedThreadPool、SingleThreadExecutor、CachedThreadPool,以及可定时运行的线程池。本文重点介绍前三种池的原理以及ThreadPool
2017-02-08 20:20:16 286
原创 线程状态
线程状态有:NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATEDBLOCKED是等待获得对象锁WAITING是调用了wait, sleep, parksleep, 进入TIMED_WAITING状态,不出让锁wait, 进入TIMED_WAITING状态,出让锁,并进入对象的等待队列park
2017-02-06 10:21:20 429
物联网那点事儿
2017-04-18
makefile文件开发大全
2009-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人