摘要:
编辑器加载中...在Java语言中,内存回收的任务由Java虚拟机来担当,而不是由Java程序来负责。在程序的运行时环境中,Java虚拟机提供了一个系统级的垃圾回收器线程,它负责自动回收那些无用对象所占用的内存,这种内存回收的过程被称为垃圾回收(Garbage Collection)。优点: 把程序员从复杂的内存追踪、监测和释放等工作中解放出来,减轻程序员进行内存管理的负担。 防止系统内存被非法释放,从而使系统更加健壮和稳定。特点: 只有当对象不再被程序中的任何引用变量引用时,它的内存才可能被回收。 程序无法迫使垃圾回收器立即执行垃圾回收操作。 当垃圾回收器将要回收无用对象的内存时,先调用该对 阅读全文
摘要:
1、static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是: 对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。 对于实例变量,每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)。2、static方法 静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键 阅读全文
摘要:
final修饰符(关键字),如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。finally再异常处理时提供finally块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果有的话)。finalize方法名。Java技术允许使用finalize() 阅读全文
摘要:
同步的概念: 同步分为 同步方法 和 同步块 两种方式。 锁定的内容分为 锁定类的某个特定实例 和 锁定类对象(类的所有实例) 变量分为 实例变量(不带static的变量) 和 类变量(带static的变量)使用同步的原因1. 在系统中对访类要使用多线程进行访问;2. 在该类中有 类变量, 或者是在类的方法中有访问公共资源(如一个外部文件的读写)。同步锁锁定的内容是什么?无论你将Synchronized加在方法前还是加在一个变量前,其锁定的都是一个 类对象。 每一个对象都只有一个锁与之相关联。下例中分情况的列举各种情况下的同步效果1. Synchronized 加在方法上, (同步方法,锁定类 阅读全文