导航菜单
路很长,又很短
博主信息
昵   称:Cocodroid ->关于我
Q     Q:2531075716
博文数:290
阅读量:550289
访问量:51379
至今:
×
分享博文列表:【Java
· Java的四种代码块
    Java代码块 一.在Java中,使用”{}”括起来的代码称为代码块,代码块可以分为以下四种: 1.普通代码块:就是类中方法的方法体  publicvoidxxx(){      //code  } 2.构造块:用{}裹起来的代码片段,构造块在创建对象时会被调用,每次创建对象时都 ...更多
(293)阅读 2017-10-13

· 彻底理解ThreadLocal
    ThreadLocal是什么  早在JDK1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。  当使用ThreadLocal维护变量时,Thread ...更多
(286)阅读 2017-09-28

· [置顶] 从Java future 到 Guava List
    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/51232004前言     随着移动互联网的蓬勃发展,手机App层出不穷,其业务也随之变得错综复杂。针对于开发人员来说,可能之前的一个业务只 ...更多
(277)阅读 2017-09-25

· 【J2SE】为什么静态内部类的单例可以实现延迟加载
    一、单例  单例是一个常见的设计模式,常见有四种方式来实现,即懒汉式、饿汉式、枚举和静态内部类实现,这个模式的本质是为了控制内存中某个类的实例数量。  懒汉式采用懒加载,时间换空间,因此需要注意获取实例时的并发安全问题,即便正确并发,每次获取实例的时候还是要浪费一次判断;饿汉式空 ...更多
(250)阅读 2017-09-24

· 深入Java 1.5枚举类型的内部实现原理
    Java是一种面向对象的高级编程语言。它的出众之处就在于它的简洁。一个程序员所要做的就是创建类(CreateClass)以及定义接口(DefineInterface),如此而已。当然,这种简洁和优美是有代价的,比如失去了Enum这种广泛使用的数据类型就是一个不小的损失。在Java ...更多
(216)阅读 2017-09-23

· 35 个 Java 代码性能优化总结
    代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG ...更多
(261)阅读 2017-09-21

· 源码阅读之CyclicBarrier
    源码阅读是基于JDK7,本篇主要涉及CyclicBarrier常用方法源码分析。1.概述CyclicBarrier是一个同步辅助类,它允许一组线程互相等待,直到所有线程都到达某个公共屏障点(也可以叫同步点),即相互等待的线程都完成调用await方法,所有被屏障拦截的线程才会继续运 ...更多
(231)阅读 2017-09-20

· Java HashMap中在resize()时候的rehas
    HashMap的扩容机制---resize()虽然在hashmap的原理里面有这段,但是这个单独拿出来讲rehash或者resize()也是极好的。什么时候扩容:当向容器添加元素的时候,会判断当前容器的元素个数,如果大于等于阈值(知道这个阈字怎么念吗?不念fa值,念yu值四声)- ...更多
(340)阅读 2017-09-16

· 谈谈ThreadLocal的设计及不足
    用Java语言开发的同学对ThreadLocal应该都不会陌生,这个类的使用场景很多,特别是在一些框架中经常用到,比如数据库事务操作,还有MVC框架中数据跨层传递。这里我们简要探讨下ThreadLocal的内部实现及可能存在的问题。首先问自己一个问题,让自己实现一个这个的功能类的 ...更多
(228)阅读 2017-09-15

· 深入分析 ThreadLocal 内存泄漏问题
    ThreadLocal的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。但是如果滥用ThreadLocal,就可能会导致内存泄漏。下面,我们将围绕三个方面来分析ThreadLocal内存泄漏的问题 ...更多
(245)阅读 2017-09-14

· Java多线程系列--“JUC锁”11之 Semaphore
    Semaphore简介Semaphore是一个计数信号量,它的本质是一个"共享锁"。信号量维护了一个信号量许可集。线程可以通过调用acquire()来获取信号量的许可;当信号量中有可用的许可时,线程能获取该许可;否则线程必须等待,直到有可用的许可为止。线程可以通过release( ...更多
(226)阅读 2017-09-14

· Java多线程系列--“JUC锁”10之 CyclicBar
    CyclicBarrier简介CyclicBarrier是一个同步辅助类,允许一组线程互相等待,直到到达某个公共屏障点(commonbarrierpoint)。因为该barrier在释放等待线程后可以重用,所以称它为循环的barrier。注意比较CountDownLatch和Cy ...更多
(213)阅读 2017-09-13

· Java多线程系列--“JUC锁”09之 CountDown
    CountDownLatch简介CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。CountDownLatch和CyclicBarrier的区别(01)CountDownLatch的作用是允许1或N个线程等待其他线 ...更多
(187)阅读 2017-09-12

· Java多线程系列--“JUC锁”08之 共享锁和Reent
    ReadWriteLock和ReentrantReadWriteLock介绍ReadWriteLock,顾名思义,是读写锁。它维护了一对相关的锁——“读取锁”和“写入锁”,一个用于读取操作,另一个用于写入操作。“读取锁”用于只读操作,它是“共享锁”,能同时被多个线程获取。“写入锁 ...更多
(218)阅读 2017-09-11

· 偏向锁,轻量级锁与重量级锁的区别与膨胀
    一直被这三个锁的膨胀问题所困扰,不知道到底实在什么时候会有偏向锁升级到轻量级锁,什么时候由轻量级锁升级到重量级锁。找到好久,也没有找到简洁明了的答案。    综合多个方面的描述综合自己的理解,特地记录下来。但是也有可能理解有误。  先依然描述这三个锁是什么:这里直接从《深入理解J ...更多
(281)阅读 2017-09-10

· Java并发编程:Synchronized底层优化(偏向锁、
    Java并发编程系列:Java并发编程:核心理论 Java并发编程:Synchronized及其实现原理Java并发编程:Synchronized底层优化(轻量级锁、偏向锁)Java并发编程:线程间的协作(wait/notify/sleep/yield/join)Java并发编程 ...更多
(322)阅读 2017-09-10

· Java对象大小内幕浅析
     最近突发奇想,忽然对Java对象的内存大小感兴趣,去网上搜集了一些资料,并且做一下整理,希望能够各位帮助。 如果:你能算出newString(“abc”)这个对象在JVM中占用内存大小(64位JDK7中压缩大小48B,未压缩大小64B),那么看到这里就可以结束了~ Java对象 ...更多
(237)阅读 2017-09-10

· 用Netty开发中间件:高并发性能优化
    用Netty开发中间件:高并发性能优化最近在写一个后台中间件的原型,主要是做消息的分发和透传。因为要用Java实现,所以网络通信框架的第一选择当然就是Netty了,使用的是Netty4版本。Netty果然效率很高,不用做太多努力就能达到一个比较高的tps。但使用过程中也碰到了一些 ...更多
(304)阅读 2017-08-26

· Java多线程系列--“JUC锁”07之 LockSuppo
    LockSupport介绍LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。LockSupport中的park()和unpark()的作用分别是阻塞线程和解除阻塞线程,而且park()和unpark()不会遇到“Thread.suspend和Thread.resu ...更多
(255)阅读 2017-08-26

· Java并发编程:volatile关键字解析
    Java并发编程:volatile关键字解析  volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java5之后,volatile关键字才得以重获生机。  volatile关键字 ...更多
(270)阅读 2017-08-22