Java面试题:成员权限修饰符详解及访问范围总结

版权申诉
0 下载量 197 浏览量 更新于2024-02-23 收藏 3.87MB DOC 举报
在面试中,可能会遇到关于Java面试题的问题,其中一个常见的问题涉及protected关键字的使用。Protected修饰的成员只能在同一个包中的类或者是不同包中的子类中被访问到。相比之下,private是最为严格的,只有在当前类中可以访问到;friendly(即默认访问修饰符)可以在当前包中被访问到;而public则是最为宽松的,可以在整个项目中被访问到。 当被问及这些关键字的使用时,应该清楚地表达出对它们的理解和应用。这些关键字在Java中的使用非常常见,对于任何一个Java开发者来说都很重要。对于私有成员,应该清楚地知道它们只能在当前类中被访问到。对于friendly成员,应该知道它们可以在同一个包中被访问到。对于protected成员,应该了解它们只能在同一个包中的类或者是不同包中的子类中被访问到。而对于public成员,它们可以在整个项目中被访问到。 这些关键字不仅在面试中可能被问到,而且在实际的Java编程中也经常被使用到。在设计类的时候,我们需要根据具体的需求来选择适当的访问修饰符,以确保类的安全性和封装性。对于成员变量和方法,我们需要考虑到谁可以访问它们,以及是否需要对其进行保护或者公开。因此,对这些关键字的理解和灵活运用是非常重要的。 在面试过程中,面试官可能会进一步深入地问及这些关键字的使用场景和优缺点。在这种情况下,应该展现出对这些关键字深入的理解和对它们的灵活运用。例如,在设计一个类的时候,如果某个成员变量只需要在当前类和其子类中被访问到,那么就可以选择使用protected来修饰它;如果某个成员变量需要在整个项目中都能够被访问到,那么就可以选择public来修饰它。这种根据具体需求灵活选择访问修饰符的能力,是一个优秀的Java开发者所应该具备的技能之一。 通过对这些关键字的灵活运用和深入理解,可以更好地设计出安全性高、封装性好的类,提高代码的质量和可维护性。同时,在面试中也会展现出自己对Java编程语言的深入理解和扎实的技术功底。因此,对于每一个Java开发者来说,对这些关键字的理解和运用都是非常重要的,也是一个不可或缺的技能。
2009-09-17 上传
1. 用代码示例一个多态的例子 2. java的基本数据类型包括哪些,String是基本的数据类型吗 ? 3. int 和 Integer 有什么区别 4. String 和StringBuffer的区别 5. Collection 和 Collections的区别。 6. &和&&的区别。 7. Overload和Override的区别,试用java代码举例。 8. error和exception有什么区别? 9. abstract class和interface有什么区别? 10. final, finally, finalize的区别,试用java代码示例。 11. 什么时候用assert。 试给出例子 12. forward 和redirect的区别 13. GC是什么? 为什么要有GC? 14. short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 15. Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 16. String s = new String("xyz");创建了几个String Object? 17. 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 18. Java有没有goto? 19. 启动一个线程是用run()还是start()? 20. 应用服务器有那些,列出你所知道的例子? 21. 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类 22. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 23. 它们有何区别? 24. 构造器Constructor是否可被override? 25. 是否可以继承String类? 26. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? 27. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会 28. 编程题: 用最有效率的方法算出2乘以8等於几? 29. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 30. 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 31. 编程题: 写一个Singleton的示例。 32. 数组有没有length()这个方法? String有没有length()这个方法? 33、排除错误 interface Playable { void play(); } interface Bounceable { void play(); } interface Rollable extends Playable, Bounceable { Ball ball = new Ball("PingPang"); } class Ball implements Rollable { //… }