
Java基础
hailang1130
这个作者很懒,什么都没留下…
展开
-
java util 集合类小结
Collection主要有list和set两个子接口:List接口:对Collection进行了简单的扩充,它的具体实现类常用的有ArrayList,Vector和LinkedList。ArrayList从其命名中可以看出它是一种类似数组的形式进行存储,因此它的随机访问速度极快,而LinkedList的内部实现是链表,它适合于在链表中间需要频繁进行插入和删除操作。(ArrayList 是...原创 2011-08-23 19:26:53 · 126 阅读 · 0 评论 -
Volatile
Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。这样当多个线程同时与某个对象交...原创 2013-01-21 20:54:31 · 137 阅读 · 0 评论 -
软引用 弱引用 虚引用
1、软引用(SoftReference) 如果一个对象只具有软引用,那就类似于可有可物的生活用品。如果内存空间足够,垃圾回收器就不会回收它,如果内存空间不足了,就会回收这些对象的内存。只 要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。 软引用可以和一个引用队列(ReferenceQueue)联 合使用,如果软引用所引用的对象被垃圾回收,Java虚拟机就...原创 2012-09-15 17:39:57 · 97 阅读 · 0 评论 -
java循环中断
内部循环中断外部循环[code="java"]1.outter: // 外部循环 2.for(int i = 1; i < 10; i ++) { 3. inner: //内部循环 4. for(int j = 1; j < 10; j ++) { 5. if(i == 8) { 6. break outt...原创 2012-12-29 17:58:49 · 398 阅读 · 0 评论 -
相对路径来获取资源
[code="java"]方法1 URL url = this.getClass().getResource(imageName); 定位类路径下的资源[/code][code="java"]方法2 URLClassLoader loader = (URLClassLoader)this.getClass().getClassLoader(); ...原创 2012-12-20 16:25:05 · 187 阅读 · 0 评论 -
加载与初始化
类的加载并不导致类的初始化,class.forName(),其实是有参数来设定是否对类进行初始化的,当对应参数设为true时,是对包含加载和初始化两个部分的。 当一个Java类第一次被真正使用到的时候,JVM会进行该类的初始化操作。初始化过程的主要操作是执行静态代码块和初始化静态域。Java类和接口的初始化只有在特定的时机才会发生,这些时机包括: 创建一个Jav...原创 2012-12-10 00:57:52 · 176 阅读 · 0 评论 -
字符集与编码(转)
需要再一次强调的是,无论历史上的UCS还是现如今的Unicode,两者指的都是编码字符集,而不是字符集编码。花费一点时间来理解好这件事,然后你会发现对所有网页的,系统的,编码标准之间的来回转换等等繁杂事务都会思路清晰,手到擒来。首先说说最一般意义上的字符集。一个抽象字符集其实就是指字符的集合,例如所有的英文字母是一个抽象字符集,所有的汉字是一个抽象字符集,当然,把全世界所有语言的符号都...原创 2012-11-30 14:26:27 · 133 阅读 · 0 评论 -
Enum 小结
[b]Enum的作用[/b]1.增加程序的可读性和可维护性,比如一些参数只能取那么几个值,而从参数类型上又看不出来有哪些值可以取。2.可以保证单例,且比较时候可以用”==”来替换equals(同时可以利用枚举来实现单例)。3.可以用switch,这个特点是用enum的一大原因4.复杂的应用里,有很多字典表,这些字典表必须体现出其词性才有意义5.类型安全, 不会出现非法参数...原创 2012-08-06 23:02:46 · 123 阅读 · 0 评论 -
变量覆盖小结
1、由于private变量受访问权限的限制,它不能被覆盖。 2、属性的值取父类还是子类并不取决于我们创建对象的类型,而是取决于我们定义的变量的类型。 3、friendly、protected和public修饰符并不影响属性的覆盖。 4、静态变量和静态常量属于类,不属于对象,因此它们不能被覆盖。 5、常量可以被覆盖。 6、对于基本类型和对象,它们适用同样的覆盖规律。 ...原创 2011-09-13 20:27:34 · 153 阅读 · 0 评论 -
自定义异常使用目的
1,系统中有些错误符合java语法但却步符合业务逻辑,如果要用异常形式处理这些错误,则需要自定义异常2,在分层的软件结构中,通常在表现层对其它层次的异常进行捕获处理,而往往需要对不同层次的异常进行分类处理,而如果用java自带的则不能够区分。自己的异常定义可以从Exception继承,也可以从Throwable继承 对于异常进行适当分类,方便捕获后的处理如果对于异常不...原创 2011-09-02 13:16:57 · 351 阅读 · 0 评论 -
堆与栈
堆主要用来存放对象的,栈主要是用来执行程序的 .而这种不同又主要是由于堆和栈的特点决定的。栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享。在编程中,例如C/C++中,所有的方法调用都是通过栈来进行的,所有的局部变量,形式参数都是从栈中分配内存空间的。堆的优势是可以动态地分配内存大小,生存期也不必事先告...原创 2011-08-30 15:11:40 · 117 阅读 · 0 评论 -
java类加载器
系统提供的类加载器主要有下面三个:引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的,并不继承自 java.lang.ClassLoader。扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。Java 虚拟机的实现会提供一个扩展库目录。该类加载器在此目录里面查找并加载 Jav...原创 2011-08-30 14:31:40 · 143 阅读 · 0 评论 -
线程同步
synchronized 总是与对象相关的,当对对象的某个方法同步时,并不影响别的线程访问其非同步方法,原因是别的线程根本就不需要去获取该对象的锁,但是当该对象的两个方法methodA和methodB都被加上同步后,当一个线程访问methodA时,别的方法同样不能访问methodB,因为访问methodB时需要获得该对像的锁。对线程调用sleep时不会放弃对象锁。...原创 2011-08-27 13:33:49 · 77 阅读 · 0 评论 -
hascode()与equals()
这两个方法重写一个时必须重写另一个,否则使用hashmap等集合时可能会发生错误,在java的集合中,判断两个对象是否相等的规则是: 1),判断两个对象的hashCode是否相等如果不相等,认为两个对象也不相等,完毕如果相等,转入2)2),判断两个对象用equals运算是否相等如果不相等,认为两个对象也不相等如果相等,认为两个对象相等(equals()是判断两个对象是否...原创 2011-08-26 13:25:37 · 111 阅读 · 0 评论 -
java内部类
内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名内部类,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限)。 使用目的:java通过内部类加上接口,可以很好的实现多继承的效果。外部类想实现的接口有方法和类中的方法重名,可以把这个接口留给子类实现。 外部类作用范围之外要创建内部类对象必须先创建其外部类对象:一个内部类对象...原创 2011-08-26 12:16:50 · 97 阅读 · 0 评论 -
==和equals(转)
A.==可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同。 B.对于String a = “a”; Integer b = 1;这种类型的特有对象创建方式,==的时候值是相同的。 C.基本类型没有equals方法,equals只比较值(对象中的内容)是否相同(相同返回true)。 ...原创 2013-02-28 10:32:42 · 148 阅读 · 0 评论