"Java基础笔试题_各大公司面试题"
在Java编程语言中,了解这些基础知识对于求职者来说至关重要,因为它们经常出现在公司的面试或笔试题中。让我们逐一解析这些知识点:
1、作用域public,private,protected,以及不写时的区别:
在Java中,访问修饰符决定了类的成员(变量、方法)能被哪些代码访问。`public`表示任何地方都可以访问,`protected`允许在同一个包内和子类中访问,`friendly`(默认,也称为包级私有)只能在同一包内访问,而`private`则只能在类的内部访问。
2、AnonymousInnerClass(匿名内部类):
匿名内部类是没有名字的类,它可以实现一个接口或者继承一个类。但是,匿名内部类不能直接继承一个非抽象类,但可以实现一个接口。这是因为Java要求所有非抽象类必须提供构造器,而匿名内部类无法提供。
3、StaticNestedClass和InnerClass的不同:
静态内部类(Static Nested Class)与普通内部类(Inner Class)的主要区别在于,静态内部类不持有对外部类的引用,因此可以在没有外部类实例的情况下创建。而普通内部类需要一个外部类的实例才能创建。此外,静态内部类可以声明静态成员,而普通内部类不能。
4、&和&&的区别:
`&`是位运算符,用于对两个操作数的二进制位进行逐位与运算。`&&`是逻辑与运算符,只有当两边的操作数都为真时,结果才为真。在布尔表达式中,`&&`具有短路特性,即如果第一个操作数为假,就不会计算第二个操作数。
5、Collection和Collections的区别:
`Collection`是Java集合框架的顶级接口,它是所有单列集合的父接口,如`Set`和`List`。`Collections`是一个工具类,提供了许多静态方法,用于执行集合的各种操作,如搜索、排序、线程安全化等。
6、什么时候用assert:
`assert`是Java中的断言机制,主要用于调试。在开发过程中,断言用于检查程序的假设是否正确,如果断言语句的结果为`false`,则表明程序存在错误,系统可以选择抛出异常或终止程序。在生产环境中,通常会关闭断言,以避免影响性能。
7、Strings=newString("xyz");创建了几个StringObject:
这段代码创建了两个对象。一个是字符串常量池中的"xyz"字符数组,另一个是`Strings`引用指向的`String`对象,它是一个新的`String`实例,包含与常量池中的"xyz"相同的字符序列。
8、Math.round(11.5)等于多少?
`Math.round()`方法用于将浮点数四舍五入为最接近的整数。在11.5的情况下,它会向上取整到12。
这些题目涵盖了Java基础中的核心概念,包括访问控制、类和接口、运算符、集合框架以及调试技巧。掌握这些知识对于任何Java开发者来说都是必要的。