![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java核心
destruction666
程序员,极客,爱科学,爱幻想,爱生活,喜欢游戏,更乐于创造。我不是John Carmack,也不是LinusTorvalds,我只是一行普通的代码,穿行在Cyber空间中<br/>大家好 我是尚涛,狂热的极客
展开
-
java的GC以及虚拟机
一 回收机制 1 “引用记数(reference counting)”是一种简单但速度很慢的垃圾回收技术。每个对象都含有一个引用记数器,当有引用连接至对象时,引用计数加1。当引用离开作用域或被置为null时,引用计数减1。虽然管理引用记数的开销不大,但需要在整个程序生命周期中持续地开销。垃圾回收器会在含有全部对象的列表上遍历,当发现某个对象的引用计数为0时,就释放其占用的空间。这种方法有个缺陷,原创 2013-01-29 11:21:40 · 448 阅读 · 0 评论 -
Java NIO API详解
NIO API 主要集中在 java.nio 和它的 subpackages 中: java.nio 定义了 Buffer 及其数据类型相关的子类。其中被 java.nio.channels 中的类用来进行 IO 操作的 ByteBuffer 的作用非常重要。 java.nio.channels 定义了一系列处理 IO 的 Channel 接口以及这些接口在文件系统和网络通讯上转载 2013-02-21 00:18:42 · 968 阅读 · 1 评论 -
java中的IO整理
【案例1】创建一个新文件 ? 1 2 3 4 5 6 7 8 9 10 11 import java.io.*; class hello{ public static void main(String[] args) { File f=new File("D:\\hello.txt");转载 2013-02-21 10:19:31 · 494 阅读 · 0 评论 -
ConcurrentLinkedQueue原理(下)
ConcurrentHashMap,它是一个以Concurrent开头的并发集合类,其原理是通过增加锁和细化锁的粒度来提高并发度。 而ConcurrentLinkedQueue这个类采用了另一种提高并发度的方式:非阻塞算法(Non-blocking),第一次实现了无锁的并发。 谈到这里,先要介绍一下非阻塞算法。其实非阻塞算法并不是什么神秘高深的东西,它需要有一套硬件和指令的配合(似乎目前大转载 2013-02-19 15:25:05 · 550 阅读 · 0 评论 -
由迅雷笔试题想到的——Guarded Suspension Pattern设计模式
由迅雷笔试题想到的——Guarded Suspension Pattern设计模式 分类: 多线程相关2010-12-13 19:30 393人阅读 评论(0) 收藏 举报 设计模式stringclass多线程编程thread 有个网友,发了个帖子其中说到了迅雷的笔试题。帖子地址如下: http://topic.csdn.net/u/20091129/21/4bbf39转载 2013-03-03 18:33:03 · 792 阅读 · 0 评论 -
ConcurrentLinkedQueue原理(上)
ConcurrentLinkedQueue是Queue的一个线程安全实现。 它是一个基于链接节点的无界线程安全队列。此队列按照 FIFO(先进先出)原则对元素进行排序。队列的头部 是队列中时间最长的元素。 队列的尾部 是队列中时间最短的元素。新的元素插入到队列的尾部,队列获取操作从队列头部获得元素。 当多个线程共享访问一个公共 collection 时,ConcurrentLinkedQue转载 2013-02-19 15:24:15 · 467 阅读 · 0 评论 -
java内存管理
一、Java内存分配 1、 Java有几种存储区域? * 寄存器 -- 在CPU内部,开发人员不能通过代码来控制寄存器的分配,由编译器来管理 * 栈 -- 在Windows下, 栈是向低地址扩展的数据结构,是一块连续的内存的区域,即栈顶的地址和栈的最大容量是系统预先规定好的。 -- 优点:由系统自动分配,速度较快。 -- 缺点:不够灵活,但程序转载 2013-01-30 10:59:46 · 352 阅读 · 0 评论 -
java异常机制
Java 异常基本概念 在 Java 程序设计语言中,使用一种异常处理的错误捕获机制。当程序运行过程中发生一些异常情况,程序有可能被中断、或导致错误的结果出现。在这种情况下,程序不会返回任何值,而是抛出封装了错误信息的对象。Java 语言提供了专门的异常处理机制去处理这些异常。如图 1 所示为 Java 异常体系结构: 图 1. Java 异常体系结构 检查 (C转载 2013-01-30 15:56:32 · 577 阅读 · 0 评论 -
Java的内存原理
Java把内存划分成两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Jav转载 2012-08-13 17:20:29 · 423 阅读 · 0 评论 -
JUnit
作为引子,先看一个简单的例子: 1.先写个简单的测试类: package test public class BaseClass{ public String method(){ return this.getClass().getName(); } } 2.对于这个测试类的unit测试,JUnit3中的测试程序: package test转载 2013-04-08 16:58:27 · 738 阅读 · 0 评论