深圳大圣网络笔试题:Java编程与概念解析

5星 · 超过95%的资源 需积分: 10 39 下载量 85 浏览量 更新于2024-09-14 收藏 4KB TXT 举报
"深圳大圣网络发展有限公司的笔试题主要涉及Java编程语言的相关知识点,包括访问修饰符、匿名内部类、静态嵌套类与非静态嵌套类的区别、逻辑运算符、集合框架、断言、字符串操作、数学运算以及方法的重载与覆盖等。" 在Java编程中,访问修饰符`public`, `private`, `protected`以及默认的包访问权限(friendly)有着明确的权限控制。`public`修饰的成员可以在任何地方被访问,`protected`允许同一包内及子类访问,`friendly`(默认)只允许在同一包内的类访问,而`private`则限制为仅在定义它的类内部可访问。 匿名内部类可以没有名字,它可以继承一个类或实现一个接口,但不能同时进行。如果一个匿名内部类没有继承任何类,那么它必须实现至少一个接口。当一个匿名内部类被声明为静态时,它不能直接访问外部类的非静态成员,因为静态成员不依赖于任何特定的实例。 静态嵌套类(Static Nested Class)和非静态嵌套类(Inner Class)在Java中是两种不同类型的内部类。静态嵌套类像普通静态成员一样,可以直接通过外部类进行访问,不需要外部类的实例。而非静态嵌套类则需要外部类的实例才能创建,它能访问外部类的所有成员,包括私有成员。 逻辑运算符`&&`和`||`在Java中分别表示逻辑与和逻辑或。`&&`运算符在左侧表达式为`false`时会短路,不会评估右侧表达式;`||`运算符在左侧表达式为`true`时会短路,不会评估右侧表达式。 Java集合框架由`Collection`和`Collections`两个核心接口组成。`Collection`是所有单值容器的父接口,包括`Set`和`List`。`Collections`则是对集合类提供的一系列实用方法,用于操作集合,如排序、搜索和修改。 断言`assert`是Java中的一个调试工具,它用于检查程序在运行时是否满足某个条件。`assert`语句后面跟一个布尔表达式,当表达式为`false`时,系统抛出`AssertionError`异常。断言默认是关闭的,需要通过启动参数开启。 字符串操作中,`String`对象不可变,因此创建新`String`时,如`Strings = new String("xyz");`实际上创建了两个对象,一个是常量池中的"xyz",另一个是`Strings`引用的新对象。`Math.round()`方法用于四舍五入,`Math.round(11.5)`将返回12,`Math.round(-11.5)`返回-11。注意,`Math.round()`总是返回一个整数。 在处理`short`类型的变量时,如`s1=1; s1=s1+1;`会导致溢出,因为`+1`操作会先转换成`int`类型。而`s1+=1;`是复合赋值操作符,会自动处理数据类型转换,避免溢出问题。 Java中没有`goto`语句,这有助于避免复杂的控制流,提高代码可读性和可维护性。关于`length()`,`String`对象的`length()`方法返回字符串的字符数量,而数组的长度属性是`length`,无括号。 方法的重载(Overloading)和覆盖(Overriding)是面向对象编程中的关键概念。重载发生在同一类中,通过参数列表的不同来区分不同的方法,返回类型并不影响重载。覆盖(Override)发生在子类中,子类的方法必须与父类中被覆盖的方法有相同的签名(包括方法名、参数列表和返回类型),并且访问修饰符不能更严格,最后,被覆盖的方法不能是`private`的,也不能是`final`或`static`的。