本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
本博客在此声明所有文章均为转摘,只做资料收集使用。并无其他商业用途。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:210
评论数量:205
留言数量:-19
访问次数:918187
建立时间:2007年5月10日




[J2SE相关]synchronized和wait()/notify()
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009/11/7 21:32:05

方法控制对类成员变量的访问:每个类实例对应一把锁,每个 synchronized 方法都必须获得调用该方法的类实例的锁方能执行,否则所属线程阻塞,方法一旦执行,就独占该锁,直到从该方法返回时才将锁释放,此后被阻塞的线程方能获得该锁,重新进入可执行状态。 wait()/notify():调用任意对象的 wait() 方法导致线程阻塞,并且该对象上的锁被释放。而调用 任意对象的notify()方法则导致因调用该对象的 wait() 方法而阻塞的线程中随机选择的一个解除阻塞(但要等到获得锁后才真正可执行)。 synchronized和wait()、notify()的关系: 1.有synchronized的地方不一定有wait,notify 2.有wait,notify的地方必有synchronized.这是因为wait和notify不是属于线程类,而是每一个对象都具有的方法,而且,这两个方法都和对象锁有关,有锁的地方,必有synchronized。 另外,请注意一点:如果要把notify和wait方法放在一起用的话,必须先调用notify后调用wait,因为如果调用


阅读全文(3924) | 回复(1) | 编辑 | 精华 | 删除
 


[J2SE相关]Java内部类(Inner Class)详解[转]
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009/10/30 13:24:20

关键字: java inner class nested 简单的说,内部(inner)类指那些类定义代码被置于其它类定义中的类;而对于一般的、类定义代码不嵌套在其它类定义中的类,称为顶层(top-level)类。对于一个内部类,包含其定义代码的类称为它的外部(outer)类。 1 Static member class(静态成员类) 类声明中包含“static”关键字的内部类。如以下示例代码, Inner1/Inner2/Inner3/Inner4就是Outer的四个静态成员类。静态成员类的使用方式与一般顶层类的使用方式基本相同。 java 代码 public class Outer{ //just like static method, static member class has public/private/default access privilege levels //access privilege level: public public static class Inn


阅读全文(2945) | 回复(0) | 编辑 | 精华 | 删除
 


[J2SE相关]转:图解JVM在内存中申请对象及垃圾回收流程
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009/10/6 21:28:20

关键字: jvm 内存 gc 先看一下JVM的内存模型: 从大的方面来讲,JVM的内存模型分为两大块: 永久区内存( Permanent space )和堆内存(heap space)。 栈内存(stack space)一般都不归在JVM内存模型中,因为栈内存属于线程级别。 每个线程都有个独立的栈内存空间。 Permanent space里存放加载的Class类级对象如class本身,method,field等等。 heap space主要存放对象实例和数组。 heap space由Old Generation和New Generation组成,Old Generation存放生命周期长久的实例对象,而新的对象实例一般放在New Generation。 New Generation还可以再分为Eden区(圣经中的伊甸园)、和Survivor区,新的对象实例总是首先放在Eden区,Survivor区作为Eden区和Old区的缓冲,可以向Old区转移活动的对象实例。 下图是JVM在内存空间(堆空间)中申请新对象过程的活动图(点

阅读全文(6222) | 回复(0) | 编辑 | 精华 | 删除
 


[J2SE相关]java.nio.Buffer分析
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009/8/20 17:55:18

在研究Apache Mina源代码时,在IoFilter中使用IoBuffer做为数据缓冲对象,而IoBuffer的实现来自于java.nio.Buffer。Buffer中的flip()、clear()、reset()、mark()等概念让我有点糊涂,仔细看了jdk的文档说明,才对Buffer对象的概念了然于胸。 在Buffer类当中有以下四个重要的属性: mark:标记位,用于reset()时把position恢复到原来的位置,调用mark()方法使position的值赋与mark position:表示Buffer中第一个可以被读取或写入的数据的位置,每次调用put()方法时,把写入的数据放到position位置,然后position的值就会加1 limit:表示buffer中第一个不可被读取或写入的数据的位置,也即停止位,数据操作到此为止 capacity:初始化时调用allocate(int size)为buffer分配的空间大小,不可变 演示代码如下: view plaincopy to clipboardprint? import

阅读全文(2160) | 回复(0) | 编辑 | 精华 | 删除
 


[J2SE相关]异步调用时,异常rethrow的编程模式
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009/6/25 17:57:10

作者 Qieqie http://www.javaeye.com/topic/414366

阅读全文(1554) | 回复(0) | 编辑 | 精华 | 删除
 


[J2SE相关]javanio:java nio本质与精要
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009/6/25 16:19:58

NIO之关键:
1.数据缓冲(Buffer)处理
数据缓冲是IO操作的基本元素.从本质上来说,无论是磁盘还是网络IO,应用程序所作的所有事情就是把数据放到相应的数据缓冲当中去(写操作),或者从相应的数据缓冲中提取数据(读操作).至于数据缓冲中的数据IO设备之间的交互,则是操作系统和硬件驱动程序所关心的事情了.因此,数据缓冲在IO操作中具有重要的作用,是操作系统与应用之间的IO桥梁.
在java.nio中, "Direct ByteBuffer"是一个值得关注的Buffer类型.在创建ByteBuffer的时候可以使用ByteBuffer.allocateDirect()来创建一块直接(Direct)的ByteBuffer.这一块数据缓冲和一般的缓冲不一样.第一,它是一块连续的空间.第二,它的实现不是纯java的代码,而是本地(native)代码.它内存的分配不在Java的堆栈中,不受java内存回收的影响.

阅读全文(2835) | 回复(0) | 编辑 | 精华 | 删除
 


[J2SE相关]JAVA面试题解惑系列(十一)——这些运算符你是否还记得?
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2008/10/27 12:00:00

关键字: java 面试题 自增 自减 位运算符 作者:臧圩人(zangweiren)
网址:http://zangweiren.javaeye.com

>>>转载请注明出处!<<<

有些运算符在JAVA语言中存在着,但是在实际开发中我们或许很少用到它们,在面试题中却时常出现它们的身影,对于这些运算符的含义和用法,你是否还记得呢?

自增(++)和自减(--)运算符

我们先来回答几个问题吧:
Java

阅读全文(1802) | 回复(0) | 编辑 | 精华 | 删除
 


[J2SE相关]JAVA面试题解惑系列(十)——话说多线程
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2008/10/27 11:02:04

关键字: java 面试题 多线程 thread 线程池 synchronized 死锁 作者:臧圩人(zangweiren)
网址:http://zangweiren.javaeye.com

>>>转载请注明出处!<<<

线程或者说多线程,是我们处理多任务的强大工具。线程和进程是不同的,每个进程都是一个独立运行的程序,拥有自己的变量,且不同进程间的变量不能共享;而线程是运行在进程内部的,每个正在运行的进程至少有一个线程,而且不同的线程之间可以在进程范围内共享数据。也就是说进程有自己独立的存储空间,而线程是和它所属的进程内的其他线程共享一个存储空间。线程的使用可以使我们能够并行地处理一些事情。线程通过并行的处理给用户带来更好的使用体验,比如你使用的邮件系统(outlook、Thunderbird、foxmail等),你当然不希望它

阅读全文(1661) | 回复(0) | 编辑 | 精华 | 删除
 


[J2SE相关]JAVA面试题解惑系列(九)——继承、多态、重载和重写
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2008/10/24 17:49:01

关键字: java 面试题 继承 多态 重载 重写 作者:臧圩人(zangweiren)
网址:http://zangweiren.javaeye.com

>>>转载请注明出处!<<<

什么是多态?它的实现机制是什么呢?重载和重写的区别在那里?这就是这一次我们要回顾的四个十分重要的概念:继承、多态、重载和重写。

继承(inheritance)

简单的说,继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(下面会讲到,这种方式叫重写)的方式,产生一个新的类型。继承是面向对象的三个基本特征--封装、继承、多态的其中之一,

阅读全文(1946) | 回复(0) | 编辑 | 精华 | 删除
 


[J2SE相关]JAVA面试题解惑系列(八)——聊聊基本类型(内置类型)
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2008/10/24 17:04:11

关键字: java 面试题 基本类型 int long boolean float double char 作者:臧圩人(zangweiren)
网址:http://zangweiren.javaeye.com

>>>转载请注明出处!<<<

基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型。它们是我们编程中使用最频繁的类型,因此面试题中也总少不了它们的身影,在这篇文章中我们将从面试中常考的几个方面来回顾一下与基本类型相关的知识。

基本类型共有九种,它们分别都有相对应的包装类。关于它们的详细信息请看下表:

阅读全文(1740) | 回复(0) | 编辑 | 精华 | 删除
 


« 1 2 3 4 »



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.094 second(s), page refreshed 144766501 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号