1.一个类的公共成员与私有成员的区别?
私有成员只可以在本类中使用不能在其他类中使用,但是公有成员都可以使用;
2.什么是方法?
方法是一组为了实现特定功能的代码块的集合。方法在语法上的功能主要有以下两个:
①:结构化代码
将代码按照功能进行组织,使代码的结构比较清晰,容易阅读和修改,也就是程序的可维护性强。
②:减少代码重复
一个固定的功能,可能会在程序中多次使用,在使用时只需要调用写好的方法,而不用重复书写对应的功能代码。
3.一个类的构造方法的作用是什么?若一个类没有声明构造方法,该程序能不能正常执行,为什么?
构造方法是一种特殊的方法,它是在对象被创建时初始化对象的方法。若一个类没有声明构造方法,该程序可以正常运行,因为系统会自动提供一个默认的构造方法。
4.构造方法有哪些特性?
()1、构造方法名一定与类同名
()2、构造方法无返回值类型(void 也不行)
()3、构造方法可以没有(默认一个无参构造方法),也可以有多个构造方法,他们之间构成重载关系
()4、如果定义有参构造函数,则无参构造函数将被自动屏蔽
()5、构造方法不能被继承
()6、构造方法不能手动调用,在创建类实例的时候自动调用构造方法
5.在一个构造方法内可以调用另一个构造方法吗?如果可以,如何调用?
①只能通过this关键字在一个构造方法中调用另一个构造方法。如果想通过new来调用,必须要创建一个新对象,而用新对象调用另一个构造方法实际上初始化的是新对象,并未初始化原对象,所以只能通过this调用。
②Java规定,在一个构造方法中用this调用另一个构造方法的语句必须放在大括号内的第一句。
③多个构造方法之间是重载的关系,系统会根据this()括号中的参数列表自动调用相应的构造方法。在一个构造方法中可以调用另一个构造方法,
6.静态变量与实例变量有哪些不同?
静态变量是被static修饰符修饰的变量,也称为类变量,它属于类,不属于类的任何一个对象,一个类不管创建多少个对象,静态变量在内存中有且仅有一个拷贝。
实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。静态变量可以实现让多个对象共享内存。
7.静态方法与实例方法有哪些不同?
()1、静态方法属于整个类所有,因此调用它不需要实例化,可以直接调用,类.静态方法()。实例方法必须先实例化,创建一个对象,才能进行调用 对象.实例方法()。
()2、静态方法只能访问静态成员,不能访问实例成员;而实例方法可以访问静态成员和实例成员。
()3、在程序运行期间,静态方法是一直存放在内存中,因此调用速度快,但是却占用内存。实例方法是使用完成后由回收机制自动进行回收,下次再使用必须再实例化。
()4、一般来说,公共的函数、经常调用的可以写成静态方法,比如数据连接等(SqlHelper)。
8.在一个静态方法内调用一个非静态成员为什么是非法的?
由于静态方法可以不通过对象进行调用,因此在静态方法里,不能调用其他非静态变量,也不可以访问非静态变量成员。
9.对象相等与指向他们的引用相等有什么不同?
对象的相等:比的是内存中存放的内容是否相等而 引用相等:比较的是他们指向的内存地址是否相等。
10.什么是静态初始化器?起作用是什么?它是由谁执行的?与构造方法的不同。
静态初始化器是由关键字static引导的一对大括号括起的语句组。
作用是:在加载时,初始化类的静态域。如有多个static{ }程序段,则在类的初始化时,会依次执行。
它在系统向内存加载时自动完成。
构造方法和静态初始化器的不同;
1.构造方法是对每个新创建的对象进行初始化,而静态初始化是对类自身进行初始化。
2.构造方法是在用new运算符创建对象时系统自动执行,静态初始化器是在所属的类被加载入内存时由系统调用执行。
3.用new运算符创建多少个对象,就调用多少次构造器,静态初始化器在类加载入内存是执行一次,与创建多少个对象无关。
4.静态初始化器不是方法,没有方法名,返回值和参数。
11.java语言中怎样清除没有被引用的对象?能否控制java系统中垃圾回收的时间?
当一个对象被创建时,JVM会为该对象分配一定的内存、调用该对象的构造方法并开始跟踪该对象。当该对象停止使用时,JVM将通过垃圾回收器回收该对象所占用的内存。那么,Java是如何知道一个对象是无用的呢?这是因为系统中的任何对象都有一个引用计数器,一个对象被引用1次,则该对象的引用计数器为1,被引用2次,则引用计数器为2;相反,若对一个对象减少1次引用,则该对象的引用计数器就减1,依次类推,当一个对象的引用计数器减到0时,说明该对象可以回收。
垃圾回收器负责释放没有引用与之关联的对象所占用的内存,但是回收的时间对程序员是透明的,在任何时候,程序员都不能通过程序强迫垃圾回收器立即执行,但可以通过调用System.gc()或者Runtime.gc()方法提示垃圾回器进行内存回收操作,不过这也不能保证调用该方法后,垃圾回收器立即执行。