JAVA基础知识
文章平均质量分 78
hz_chenwenbiaoTMB
这个作者很懒,什么都没留下…
展开
-
Java线程(二):线程同步synchronized和volatile(转)
转载自:http://blog.csdn.net/ghsau/article/details/7424694 上篇通过一个简单的例子说明了线程安全与不安全,在例子中不安全的情况下输出的结果恰好是逐个递增的(其实是巧合,多运行几次,会产生不同的输出结果),为什么会产生这样的结果呢,因为建立的Count对象是线程共享的,一个线程改变了其成员变量num值,下一个线程正巧读到了修改后...原创 2014-03-17 00:09:48 · 300 阅读 · 0 评论 -
java守护线程(daemon)(转)
package chenwenbiao.test;import java.io.IOException;/* * 守护线程在没有用户线程可服务时自动离开 * 在Java中比较特殊的线程是被称为守护(Daemon)线程的低级别线程。 * 这个线程具有最低的优先级,用于为系统中的其它对象和线程提供服务。 * 将一个用户线程设置为守护线程的方式是在线程对象创建之前调用线程对象的...原创 2011-03-27 15:11:39 · 87 阅读 · 0 评论 -
鲁棒性的定义和Java的鲁棒性(转)
一直对鲁棒性很想了解,弄到一个,供大家一起学习!控制系统在其特性或参数发生摄动时仍可使品质指标保持不变的性能。鲁棒性原是统计学中的一个专门术语,20世纪70年代初开始在控制理论的研究中流行起来,用以表征控制系统对特性或参数摄动的不敏感性。在实际问题中,系统特性或参数的摄动常常是不可避免的。产生摄动的原因主要有两个方面,一个是由于量测的不精确使特性或参数的实际值会偏离它的设计值(标称值),另一个...原创 2011-03-27 14:54:26 · 333 阅读 · 0 评论 -
Java中文乱码原因(转)
Java在中文环境中乱码无处不在,而且出现的时间和位置也包涵广泛,具体的解决方法也是千奇百怪。但是如果能理清其中的脉络,理解字符处 理的过程,对于解决问题很有指导意义,不至于解决了问题也不知道为什么。 其实,原因不外乎出在String输入时和输出时。首先,Java中的任何String都是以UNICODE格式存在的。很多人因为在GBK环境中使用String,会误以为String是GBK...原创 2011-03-22 16:20:15 · 103 阅读 · 0 评论 -
Java GetBytes 编码方式(转)
在JAVA源文件-->JAVAC-->Class-->Java-->getBytes()-->new String()-->显示的过程中,每一步都有编码的转换过程,这个过程总是存在的,只是有的时候用默认的参数进行。 1. JAVAC是以系统默认编码读入源文件,然后按UNICODE进行编码的。可以通过指定编码方式改变Javac读入源...原创 2011-03-22 15:31:34 · 235 阅读 · 0 评论 -
JAVA中的equals()和hashCode()方法(转)
在Java语言中,equals()和hashCode()两个函数的使用是紧密配合的,你要是自己设计其中一个,就要设计另外一个。在多数情况下,这两个函数是不用考虑的,直接使用它们的默认设计就可以了。但是在一些情况下,这两个函数最好是自己设计,才能确保整个程序的正常运行。最常见的是当一个对象被加入集合对象(collection object)时,这两个函数必须自己设计。更 细化的定义是:如果你想将一...原创 2011-03-20 14:41:15 · 60 阅读 · 0 评论 -
Java编程那些事儿74——java.lang包介绍1(转)
9.4 JDK API包名综述 在整个JDK API中,大约包含1、200个包,总体来看,包名第一个名称主要有三种:java、javax和org。其中以java开头的包名是JDK的基础语言包,以javax开头的属于JDK扩展包(其中x是extend的简写),而以org开头的则是第三方组织提供的功能包(org是organization的简写)。而在JDK API中还包含了...原创 2011-03-20 09:41:14 · 65 阅读 · 0 评论 -
Java clone方法使用详解(转)
为了理解java的clone,有必要先温习以下的知识。 java的类型,java的类型分为两大类,一类为primitive,如int,另一类为引用类型,如String,Object等等。 java引用类型的存储,java的引用类型都是存储在堆上的。public class B { int a; String b; public B(int a, String b) ...原创 2011-03-20 00:30:00 · 130 阅读 · 0 评论 -
JAVA语言序列化和反序列化一目了然(二)加深[下](转)
这次我们讲的是控制对象的序列化和反序列化 控制序列化就是有选择的序列化对象,而不是把对象的所以内容都序列化,前篇我们的例子中介绍了transit变量和类变量(static)不被序列化,现在我们还有一种更为灵活的控制对象序列化和反序列方法,可以在序列化过程中储存其他非this对象包含的数据 我们现在再来介绍一个接口 java.io.Externalizable 。当对象...原创 2011-03-17 21:33:07 · 84 阅读 · 0 评论 -
JAVA语言序列化和反序列化一目了然(一)认识[上](转)
在JAVA中,一个大的应用程序需要保存很多对象的时候,由于虚拟机内存有限,(资源宝贵啊 )有时不可能所有有用的对象都放到内存中,因此,需要将不常用的对象暂时持久化的文件中,当需要这个对象时,再从文件把对象恢复到内存中,这就是所谓对象的序列化和反序列化。本文讲实现如何将对象序列化到文件,然后再从文件反序列化到对象,你会发现其实特别简单 先看一下对象的序列化和反序列化的关键是什么1,首先...原创 2011-03-17 21:29:37 · 71 阅读 · 0 评论 -
MessageDigest的功能及用法(转)
MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。 MessageDigest 对象开始被初始化。该对象通过使用 update()方法处理数据。任何时候都可以调用 reset()方法重置摘要。一旦所有需要更新的数据都已经被更新了,应该调用digest() 方法之一完成哈希计算。 ...原创 2010-12-08 21:32:59 · 425 阅读 · 0 评论 -
在Java中Vector和ArrayList的区别(转)
1,vector是线程同步的,所以它也是线程安全的,而arraylist是线程异步的,是不安全的。如果不考虑到线程的安全因素,一般用arraylist效率比较高。 2,如果集合中的元素的数目大于目前集合数组的长度时,vector增长率为目前数组长度的100%,而arraylist增长率为目前数组长度的50%.如过在集合中使用数据量比较大的数据,用vector有一定的优势。3,如果查找一...原创 2011-03-12 16:44:17 · 82 阅读 · 0 评论 -
java的值传递和引用传递
函数参数的传递分为两种:“值传递”和“引用传递”.“值传递”—传递原参数的拷贝, 基本数据类型参数,都是值传递;函数内部修改此参数,则原数据不变.“引用传递”—传递原参数本身, 对象参数,则为引用传递(这个是引用地址的拷贝);函数内部修改此参数,则原对象更改.注意:JAVA中函数参数的传递为值传递。参数为对象时,传递的是原参数引用的拷贝,这个引用的拷贝同样会指向原对象。因此,在函...原创 2011-03-12 10:15:31 · 74 阅读 · 0 评论 -
java下Class.forName的作用是什么,为什么要使用它(转)
Class.forName(xxx.xx.xx) 返回的是一个类首先你要明白在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new 不一样,要分清楚)。 至于什么时候用,你可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?只有你提到的这个方法了,不过要再加一点。 A a = (A)Class.forName("pac...原创 2011-04-03 15:12:07 · 67 阅读 · 0 评论 -
Java多线程通信机制(转)
问题线程之间的关系是平等的,彼此之间并不存在任何依赖,它们各自竞争CPU资源,互不相让,并且还无条件地阻止其他线程对共享资源的异步访问。然而,也有很多现实问题要求不仅要同步的访问同一共享资源,而且线程间还彼此牵制,通过相互通信来向前推进。那么,多个线程之间是如何进行通信的呢?解决思路在现实应用中,很多时候都需要让多个线程按照一定的次序来访问共享资源,例如,经典的生产者和消费者问题。这类问题描述了这...原创 2011-04-04 21:03:27 · 89 阅读 · 0 评论 -
浅谈Java多线程的同步问题(l转)
非常好的使用线程同步的文章转载自http://www.cnblogs.com/phinecos/archive/2010/03/13/1684877.html 多线程的同步依靠的是对象锁机制,synchronized关键字的背后就是利用了封锁来实现对共享资源的互斥访问。下面以一个简单的实例来进行对比分析。实例要完成的工作非常简单,就是创建10个线程,...原创 2014-03-17 00:07:19 · 337 阅读 · 0 评论 -
JVM的垃圾回收机制详解和调优(转)
1.JVM的gc概述gc即垃圾收集机制是指jvm用于释放那些不再使用的对象所占用的内存。java语言并不要求jvm有gc,也没有规定gc如何工作。不过常用的jvm都有gc,而且大多数gc都使用类似的算法管理内存和执行收集操作。在充分理解了垃圾收集算法和执行过程后,才能有效的优化它的性能。有些垃圾收集专用于特殊的应用程序。比如,实时应用程序主要是为了避免垃圾收集中断,而大多数OLTP应用...原创 2013-06-20 10:31:19 · 149 阅读 · 0 评论 -
深入探讨 Java 类加载器(转)
转载自:http://www.ibm.com/developerworks/cn/java/j-lo-classloader/ 类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java Applet...原创 2013-06-20 10:17:14 · 122 阅读 · 0 评论 -
java反射详解(推荐转)
载自:http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html 本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解。下面开始正文。【案例1】通过一个对象获得完整的包名和类名package R...原创 2013-05-15 10:42:50 · 172 阅读 · 0 评论 -
java静态方法、非静态代码块{}、静态代码块static{}(转)
转自:http://www.cn-java.com/www1/?uid-694384-action-viewspace-itemid-84972 static方法就是没有this的方法。在static方法的内部不能调用非静态方法和变量,反过来是可以的。 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,...原创 2012-07-13 14:33:05 · 191 阅读 · 0 评论 -
error 与 Exception区别(转)
Error类和Exception类都继承自Throwable类。Error的继承关系:java.lang.Object java.lang.Throwable java.lang.Error Exception的继承关系:java.lang.Objectjava.lang.Throwable java.lang.Exception ...原创 2012-07-13 14:31:02 · 89 阅读 · 0 评论 -
java面试题有哪些常见的(转)
第一,谈谈final, finally, finalize的区别。最常被问到。第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。第四,&和&&am...原创 2012-07-13 14:30:09 · 147 阅读 · 0 评论 -
java Math.round()(转)
public class MathTest { public static void main(String[] args) { System.out.println("小数点后第一位=5"); System.out.println("正数:Math.round(11.5)=" + Math.round(11.5)); ...原创 2012-07-11 14:17:23 · 96 阅读 · 0 评论 -
Java异常的分类(转)
转载自:http://blog.csdn.net/ilibaba/article/details/3965359 被架构师问的面试题1. 异常机制 异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。 传统的处理异常的办法是,函数返回一个特殊的结果来表示出...原创 2012-07-11 08:57:28 · 111 阅读 · 0 评论 -
java 内联函数(转)
以前用过C++,知道它里面有一个内联函数这个概念,一般情况用inline关键字修饰,在C++定义类时,那种写中Class定义里面的函数,也被编译器当做内联函数处理。 说了这么多,还没说什么是内联函数。所谓内联函数就是指函数在被调用的地方直接展开,编译器在调用时不用像一般函数那样,参数压栈,返回时参数出栈以及资源释放等,这样提高了程序执行速度。 现在该说Java了,...原创 2012-06-28 23:40:38 · 141 阅读 · 0 评论 -
Java 反射机制深入研究(转)
Java反射机制深入研究 Java 反射是Java语言的一个很重要的特征,它使得Java具体了“动态性”。 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制。 Java 反射机制主要提供了以下...原创 2011-04-07 00:41:49 · 71 阅读 · 0 评论 -
java 动态代理学——自己的理解(转)
前几天看到java的动态代理机制,不知道是啥玩意,然后看了看。死活不知道 invoke(Object proxy, Method m, Object[] args)种的proxy是个什么东西,放在这里有什么用?于是网上到处搜刮,把自己的理解写了写。 1 接口:package lab24.scut;/** * 相亲接口 * * @author zhengt ...原创 2011-04-06 11:04:05 · 64 阅读 · 0 评论 -
JAVA垃圾回收问题(转)
1:垃圾收集是一种从无用对象回收其所占用的内存,并使回收的内存能够被再次利用的机制。2:无用对象是指它不能被程序中处于活动状态的部分的引用。3:垃圾收集处于低优先级的线程内,当可用内存较少时运行,但不能保证何时运行。4:不可能强制运行垃圾回收线程,但是调用语句System.gc()有可能激活垃圾收集程序.5:在垃圾回收机制中,无法保证对象被垃圾回收的顺序,也无法保证 fin...原创 2011-03-09 13:15:27 · 120 阅读 · 0 评论 -
JAVA反射机制的学习(转)
JAVA语言中的反射机制(我觉得就像反编译一样,就是从类,反编译成实例,然后使用一个不知道内部结构的类的方法): 在Java 运行时 环境中,对于任意一个类,能否知道这个类有哪些属性和方法? 对于任意一个对象,能否调用他的方法?这些答案是肯定的,这种动态获取类的信息,以及动态调用类的方法的功能来源于JAVA的反射。从而使java具有动态语言的特性。 J...原创 2010-10-15 15:55:59 · 72 阅读 · 0 评论 -
使用Java截取字符串的方法(转)
Web应用程序在浏览器中显示字符串时,由于显示长度的限制,常常需要将字符串截取后再进行显示。但目前很多流行的语言,如C#、Java内部采用的都是 Unicode 16(UCS2)编码,在这种编码中所有的字符都是两个字符,因此,如果要截取的字符串是中、英文、数字混合的,就会产生问题,如下面的字符串:String s = "a加b等于c,如果a等1、b等于2,那么c等3"; 上面的字...原创 2011-04-14 15:02:39 · 109 阅读 · 0 评论 -
深入理解HashCode
在面试的时候被问到hashCode的作用,那时我没答好,所以现在在网上找了一些例子和讲解,现在总结一下: 哈希码产生的依据: 哈希码并不是完全唯一的,它是一种算法,让同一个类的对象按照自己不同的特征尽量的有不同的哈希码,但不表示不同的对象哈希码完全不同。也有相同的情况,看程序员如何写哈希码的算法。 下面给出几个常用的哈希码的算法:1:Object类的hashCode...原创 2010-05-19 14:01:31 · 146 阅读 · 0 评论 -
hashcode的作用(转)
1.hashcode是用来查找的,如果你学过数据结构就应该知道,在查找和排序这一章有 例如内存中有这样的位置 0 1 2 3 4 5 6 7 而我有个类,这个类有个字段叫ID,我要把这个类存放在以上8个位置之一,如果不用hashcode而任意存放,那么当查找时就需要到这八个位置里挨个去找,或者用二分法一类的算法。 但如果用hashcode那就会使效率提高很多。 我 们这个类中有个字段叫ID,那么我...原创 2010-05-19 10:56:22 · 74 阅读 · 0 评论 -
java.nio.ByteBuffer 类
<br />java.nio.ByteBuffer 类<br /><br />来自http://blog.csdn.net/daijialin/archive/2004/12/27/231384.aspx<br /><br /><br />最近要写麻将程序时. 偶然看到这个类. 在JDK帮助文档上看了半天模模糊糊的. 还好上边的帖子有个例子才弄清了. <br />在需要一个缓冲区的时候应该考虑用这个类.<br /><br /><br />Buffer 类<br />定义了一个可以线性存放primitiv转载 2010-06-28 13:41:00 · 1402 阅读 · 0 评论 -
范型程序设计 - core java 7
<br />13. 范型程序设计 - core java 7<br />13.2 简单的范型类的定义<br />例如Pair类:<br />public class Pair<T> { <br /> T first; <br /> T second;<br /> //...<br />}<br />或 <br />public class Pair<T, U> { ... } <br />使用的时候:<br />Pair<String> ps = ...<br /><br />13.3 范转载 2010-06-28 13:39:00 · 624 阅读 · 0 评论 -
图形编程 - core java
<br />7. 图形编程 - core java<br /><br /><br />7.1 Swing概述<br />Java1.0 包含一个基本的GUI类库. 叫抽象窗口工具箱(AWT). 它是把具体的图形界面交给不同平台去显式.<br />但由于不同的平台有差异.所以用这个库写的程序只能用这些平台的公共部分. 所以界面也不漂亮.还有bug.<br />在1996年. Netscape开发了一个和AWT工作方式完全不同的GUI库. 叫英特网基础类库(IFC). 它把用户<br />界面元素是直接绘制在空转载 2010-06-28 11:16:00 · 670 阅读 · 0 评论 -
线程 - Java2详解
1. 多线程 -core java 7 第2卷1.3 线程状态 -core java7线程可以有4个状态: New(新生) 即new Thread(r); 此时线程还没有开始运行(start). Runnable(可运行) 即调用了start方法. 之后当系统给它分配cpu时间时它就运行. 所以这个状态下. 线程可能正在运行也可能正在等待时间片. Blocked(被阻塞) 即可运行的线程调用了sleep或wait方法.或I/O时被阻塞.或等待一转载 2010-06-28 11:14:00 · 751 阅读 · 0 评论 -
事件处理 - core java
<br />8. 事件处理 - core java<br /><br />事件处理包括: 事件源类.事件类.监听器接口.监听器适配器类 它们之间的关系.<br />其中事件源是用户界面组件.窗口和菜单. 操作系统会把用户的动作通知给感兴趣的事件源. 事件源用一个<br />事件对象描述所发生事件的特性. 并且. 事件源可以注册一组监听器. 当事件发生时会把事件对象传递给<br />这些监听器对象. 由监听器对象具体处理发生的事件.<br /> <br />各种事件类的继承层次:<br />AWTEvent<转载 2010-06-28 11:16:00 · 926 阅读 · 0 评论 -
流与文件 - core java 7
<br />12. 流与文件 - core java 7<br />12.1 流<br />流是字节序列从源到目的的传送. 其源和目的可以是文件也可以是网络连接或内存块.<br />在Java中有很多流类. <br />InputStream<br /> |<br /> |-AudioInputStream<br /> |-ByteArrayInputStream<br /> |-FileInputStream //用来得到文件的输入流. 但读2进制数据应该用RandomAccessFile<br />转载 2010-06-28 13:39:00 · 1019 阅读 · 0 评论 -
java.awt 部件
19. java.awt 部件 - Java2详解19.1 使用java.awt构造图形用户界面awt包提供的部件的继承层次:部件||-按钮|-文本部件| |-文本域| |-文本区||-复选框|-菜单部件| |-菜单| |-菜单条| |-菜单项||-容器 |-面板 | |-小应用程序 | |-窗口 |-框架 |-对话框19.2 按钮 Button创建按钮:有带标签和不带标签两个构造方法public Button(); public But转载 2010-06-28 11:15:00 · 1340 阅读 · 0 评论 -
集合 -core java 7 第2卷
<br />2. 集合 -core java 7 第2卷<br /><br /><br />2.1 集合接口<br />Java类库中的 接口Collection是一种基本的接口. 如下:<br />public interface Collection<E> {<br /> boolean add(E element); //添加元素. 添加成功返回true<br /> Iterator<E> iterator(); //返回迭代器. 该方法来自接口Iterable.<br /> ...转载 2010-06-28 13:40:00 · 795 阅读 · 0 评论