![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java相关
文章平均质量分 86
JieTouLangRen
C/C++/Java
展开
-
java对象序列化学习笔记
目前网络上关于对象序列化的文章不少,但是我发现详细叙述用法和原理的文章太少。本人把自己经过经验总结和实际运用中的体会写成的学习笔记贡献给大家。希望能为整个java社区的繁荣做一点事情。 序列化的过程就是对象写入字节流和从字节流中读取对象。将对象状态转换成字节流之后转载 2010-07-09 16:18:00 · 535 阅读 · 0 评论 -
深入理解Java内存模型(四)——volatile
volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码:class VolatileFeaturesExample { volatile long vl = 0L转载 2014-03-31 21:05:14 · 717 阅读 · 0 评论 -
深入理解Java内存模型——总结
处理器内存模型顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照。JMM和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序一致性模型来实现处理器和JMM,那么很多的处理器和编译器优化都要被禁止,这对执行性能将会有很大的影响。根据对不同类型读/写操作组合的执行顺序的放松,可以把常见处理器的内存模型划分为下面几转载 2014-03-31 21:55:47 · 700 阅读 · 0 评论 -
深入理解Java内存模型(三)——顺序一致性
数据竞争与顺序一致性保证当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下:在一个线程中写一个变量,在另一个线程读同一个变量,而且写和读没有通过同步来排序。当代码中包含数据竞争时,程序的执行往往产生违反直觉的结果(前一章的示例正是如此)。如果一个多线程程序能正确同步,这个程序将是一个没有数据竞争的程序。JMM对正确同步的多线程转载 2014-03-30 23:38:58 · 904 阅读 · 0 评论 -
深入理解Java内存模型(二)——重排序
数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型:名称代码示例说明写后读a = 1;b = a;写一个变量之后,再读这个位置。写后写a = 1;a = 2;写一个变量之后,再写这个变量。读后写a = b;b = 1;读一个变量之后转载 2014-03-30 23:22:01 · 791 阅读 · 0 评论 -
深入理解Java内存模型(一)——基础
并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之转载 2014-03-30 23:16:24 · 737 阅读 · 0 评论 -
JNI快速入门
JNI快速入门JNI为Java Native Interface 即Java本地接口,使用此种机制可以实现Java和C/C++互相调用.本文对该机制进行快速入门,并记录了我在整个过程中遇到的问题及解决方法。Java调用C++代码Java调用C++代码本质上是对C++生成的动态库进行调用而不是直接对C/C++代码进行调用。第一步:设计Java端接口;public原创 2012-12-15 22:51:25 · 3163 阅读 · 1 评论 -
C++与Java之同与不同
As a C++ programmer, you already have the basic idea of object-oriented programming, and the syntax of Java no doubt looks familiar to you. This makes sense since Java was derived from C++. However, t转载 2011-10-21 23:21:13 · 1486 阅读 · 0 评论 -
为什么Java比C++慢?
Why Java Will Always Be Slower than C++by Dejan Jelovic "Java is high performance. By high performance we mean adequate. By adequate we mean slow."-Mr. Bunny Anybody that has ever used a n转载 2011-10-21 23:52:42 · 1518 阅读 · 0 评论 -
Swing个性化编辑面板
最近在完成作业时需要一个个性化的编辑面板,以下是基于JTextPaned的一个实现。运行效果如下:以下是全部代码:import java.awt.BorderLayout;import java.awt.Color;import java.awt.GraphicsEnvironment;import java.awt.event.ActionEvent;import原创 2012-03-11 18:40:19 · 1206 阅读 · 0 评论 -
特殊的String
A Brief Summary of String Class一个String对象是一个unicode字符序列.在C和C++中,string仅仅是一个字符数组(标准C++定义了string类),Java的String是核心包java.lang中的一个对象类。与普通class不同之处表现在:除了调用String的构造方法之外,还可以这样创建String对象:String s1 =翻译 2011-10-30 10:57:41 · 1405 阅读 · 0 评论 -
Java泛型初探
泛型是Java SE 5.0中引入的一项特征,自从这项语言特征出现多年来,我相信,几乎所有的Java程序员不仅听说过,而且使用过它。关于Java泛型的教程,免费的,不免费的,有很多。我遇到的最好的教材有:The Java TutorialJava Generics and Collections, by Maurice Naftalin and Philip Wadler转载 2012-04-15 14:42:03 · 1078 阅读 · 0 评论 -
AspectJ拦截异常
今天在完成作业时,需要采用AOP拦截系统中的异常,查了一些资料,实现起来倒是蛮简单的。实现代码如下:before(Exception e):handler(Exception+)&& args(e){ //异常处理代码}Exception+:Exception及其子类;handler:AspectJ提供的原始切点,用来捕获异常的执行。原创 2012-03-16 22:08:17 · 2878 阅读 · 0 评论 -
Java回溯法求全排列
public class Arrange { private static final int n = 5; private static int x[] = new int[n + 1]; private static int count = 0; public static void main(String args[]) {原创 2011-03-03 15:40:00 · 2036 阅读 · 0 评论 -
Java集合框架(JCF:Java Collections Framework)之概述
一、集合论引述 集合论是现代数学中重要的基础理论。它的概念和方法已经渗透到代数、拓扑和分析等许多数学分支以及物理学和质点力学等一些自然科学部门,为这些学科提供了奠基的方法,改变了这些学科的面貌。计算机科学作为一门现代科学因其与数学的缘源,自然其中的许多概念也来自数学,集转载 2011-10-15 23:58:26 · 1254 阅读 · 0 评论 -
深入理解Java内存模型(五)——锁
锁的释放-获取建立的happens before 关系锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。下面是锁释放-获取的示例代码:class MonitorExample { int a = 0; public synchronized void writer() { //1转载 2014-03-31 21:27:39 · 801 阅读 · 0 评论