9个Java初始化和接纳的口试题
1.Java中是怎样区分重载要领的? 通过重载要领的参数范例温次序来举办区分的。 留意:若参数范例温次序均沟通时,不管参数名是否沟通,编译器均会报错,提醒要领已经被界说。且不能按照返回值范例来区分,假如按照返回值来区分的话,偶然措施里挪用要领时并不必要返回值,那么措施都无法确定该挪用谁人重载要领。 2.阅读以下措施,表明个中的错误。
testLong没有题目,由于转达的参数50是int型的,而吸取方参数是long型的,小范畴可以自动转型为大范畴的数据范例;testFloat不会通过编译,由于转达的参数1.5是double范例的,而吸取方参数是float范例的,大范畴转型为小范畴数据范例必要显式转换,即改为testFloat(1.5f)。 3.阅读以下措施,表明个中的错误。
在界说了自界说结构器后,若要行使默认结构器,则必要显式指定默认结构器,不然A a = new A();不能编译通过。 4.阅读以下措施,表明个中的错误。
在一个结构器中挪用其余结构器时,必要行使this要害字举办挪用,如this();在一个结构器中可挪用仅一个其余结构器,而且挪用其余结构器的语句需放在挪用者(即发出挪用举动的结构器)语句块的第一行。 5.阅读以下措施,写出执行功效。
执行功效为: 0 hello 对付i = i;这个语句而言,它并未改变实例变量i的值,且i的默认值为0,因此功效也为0,若必要改变实例变量i的值,必要改为this.i = i; 6.在一个类中,声明白多少个static要领和非static要领,请谈谈声明的static要领是否能会见声明的非static要领,声名来由? static要领不能会见非static要领,由于static要领是属于这个类自己的一个要领,在编译时代就已经确定了;而非static要领是属于这个类的工具的要领,必要在实例化之后才气会见到。若在static要领中会见非static要领,将不能通过编译。 7.static要害字为何不能修饰局部变量? static要害字修饰的变量或要领是属于类的,在编译时就已经确定了;而平凡变量或要领是属于该由类天生的工具,必要在实例化后才气确定。因此,若static要害字修饰了要领的局部变量,一方面要领必要在实例化之后才气确定,另一方面static修饰的变量必要在编译时确定,这就会导致抵牾。 8.finalize()有何用途?什么环境下必要挪用这个函数? 在必要开释内存的处所挪用finalize(),则在下一轮垃圾接纳时会接纳占用的内存,一样平常环境下不必要显式挪用此函数。 垃圾接纳器只能接纳那些由new要害字建设的工具所占用的内存,那么有些不是通过这种方法(好比挪用C++当处所法)所占用的内存怎样接纳呢?那么就必要行使finalize()了。因为C++中必要行使free()函数来开释内存,以是Java措施在挪用C++时必要挪用finalize()要领来开释内存。 9.列出并扼要表明几种常见垃圾接纳技能。 引用计数:每个工具都包括了一个引用计数器,每被引用一次,计数器都加1,引用者被置为null可能烧毁,计数器就减1。垃圾网络器举办轮询,一旦发明计数器的值小于1,就接纳该工具占用的内存。 遏制复制:在垃圾接纳机制运行时,措施必要遏制运行,将每个勾当的工具由一个堆转移到另一个堆,留下的垃圾会被接纳。 标志破除:从仓库和静态存储地区开始,探求到活的工具就对其举办标志,全部的标志进程完成后,就对垃圾举办接纳。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |