
Java 语言基础
文章平均质量分 68
lclai
这个作者很懒,什么都没留下…
展开
-
java.lang.Class 类学习
一,说明: 1,Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类。Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建。2,Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的,因此不能显式地声明一个Class对象。3,虚拟机为每种类型管原创 2011-02-24 21:39:00 · 740 阅读 · 0 评论 -
Hashtable HashMap Vector ArrayList List 区别
<br />Hashtable和HashMap的区别:<br />1.Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类;<br />2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。即是说,在多线程应用程序中,不用专门的操作就安全地可以使用Hashtable了;而对于HashMap,则需要额外的同步机制。但HashMap的同步问题可通过Collections的一个静态方法得到解决:<br />Map Collections.sync原创 2011-02-19 16:50:00 · 1115 阅读 · 0 评论 -
hashCode() 和equals() 区别和作用
<br />HashSet和HashMap一直都是JDK中最常用的两个类,HashSet要求不能存储相同的对象,HashMap要求不能存储相同的键。 <br />那么Java运行时环境是如何判断HashSet中相同对象、HashMap中相同键的呢?当存储了“相同的东西”之后Java运行时环境又将如何来维护呢? <br /><br />在研究这个问题之前,首先说明一下JDK对equals(Object obj)和hashcode()这两个方法的定义和规范: <br />在Java中任何一个对象都具备equal转载 2011-02-19 15:41:00 · 16849 阅读 · 4 评论 -
HashMap 与HashTable 区别
<br />HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别。 <br />1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。<br /><br />2.HashTable不允许null值(key和value都不可以),HashMap允原创 2011-02-19 15:24:00 · 919 阅读 · 0 评论 -
简述JDK里的23个经典设计模式
<br /> JDK中有关23个经典设计模式的示例:Adapter:java.util.Arrays#asList() javax.swing.JTable(TableModel) java.io.InputStreamReader(InputStream) java.io.OutputStreamWriter(OutputStream) javax.xml.bind.annotation.adapters.XmlAdapter#marshal()转载 2011-02-20 12:47:00 · 881 阅读 · 0 评论 -
Java 垃圾回收算法
<br /> 透视Java垃圾回收<br />命令行参数透视垃圾收集器的运行<br />使用System.gc()可以不管JVM使用的是哪一种垃圾回收的算法,都可以请求Java的垃圾回收。在命令行中有一个参数-verbosegc可以查看Java使用的堆内存的情况,它的格式如下:java -verbosegc classfile <br />可以看个例子:<br />java -verbosegc classfile <br />在这个例子中,一个新的对象被创建,由于它没有使用,所以该对象迅速地转载 2011-02-18 12:28:00 · 1038 阅读 · 0 评论 -
java面试题集锦(四)
<br />JAVA 代码找错:<br />1:<br />abstract class Name { private String name; public abstract boolean isStupidName(String name) {}} <br />答案: 错。abstract method必须以分号结尾,且不带花括号。<br />2:<br />public class Something { void doSomething () { priv原创 2011-02-26 22:09:00 · 1046 阅读 · 0 评论 -
java面试题集锦(三)
101、java中会存在内存泄漏吗,请简单描述。会。如:int i,i2; return (i-i2); //when i为足够大的正数,i2为足够大的负数。结果会造成溢位,导致错误。 102、java中实现多态的机制是什么?方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。 103、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动原创 2011-02-26 21:50:00 · 1525 阅读 · 1 评论 -
java面试题集锦(二)
<br />51、垃圾回收的优点和原理。并考虑2种回收机制。Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃原创 2011-02-26 21:46:00 · 1023 阅读 · 0 评论 -
java面试题集锦(一)
<br />面向对象的特征 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。过程抽象是指任何一个明确定义功能的操作都可被使用者看作单个的实体看待,尽管这个操作实际上可能由一系列更低级的操作来完成。数据抽象定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过使用这些操作修改和观察。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的原创 2011-02-26 21:44:00 · 1147 阅读 · 0 评论 -
Java开发程序员必知的Java编程的10种错误
<br /><br />作为程序员在程序开发的过程中难免的要出现一些不是自己水平问题二出现的一些常见的错误。本文就为大家介绍一些常见在Java开发过程中遇见的一些常见的错误。<br />一、常见错误1:多次拷贝字符串<br />测试所不能发现的一个错误是生成不可变(immutable)对象的多份拷贝。不可变对象是不可改变的,因此不需要拷贝它。最常用的不可变对象是String。<br />如果你必须改变一个String对象的内容,你应该使用StringBuffer。下面的代码会正常工作:String s =转载 2011-02-25 13:20:00 · 1021 阅读 · 0 评论 -
线程同步小结
线程同步小结 1、线程同步的目的是为了保护多个线程反问一个资源时对资源的破坏。2、线程同步方法是通过锁来实现,每个对象都有切仅有一个锁,这个锁与一个特定的对象关联,线程一旦获取了对象锁,其他访问该对象的线程就无法再访问该对象的其他同步方法。3、对于静态同步方法,锁是针对这个类的,锁对象是该类的Class对象。静态和非静态方法的锁互不干预。一个线程获得锁,当在一个同步方法中访问另外对象上的同步方法时,会获取这两个对象锁。4、对于同步,要时刻清醒在哪个对象上同步,这是关键。5、编写线程安原创 2011-02-20 15:44:00 · 787 阅读 · 0 评论