有以下代码:
class A{public A(String str){}
}
public class Test{public static void main(String[] args) {A classa=new A("he");A classb=new A("he");System.out.println(classa==classb);}
}
A.请问输出的结果是:
B.false
C.true
D.报错
E.以上选项都不正确
答案为 false 因为== 表示的是否指向的是同一个内存。
System.out.println(classa.equals(classb)); 如果这这样输出 答案也是错误的 因为子类没有覆盖Object
的equals()方法,而默认调用==的这个方法 判断两个对象是否相等需要覆盖equals()方法和hashcaode()方法
Java 源程序文件的扩展名为()
A. .java
B. .class
C. .exe
D. .jar
正确答案: A
class 编译后的Java文件
.java是未编译的程序
.jsp是页面程序
.xml配置程序
.jar是.calss的集合
下列关于Java中类的构造方法的描述,正确的是()A. 构造方法的返回类型为void
B. 可以定义一个类而在代码中不写构造方法。
C. 在同一个类中定义的重载构造方法不可以相互调用。
D. 子类不允许调用父类的构造方法。
选B
A、:构造方法有返回值,但没有返回值类型。
B、每个类在没有自己显式声明构造器的时候,都会有一个默认的无参构造。
C、构造器可以重载,而且可以使用super()、this()相互调
D、每个构造器的默认第一行都是super(),但是一旦父类中没有无参构造,必须在子类的第一行显式的声明调用哪一个构造。
下面哪个方法是 public void example(){...} 的重载方法? ( )public void Example( int m){...}
public int example(){...}
public void example2(){...}
public int example ( int m, float f){...}
选D。考察的是方法重载的定义。
方法重载要求函数名完全相同,参数列表不同(数量,类型或位置均可),返回值类型不影响。
方法名相同------------------排除AC选项。
方法的参数类型,参数个不一样。-----------------B选项和题目中的都没有参数,所以排除B选项。
方法的返回类型可以不相同
方法的修饰符可以不相同
以下关于集合类ArrayList、LinkedList、HashMap描述错误的是()A. HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值
B. ArrayList和LinkedList均实现了List接口
C. 添加和删除元素时,ArrayList的表现更佳
D. .ArrayList的访问速度比LinkedList快
正确答案: C
- List 是一个有序集合,可以存放重复的数据 (有序:存进是什么顺序,取出时还是什么顺序)
(1).ArrayList 底层是数组适合查询,不适合增删元素。
(2).LiskedList 底层是双向链表适合增删元素,不适合查询操作。
(3).Vector 底层和ArrayList相同,但是Vector是线程安全的,效率较低很少使用
2. Set 是一个无序集合,不允许放重复的数据 (无序不可重复,存进和取出的顺序不一样)
(1).HashSet 底层是哈希表/散列表
(2).TreeSet 继承sartedSet接口(无需不可重复,但存进去的元素可以按照元素的大小自动排序)
3. Map 是一个无序集合,以键值对的方式存放数据,键对象不允许重复,值对象可以重复。
(1).HashMap实现不同步,线程不安全。 HashTable线程安全
(2).HashMap中的key-value都是存储在Entry中的。
(3).HashMap可以存null键和null值,不保证元素的顺序恒久不变,它的底层使用的是数组和链表,通过hashCode()方法和equals方法保证键的唯一性
下面有关java基本类型的默认值和取值范围,说法错误的是?A.字节型的类型默认值是0,取值范围是-2^7—2^7-1
B.boolean类型默认值是false,取值范围是truefalse
C.字符型类型默认是0,取值范围是-2^15 —2^15-1
D.long类型默认是0,取值范围是-2^63—2^63-1
正确答案: C
关于 Socket 通信编程,以下描述正确的是:( )
A.客户端通过new ServerSocket()创建TCP连接对象
B.客户端通过TCP连接对象调用accept()方法创建通信的Socket对象
C.客户端通过new Socket()方法创建通信的Socket对象
D.服务器端通过new ServerSocket()创建通信的Socket对象
正确答案: C
客户端通过new Socket()方法创建通信的Socket对象
服务器端通过new ServerSocket()创建TCP连接对象 accept接纳客户端请求
下列Java代码中的变量a、b、c分别在内存的____存储区存放。
class A {private String a = “aa”;public boolean methodB() {String b = “bb”;final String c = “cc”;}
}A. 堆区、堆区、堆区
B. 堆区、栈区、堆区
C. 堆区、栈区、栈区
D. 堆区、堆区、栈区
E. 静态区、栈区、堆区
F. 静态区、栈区、栈区
答案是C
a是类中的成员变量,存放在堆区
b、c都是方法中的局部变量,存放在栈区
byte b1=1,b2=2,b3,b6,b8;
final byte b4=4,b5=6,b7;
b3=(b1+b2); /*语句1*/
b6=b4+b5; /*语句2*/
b8=(b1+b4); /*语句3*/
b7=(b2+b5); /*语句4*/
System.out.println(b3+b6);
下列代码片段中,存在编译错误的语句是()
A.语句1
B. 语句2
C.语句3
D.语句4
本题答案应为:B、C、D
------------知识点------------
Java表达式转型规则由低到高转换:
1、所有的byte,short,char型的值将被提升为int型;
2、如果有一个操作数是long型,计算结果是long型;
3、如果有一个操作数是float型,计算结果是float型;
4、如果有一个操作数是double型,计算结果是double型;
5、被fianl修饰的变量不会自动改变类型,当2个final修饰相操作时,结果会根据左边变量的类型而转化。
--------------解析--------------
语句1错误:b3=(b1+b2);自动转为int,所以正确写法为b3=(byte)(b1+b2);或者将b3定义为int;
语句2正确:b6=b4+b5;b4、b5为final类型,不会自动提升,所以和的类型视左边变量类型而定,即b6可以是任意数值类型;
语句3错误:b8=(b1+b4);虽然b4不会自动提升,但b1仍会自动提升,所以结果需要强转,b8=(byte)(b1+b4);
语句4错误:b7=(b2+b5); 同上。同时注意b7是final修饰,即只可赋值一次,便不可再改变。
本文发布于:2024-02-04 05:54:27,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170700446452833.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |