自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 AtomicReference

此类可以原子性的修改引用类型的变量.底层通过 UnSafe 实现原子性操作.public class AtomicReference<V> implements java.io.Serializable { private static final long serialVersionUID = -1848883965231344442L; private stati...

2018-06-30 16:25:02 698

原创 AtomicIntegerFieldUpdater

此类针对某一个类的 volatile int 字段有原子性要求    对字段的原子性操作底层通过 UnSafe 实现字段必须是volatile类型的,在线程之间共享变量时保证立即可见字段的描述类型(修饰符public/protected/default/private)是与调用者与操作对象字段的关系一致。也就是说调用者能够直接操作对象字段,那么就可以反射进行原子操作。对于父类的字段,子类是不能直...

2018-06-30 15:35:29 223

原创 AtomicInteger

public class AtomicInteger extends Number implements java.io.Serializable { private static final long serialVersionUID = 6214790243416807050L; // Unsafe类使Java拥有了像C语言的指针一样操作内存空间的能力 private static f...

2018-06-30 14:49:43 213

原创 JVM学习笔记---Java内存模型 与线程

12.1 概述    TPS : 每秒事务处理数.12.2 硬件的效率与一致性    计算机的处理器运算速度和存储设备有几个数量级的差距,现代计算机系统加入一层读写速度尽可能 接近处理器运算速度的高速缓存.    高速缓存 : 将运算所需要的数据复制到缓存中,让运算快速进行.当运算结束后再从缓存同步到 内存之中,这样处理器 就不必等待缓慢的内存读写.    缓存一致性 : 在多处理器系统中 ,每个...

2018-05-31 22:38:33 189

转载 SafeProperties

package com.pinnet.basic.properties;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import jav

2018-01-16 09:56:54 578

原创 同步,异步,阻塞,非阻塞

1.同步和异步1.1 消息通信机制 所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由调用者主动等待这个调用的结果。异步则是相反,调用在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在调用发出后,被调用者通过状态、通知来通知调用者,

2017-12-19 13:48:35 201

原创 JFrame

package com.pinnet.basic.ui;import java.awt.Color;import java.awt.Container;import javax.swing.JFrame;import javax.swing.JTabbedPane;import javax.swing.WindowConstants;public class UI{ /**

2017-12-01 15:08:27 242

原创 JVM学习笔记(二)——对象之生

1.对象的创建1.1 当虚拟机遇到一条new指令时a.判断该指令参数能否在常量池定位到一个类的符号引用;b.符号引用代表的类是否已被加载 解析和初始化过。如果没有则执行类加载。c.内存分配,对象所需的内存在类加载后就完全确定进行内存分配; 指针碰撞:java堆内存完全规整。 java堆为一块内存,中间一个指针作为分界点指示器,分配内存时将指针向空闲的内存那边挪动一段与对象大小相等的距离。

2017-11-19 16:42:45 273

原创 JVM学习笔记(五)——垃圾收集器

虚拟机之Server/ClientServer1.启动时较慢。因为此模式下会收集较多的系统性能信息,使用更加复杂的优化算法对程序进行优化;2.程序启动并进入运行稳定期后,执行速度显著提高;3.适用于后台长期运行的程序。Client1.启动时较快。因为此模式下只会收集较少的系统性能信息;2.适用于桌面应用程序。Serial收集器(新生代)1.单线程收集器,工作时停止其他线程(Stop The Wo

2017-11-16 11:39:38 299

原创 JVM学习笔记(四)——垃圾收集算法

标记—清除(Mark-Sweep)算法1.定义最基础的算法,包括标记和清除两部分。首先把需要回收的对象进行标记,标记完成后进行回收。2.缺点a.标记和清除的效率都很低;b.该算法收集后产生大量不连续的内存碎片,导致分配大对象没有完整的足够大的内存而触发GC;复制算法1.定义将内存分为大小相等的A,B两块,先在A内存上分配对象,当A内存不够使用时将所有存活的对象复制到B内存(复制后的对象内存是

2017-11-16 10:13:39 255

原创 JVM学习笔记(一)—— 运行时数据区

运行时数据区:1.程序计数器(线程私有)当前线程的所执行字节码的行号指示器,字节码解释器工作时通过改变计数器的值选择下一条需要转型的字节码指令。java虚拟机的多线程通过轮流切换分配处理器执行时间来实现,一个时刻,一个处理器只会执行一条线程。为了保证线程切换后能恢复正确的位置,因此每个线程都有一个独立的程序计数器。线程执行 java 方法时计数器

2017-11-15 22:32:39 473

原创 UTC 与 Unix时间戳

UTC时间  世界标准时间,格林威治时间Unix时间戳 当前时间距本时区1970年毫秒数所以同一时刻全球的时间戳都相等

2017-11-15 17:48:43 1590

原创 JVM学习笔记(三)—— 对象之死

收集的对象:已死的对象一. 如何判断对象已死?1.浅谈引用引用分为四种:强引用,软引用,弱引用,虚引用。这四种引用强度依次减弱。强引用:类似于“Object obj=new Object()”这类引用, 只要强引用还存在,引用的对象就永远不会被回收。软引用:描述一些还有用但并非必需的对象。 在将要发生内存溢出异常之前,会把这些对象列进回收范围之中进行第二次回收,如果这次回收还没有足

2017-11-15 17:17:09 340

原创 JAVA集合

ArrayList底层使用数组实现。创建时有初始容量,当容量不满足是进行扩容操作,然后将原数组内容复制到新数组。因此其查询效率较高。但是当其数据结构发生改变时(如增加时需要扩容,删除操作),其效率较低。LinkedList底层使用双向链表实现。每个节点只关注它的前后节点。因此增加,删除操作效率较高。查询时必须进行对链表进行遍历,因此查询效率较低。 private static cl

2017-11-15 15:22:31 214

原创 JAVA包装类

JAVA包装类 Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class),有些地方也翻译为外覆类或数据类型类。 包装类主要进行基本类型与对象之间进行转,还有一些其他的常用方法。下面以I

2017-11-15 10:22:54 239

web相关jar包及源码

web常用jar包及源码

2017-08-23

空空如也

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

TA关注的人

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