java基础知识练习题
牛客网Java选择题练习
一:
2.已知有下列Test类的说明,在该类的main方法内,则下列哪个语句是正确的?()
public class Test
{
private float f = 1.0f;
int m = 12;
static int n = 1;
public static void main (String args[])
{
Test t = new Test();
}
}
正确答案: A 你的答案: A (正确)
t.f;
this.n;
Test.m
Test.f
3.下列语句正确的是:
正确答案: D 你的答案: D (正确)
形式参数可被字段修饰符修饰
形式参数不可以是对象
形式参数为方法被调用时真正被传递的参数
形式参数可被视为local variable
4.关于下面的程序Test.java说法正确的是( )。
public class Test {
static String x=“1”;
static int y=1;
public static void main(String args[]) { //函数写错了
static int z=2;
System.out.println(x+y+z);
}
}
正确答案: D 你的答案: B (错误)
3
112
13
程序有编译错误
5.character流和byte流的区别不包括()
正确答案: A B D 你的答案: C (错误)
每次读入的字节数不同
前者带有缓冲,后者没有。
前者是字符读入,后者是字节读入。
二者没有区别,可以互换。
字符流和字节流每次读入的字节数是不确定的,可能相同也可能不相同
6.AWT 中用来表示文本框的类是 ( )
正确答案: A 你的答案: A (正确)
TextField
Menu
Label 定义变量或标号的类型
List 包含JavaList接口和List接口的所有实现类;
7.下列描述中,错误的是
正确答案: C 你的答案: D (错误)
SQL语言又称为结构化查询语言
java中”static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问
面向对象开发中,引用传递意味着传递的并不是实际的对象,而是对象的引用,因此,外部对引用对象所做的改变不会反映到所引用的对象上
java是强类型语言,javascript是弱类型语言
面向对象的三大特性包括:封装,继承,多态
8.以下代码的输出的正确结果是
public class Test {
public static void main(String args[]) {
String s = “祝你考出好成绩!”;
System.out.println(s.length());
}
}正确答案: D 你的答案: D (正确)
24
16
15
8
7个汉字加一个!,和为8;
9.以下哪一项正则能正确的匹配网址: http://www.bilibili.com/video/av21061574 ()
正确答案: B 你的答案: B (正确)
/^(https?????/)?([a-zA-Z\d]+).bilibili.com/?video/av(\D{1,8})/?KaTeX parse error: Undefined control sequence: \/ at position 11: / /^(http:\̲/̲\/)?(\w+)\.bili…/
/^(https?????/)?(\w+).bilibili.com/?\w*KaTeX parse error: Undefined control sequence: \/ at position 11: / /^(http:\̲/̲\/)?([a-zA-Z\d]…/
10.子类A继承父类B, A a = new A(); 则父类B构造函数、父类B静态代码块、父类B非静态代码块、子类A构造函数、子类A静态代码块、子类A非静态代码块 执行的先后顺序是?
正确答案: C 你的答案: B (错误)
父类B静态代码块->父类B构造函数->子类A静态代码块->父类B非静态代码块->子类A构造函数->子类A非静态代码块
父类B静态代码块->父类B构造函数->父类B非静态代码块->子类A静态代码块->子类A构造函数->子类A非静态代码块
父类B静态代码块->子类A静态代码块->父类B非静态代码块->父类B构造函数->子类A非静态代码块->子类A构造函数
父类B构造函数->父类B静态代码块->父类B非静态代码块->子类A静态代码块->子类A构造函数->子类A非静态代码块
//静态优先,父类优先,构造函数最后;
二.
1.volatile关键字的说法错误的是
正确答案: A 你的答案: A (正确)
能保证线程安全
volatile关键字用在多线程同步中,可保证读取的可见性
JVM保证从主内存加载到线程工作内存的值是最新的
volatile能禁止进行指令重排序
2.下面有关java hashmap的说法错误的是?
正确答案: C 你的答案: B (错误)
HashMap 的实例有两个参数影响其性能:“初始容量” 和 “加载因子”。
HashMap 的实现不是同步的,意味着它不是线程安全的
HashMap通过开放地址法解决哈希冲突
HashMap中的key-value都是存储在Entry数组中的
3.ArrayLists和LinkedList的区别,下述说法正确的有?
正确答案: A B C D 你的答案: C (错误)
ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据。
ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间。
4.下面哪些赋值语句是正确的()
正确答案: A B D 你的答案: B (错误)
long test=012
float f=-412
int other =(int)true
double d=0x12345678
byte b=128
5.截止JDK1.8版本,java并发框架支持锁包括?
正确答案: A B D 你的答案: A B E (错误)
读写锁
自旋锁
X锁
乐观锁
排他锁
6.有这样一段程序:
public class Test{
public static void main(String [] args){
List list=new ArrayList();
list.add(“a”);
list.add(“b”);
list.add(“a”);
Set set=new HashSet();
set.add(“a”);
set.add(“b”);
set.add(“a”);
System.out.println(list.size()+","+set.size());
}
}
请问运行主要的程序会打印出的是什么()
正确答案: C 你的答案: D (错误)
2,2
2,3
3,2
3,3
7.Java 源程序文件的扩展名为()
正确答案: A 你的答案: A (正确)
.java
.class
.exe
.jar
8.若所用变量都已正确定义,以下选项中,非法的表达式是()
正确答案: C 你的答案: B (错误)
a!= 4||b==1
’a’ % 3
’a’ = 1/3
’A’ + 32
9.Which lines of the following will produce an error?
- byte a1 = 2, a2 = 4, a3;
- short s = 16;
- a2 = s;
- a3 = a1 * a2;
正确答案: A 你的答案: A (正确)
Line 3 and Line 4
Line 1 only
Line 3 only
Line 4 only
10.
三.
1.假设一个 list初始化为{2,9,5,4,8,1}。 在第一次冒泡排序后,list变成了()?
正确答案: D 你的答案: D (正确)
2, 9, 5, 4, 8, 1
2, 9, 5, 4, 1, 8
2, 5, 9, 4, 8, 1
2, 5, 4, 8, 1, 9
从左往右两个数一次比较,小的在前,否则交换位置;
2.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。
正确答案: A 你的答案: B (错误)
正确
错误
牛人都是最后出马的:
3.Which of the following class is not implement java.util.Map interface?
正确答案: C 你的答案: D (错误)
Hashtable
HashMap
Vector
IdentityHashMap
4.可以把任何一种数据类型的变量赋给Object类型的变量。
正确答案: A 你的答案: B (错误)
对
错
5.关于以下程序代码的说明正确的
class HasStatic{
private static int x = 100;
public static void main(String args[ ]){
HasStatic hs1 = new HasStatic();
hs1.x++;
HasStatic hs2 = new HasStatic();
hs2.x++;
hs1=new HasStatic();
hs1.x++;
HasStatic.x–;
System.out.println( “x=” +x);
}
}
正确答案: D 你的答案: A (错误)
5行不能通过编译,因为引用了私有静态变量
10行不能通过编译,因为x是私有静态变量
程序通过编译,输出结果为:x=103
程序通过编译,输出结果为:x=102
6.下面有关List接口、Set接口和Map接口的描述,错误的是?
正确答案: A 你的答案: C (错误)
他们都继承自Collection接口
List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置
Set是一种不包含重复的元素的Collection
Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value
7.JSP分页代码中,哪个步骤次序是正确的?
正确答案: A 你的答案: B (错误)
先取总记录数,得到总页数,最后显示本页的数据。
先取所有的记录,得到总页数,再取总记录数,最后显示本页的数据。
先取总页数,得到总记录数,再取所有的记录,最后显示本页的数据。
先取本页的数据,得到总页数,再取总记录数,最后显示所有的记录。
8.JDK1.8版本之前,抽象类和接口的区别,以下说法错误的是
正确答案: D 你的答案: B (错误)
接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的。
abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface,实现多重继承。接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用。
在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是 static final的,不过在 interface中一般不定义数据成员),所有的成员方法默认都是 public abstract 类型的。
abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"has-a"关系,interface表示的是"is-a"关系。
9.以下说法错误的是()
正确答案: D 你的答案: A (错误)
虚拟机中没有泛型,只有普通类和普通方法
所有泛型类的类型参数在编译时都会被擦除
创建泛型对象时请指明类型,让编译器尽早的做参数检查
泛型的类型擦除机制意味着不能在运行时动态获取List中T的实际类型
10.
在你面前有一个n阶的楼梯,你一步只能上1阶或2阶。请问,当N=11时,你可以采用多少种不同的方式爬完这个楼梯();当N=9时呢?
正确答案: B C 你的答案: B (错误)
11
144
55
89
四.
1.如下代码,执行结果为:
def f(x):
if x == 0:
return 0
elif x == 1:
return 1
else:
return (x*f(x-1))
print(f(5))
正确答案: A 你的答案: A (正确)
120
720
24
64
思路:分析代码,其就是阶乘问题;即分f(5)=54321 =120;
2.下面有关servlet中init,service,destroy方法描述错误的是?
正确答案: D 你的答案: B (错误)
init()方法是servlet生命的起点。一旦加载了某个servlet,服务器将立即调用它的init()方法
service()方法处理客户机发出的所有请求
destroy()方法标志servlet生命周期的结束
servlet在多线程下使用了同步机制,因此,在并发编程下servlet是线程安全的
思路:Servlet是线程不安全的,在Servlet类中可能会定义共享的类变量,这样在并发的多线程访问的情况下,不同的线程对成员变量的修改会引发错误。
3.观察以下代码:
class Car extends Vehicle
{
public static void main (String[] args)
{
new Car(). run();
}
private final void run()
{
System. out. println (“Car”);
}
}
class Vehicle
{
private final void run()
{
System. out. println(“Vehicle”);
}
}
下列哪些针对代码运行结果的描述是正确的?
正确答案: A 你的答案: A (正确)
Car
Vehicle
Compiler error at line 3
Compiler error at line 5
Exception thrown at runtime
思路:建立了一个Vehicle类 ,run()方法打印Vehicle,car类继承了Vehicle类,拥有Vehicle中的所有方法,car类中又重载了run()方法,打印car。最后输出的是car;
4.Thread. sleep()是否会抛出checked exception?
正确答案: A 你的答案: B (错误)
会
不会
思路:Thread.sleep()会抛出InterruptedException
5.以下程序的执行结果是:
13
static boolean foo(char c)
{
System.out.print©;
return true;
}
public static void main(String[] args) {
int i =0;
for(foo(‘A’);foo(‘B’)&&(i<2);foo(‘C’))
{
i++;
foo(‘D’);
}
}
正确答案: A 你的答案: D (错误)
ABDCBDCB
ABCDABCD
编译时出错
运行时抛出异常
思路:for( 1; 2; 3){
4;
}
执行顺序为1,2,4,3,2,4,3.。。。
6.以下哪项是错误的( )。
正确答案: A 你的答案: D (错误)
JPanel中不能包含按钮。
Frame 中可以设置Panel。
Applet 中可以包含按钮。
Dialog 中不可以设置菜单条。
7.在JAVA中,假设A有构造方法A(int a),则在类A的其他构造方法中调用该构造方法和语句格式应该为()
正确答案: B 你的答案: B (正确)
this.A(x) 调用普通方法;
this(x)
super(x)
A(x)
思路:this的作用其中一个就是在一个构造方法中调用另一个构造方法,格式为this(参数);
super是调用父类的方法;
8.下面代码在main()方法中第八行后可以正常使用的是( )
public class Test
{
private int a=10;
int b=20;
static int c=1;
public static void main(String arg[])
{
Test t = new Test();
}
}
正确答案: A D 你的答案: A (错误)
t.a
this.c
Test.b
Test.c
思路: private私有 修饰不能外调,main 方法属于Test类的方法, 对象 t 可以在自己的类方法中调用它的private
9.Choose the correct ones from the following statements:
正确答案: A D 你的答案: A C (错误)
A class can implement more than one interfaces
A class can extend more than one class
An interface has at least one method declared.
An abstract class which has no abstract methods declared is legal
思路:一个类可以实现多个接口,但是只能单继承;接口中可以不声明任何方法,和成员变量,抽象类可以不包含抽象方法,但有抽象方法的类一定要声明为抽象类
10.Java程序的种类有( )
正确答案: B C D 你的答案: A B D (错误)
类(Class)
Applet
Application
Servlet
总结: 内嵌于Web文件中,由浏览器来观看的_Applet
可独立运行的 Application
服务器端的 Servlets
本文地址:https://blog.csdn.net/weixin_53061888/article/details/112647112