Java面试题自用八(选择题)

本文是一份Java面试选择题集合,涵盖了final关键字、多态、集合接口、访问权限、HashMap特性、代码执行结果、字符串行为及获取HTTP请求Cookie值等方面的知识点,适合面试复习和学习。

Java面试题自用八(选择题)

1.关于final说法正确的是?()

A、final类的方法肯定不能被同一个包的类访问

B、final类的方法能否被同一个包的类访问不是由final决定的

C、final方法等同于private方法

D、final对象本身的引用和值都不能改变

解析:

A:错误,能否被同一个包的类访问取决于访问修饰符(public、protect、default、private)。

B:正确 C:错误

D:错误。final如果修饰的基本数据类型,则其数值一旦初始化后就不能被改变。如果是引用类型的变量,则对其初始化后,便不能再指向另一个对象,但是其里面的值是可以改变的。

2.判断对错。在Java的多态调用中,new的是哪一个类就是调用的那个类的方法。

答案:错

解析:
1.成员变量:编译和运行都参考左边。静态绑定,即引用变量所声明的类型是哪一个,则运行哪个成员变量。在编译阶段就已经做出了决定。
2.成员函数(非静态):编译看左边,运行看右边。
3.静态函数:编译和运行都看左边。静态绑定,即引用的变量所声明的类型是哪一个,则运行哪一个静态方法。在编译阶段就已经做出了决定。

3.实现或继承了Collection接口的是()

A:Map B:List C:Vector D:Iterator E:Set

答案: B C E

img

4.关于访问权限说法正确 的是 ? ( )

A:外部类前面可以修饰public,protected和private
B:成员内部类前面可以修饰public,protected和private
C:局部内部类前面可以修饰public,protected和private
D:以上说法都不正确

答案:B

( 1 )对于外部类而言,它也可以使用访问控制符修饰,但外部类只能有两种访问控制级别: public 和默认。因为外部类没有处于任何类的内部,也就没有其所在类的内部、所在类的子类两个范围,因此 private 和 protected 访问控制符对外部类没有意义。

( 2 )内部类的上一级程序单元是外部类,它具有 4 个作用域:同一个类( private )、同一个包( protected )和任何位置( public )。

( 3 ) 因为局部成员的作用域是所在方法,其他程序单元永远不可能访问另一个方法中的局部变量,所以所有的局部成员都不能使用访问控制修饰符修饰。

5.在Java中,关于HashMap类的描述,以下正确的是 ()

A:HashMap使用键/值得形式保存数据
B:HashMap 能够保证其中元素的顺序
C:HashMap允许将null用作键
D:HashMap允许将null用作值

答案:A C D

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZgmongOG-1608273073538)(C:\Users\QZJ\AppData\Roaming\Typora\typora-user-images\image-20201218140039159.png)]

6.以下代码执行的结果显示是多少()?

public class Demo{
	public static void  main (String args[]){
		int count = 0;
		int num = 0;
		for(int i = 0;i<100;i++){
			num = num + i;
			count = count++;
		}
		System.out.println("num*count= "+(num*count));
    }
}

A:50500
B:0
C:运行时错误
D:5050

答案:B

解释:count = count++;的原理为 先赋值后++
	 temp = count;//count = 0, temp = 0
	 count = count + 1;//count = 1
	 count = temp;//temp = 0,count = 0

7.指出下来程序运行的结果是

public  class Example{
	String str = new String("good");
	char[] ch = {'a','b','c'};
	public  static  void  main (String args[]){
		Example ex = new Example();
		ex.change(ex.str,ex.ch);
		System.out.print(ex.str + "and");
		System.out.print(ex.ch);
	}
	public void change(String str,char ch[]){
		str = "test ok";
		ch[0] = "g";
	}
}

A:good and abc
B:good and gbc
C:tst ok and abc
D:tst ok and gbc

答案:B
因为String是被final修饰的类,所以本身的内容是不会改变的,相当于基本数据类型的值传递,在change方法中给str赋值了“test”,相当于重新创建了一个string类型的变量

8.以下哪些方法可以取到http请求中的cookie值()?

A:request.getAttribute
B:request.getHeader
C:request.getParameter
D:request.getCookies

答案: B D

1)Object getAttribute(String name)
以对象形式返回已命名属性的值,如果没有给定名称的属性存在,则返回 null。

2)String getHeader(String name)
以字符串形式返回指定的请求头的值。Cookie也是头的一种;

3)String getParameter(String name)
以字符串形式返回请求参数的值,或者如果参数不存在则返回 null。

4)Cookie[] getCookies()
返回一个数组,包含客户端发送该请求的所有的 Cookie 对象。

的一种;

3)String getParameter(String name)
以字符串形式返回请求参数的值,或者如果参数不存在则返回 null。

4)Cookie[] getCookies()
返回一个数组,包含客户端发送该请求的所有的 Cookie 对象。
*
*
*
*
*
*
*
*
*
以上 题目来自于牛客,如有更好的解释,欢迎评论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值