Java基础
文章平均质量分 83
zhongxiangbo
这个作者很懒,什么都没留下…
展开
-
Java事务处理总结
一、什么是Java事务事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态。隔离性表示在事务执行过程中对数据原创 2017-04-28 08:49:48 · 8077 阅读 · 0 评论 -
源码-Integer的缓存
本文将介绍 Java 中 Integer 缓存的相关知识。这是 Java 5 中引入的一个有助于节省内存、提高性能的特性。首先看一个使用 Integer 的示例代码,展示了 Integer 的缓存行为。接着我们将学习这种实现的原因和目的。你可以先猜猜下面 Java 程序的输出结果。很明显,这里有一些小陷阱,这也是我们写这篇文章的原因。[java] view原创 2017-04-27 23:22:30 · 295 阅读 · 0 评论 -
Java类加载原理解析
1 基本信息 每个开发人员对Java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。Java的类加载机制是技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多,但是对其背后的机理有一定理解有助于排查程序中出现的类加载失败等技术问题,对理解java虚拟机的连接模型和java语言的动态性都有很大帮助转载 2017-04-27 23:04:54 · 225 阅读 · 0 评论 -
Java:对象的强、软、弱和虚引用
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zhangjunhd.blog.51cto.com/113473/53092本文介绍对象的强、软、弱和虚引用的概念、应用及其在UML中的表示。author: ZJ 07-12-1Blog: [url]http://zhangjunhd.blog.51cto.com/转载 2017-04-27 22:57:42 · 254 阅读 · 0 评论 -
Java序列化的几种方式
一.Java序列化的作用 有的时候我们想要把一个Java对象变成字节流的形式传出去,有的时候我们想要从一个字节流中恢复一个Java对象。例如,有的时候我们想要把一个Java对象写入到硬盘或者传输到网路上面的其它计算机,这时我们就需要自己去通过java把相应的对象写成转换成字节流。对于这种通用的操作,我们为什么不使用统一的格式呢?没错,这里就出现了java的序列化的概念。转载 2017-04-28 11:23:06 · 1097 阅读 · 0 评论 -
源码解析-集合-HashMap
一、HashMap概述 HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 值得注意的是HashMap不是线程安全的,如果想要线程安全的HashMap,可以通过Co转载 2017-05-01 09:13:28 · 264 阅读 · 0 评论 -
Java线程Dump分析工具 - jstack
jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式: jstack [-l][F] pid 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的转载 2017-05-01 10:13:54 · 355 阅读 · 0 评论 -
jstack和线程dump分析
一:jstackjstack命令的语法格式: jstack 。可以用jps查看java进程id。这里要注意的是:1. 不同的 JAVA虚机的线程 DUMP的创建方法和文件格式是不一样的,不同的 JVM版本, dump信息也有差别。本文中,只以 SUN的 hotspot JVM 5.0_06 为例。2. 在实际运行中,往往一次 dump的信息,还不足以确认问题。建议产生三次 dum转载 2017-05-01 10:12:49 · 180 阅读 · 0 评论 -
volatile深入分析( 什么时候使用volatile)
volatile 变量提供了线程的可见性,并不能保证线程安全性和原子性。什么是线程的可见性:锁提供了两种主要特性:互斥(mutual exclusion) 和可见性(visibility)。互斥即一次只允许一个线程持有某个特定的锁,因此可使用该特性实现对共享数据的协调访问协议,这样,一次就只有一个线程能够使用该共享数据。可见性要更加复杂一些,它必须确保释转载 2017-04-28 14:51:46 · 838 阅读 · 0 评论 -
java类初始化顺序
我们大家都知道,对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点: Java代码 public class InitialOrderTest { // 静态变量 public static String原创 2017-08-25 20:54:58 · 237 阅读 · 0 评论