- 浏览: 3369 次
- 性别:
- 来自: 蚌埠
最新评论
文章列表
ArrayList和Vector都是以数组方式存储数据的,因此可以直接索引查找元素数据(效率高),但是插入或者删除元素时需要大量移动插入位置后的数据,所以插入删除元素的效率比较低;
Vector中的方法使用synchronized修饰,所以Vector是线程安全的容器,但是性能相较ArrayList比较差,已经是历史遗留容器;
LinkedLsit是以双向链表方式存储数据元素的,将内存中零散的内存单元通过附加的引用关联起来,形成一个可以按照序号索引的线性结构,这种链式存储方式相较于数组存储方法,内存利用率更高,按照序号索引数据需要向前或者向后遍历,插入或删除数据只需要修改本项的前后项 ...
不可以,静态只能调用静态的
非静态方法调用需要实例对象,静态方法调用时该实例对象可能并没有被初始化
静态变量属于类,是类变量,不属于类对象,不论多少个类对象,静态变量在内存中只存在一个拷贝,让这些类对象共享
实例变量必须依附于类的实例对象存在,需要先创建对象再访问实例变量
不能是static的,抽象方法需要子类重写,但是static方法不能被子类重写
所谓静态就是指:在编译之后所分配的内存会一直存在(不会被回收),直到程序退出内存才会释放这个空间
因为静态方法从程序开始运行后就已经分配了内存,也就是说已经写死了。所有引用到该方法的对象(父类的对象也好子类的对象也好)所指向的都是同一块内存中的数据,也就是该静态方法。子类中如果定义了相同名称的静态方法,并不会重写,而应该是在内存中又分配了一块给子类的静态方法,没有重写这一说
不能是native的,本地方法是由本地代码(如c代码)实现的方法,抽象方法是没有实现的
不能是synchronized的,sync ...
抽象类和接口都不能被实例化,但是可以定义抽象类和接口类型的引用
一个类如果继承抽象类或者实现接口就要重写所有抽象方法,否则就要把该类声明为抽象类
抽象类有构造方法,接口没有构造方法,抽象类的构造方法可以被子类使用super关键字调用
抽象类中的成员可以是public,private,默认,protected的,而接口中的成员都是public的
接口中的方法都是抽象的,抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
Java中使用垃圾回收机制进行内存管理。Java中给对象在堆内存上分配内存(基本数据类型除外),然后由GC负责自动回收不再使用的内存
Java中对内存对象的访问,使用的是引用的方式。在代码中维护引用变量,以此可以访问内存 ...