1.下面的方法,当输入为2的时候返回值是多少?

public static int getValue(int i) {
int result = 0;
switch (i) {
case 1:
result = result + i;
case 2:
result = result + i * 2;
case 3:
result = result + i * 3;
}
return result;
}

A.0

B.2

C.4

D.10

答案:

D

解析:

没有break,发生case穿透现象,程序会继续向下执行,直到遇到break或者结束switch语句的大括号为止。

2.Java是从()语言改进重新设计

A.Ada

B.C++

C.Pascal

D.BASIC

答案:

B

解析:

ava是类C语言,从C++改进而来 去掉了指针和多继承,采用自动垃圾回收等

3.一个以". java"为后缀的源文件,哪些说法是正确的?

A.只能包含一个类,类名必须与文件名相同

B.只能包含与文件名相同的类,以及其中的内部类

C.只能有一个与文件名相同的类,可以包含其他类

D.可以包含任意类

答案:

C

解析:

C。一个与文件名相同的public的类敏感词类可随意多个。

4.在JAVA中,下面关于String类和StringBuffer类的描述正确的是那一个?

A.StringBuffer类的对象调用toString()方法将返回String类型的结果

B.两个类都有append()方法

C.可以直接将字符串“test”赋值给声明的String类和StringBuffer类的变量

D.两个类的实例的值都能够被改变

答案:

A

解析:

A. StringBuffer类调用toString()方法后将转换为String类型 正确

B. String类型中没有append()方法,要追加字符串”+“即可,也没有必要 append

C. 可以直接将字符串“test”复制给声明的Stirng类的变量,而StringBuffer类的不行

D. String 实例 是不可变的

String 对象/实例 是不可以被改变的。

当new一个String对象时,JVM会在内存中创建一个String对象,当另外一个String对象值与它一样时,会将该对象直接指向对应的地址。

5. 下列关于构造方法不正确的是:( )

A.类的构造方法和类同名

B.一个类可以有多个构造方法

C.在实例化对象时必须调用类的构造方法

D.构造方法可以和该类其他方法一样被该类对象调用

答案:

D

解析:

1.构造方法也是类的方法,可以在创建对象时为成员变量赋值

2.构造方法可以进行重载,但是参数列表必须不相同,不以返回值和访问级别进行区分

3.构造方法没有返回值

4.构造方法一定要与定义为public的类同名

5.构造方法不能被对象调用,只会创建对象,使用new关键字

6.根据下面的程序代码,哪些选项的值返回true?

public class Square {
long width;
public Square(long l) {
width = l;
}
public static void main(String arg[]) {
Square a, b, c;
a = new Square(42L);
b = new Square(42L);
c = b;
long s = 42L;
}
}

A.a == b

B.s == a

C.b == c

D.a.equals(s)

答案:

C

解析:

a = new Square(42L);
b = new Square(42L);

这里new了两个对象,所以a,b不是同一个引用a!=b ,s的类型跟a,b不同类型,所以s!=a,s!=b

c = b; 这里b,c是同一个对象的引用,所以b==c是true

7.根据以下代码段,执行new Child("John", 10); 要使数据域data得到10,则子类空白处应该填写( )。

 class Parent {
private int data;
public Parent(int d){ data = d; }
} class Child extends Parent{
String name;
public Child(String s, int d){
___________________
name = s;
}
}

A.data = d;

B.super.data = d;

C.Parent(d);

D.super(d);

答案:

D

解析:

1.子父类存在同名成员时,子类中默认访问子类的成员,可通过super指定访问父类的成员,格式:super.xx (注:xx是成员名);

2.创建子类对象时,默认会调用父类的无参构造方法,可通过super指定调用父类其他构造方法,格式:s uper(yy) (注:yy是父类构造方法需要传递的参数)

8.Given the following code:() What is the result?

public class Test {
private static int j = 0;
private static Boolean methodB(int k) {
j += k;
return true;
}
public static void methodA(int i) {
boolean b;
b = i < 10 | methodB(4);
b = i < 10 || methodB(8);
}
public static void main(String args[]) {
methodA(0);
System.out.println(j);
}
}

A.The program prints”0”

B.The program prints”4”

C.The program prints”8”

D.The program prints”12”

E.The code does not complete.

答案:

B

解析:

选 B

在main函数中先调用methodA(0)

在methodA中,第二行

b = i < 10 | methodB(4); //中间为与计算符,执行完methodB(4)后,j = 4

methodA中,第三行

b = i < 10 || methodB(8);//中间为或计算符,因为i < 10 已成立,不需要后续计算

所以最后结果输出为4

9.一个文件中的字符要写到另一个文件中,首先需要( )?

A.System.out.print (buffer[i]);

B.FileOutputStream fout = new FileOutputStream(this.filename);

C.FileInputStream fin = new FileInputStream(this.filename);

D.System.in.read(buffer)

答案:

C

解析:

程序的逻辑很简单。程序必须打开两个文件,以可读的方式打开一个已有文件和以可写的方式打开一个新文件,后将已有文件中的内容,暂时存放在内存中,再写入新的文件,后关闭所有文件,程序结束。

根据题意,首先需要读入一个文件中的字符,需要FileInputStream fin = new FileInputStream(this.filename);

10. 阅读以下 foo 函数,请问它的时间复杂度是:

int foo(intarray[], int n, int key){
int n1=0,n2=n-1,m;
while(n1<=n2){
m=(n1+n2)/2;
if(array[m]==key)
return m;
if(array[m]>key)
n2=m-1;
else
n1=m+1;
}
return -1;
}

A.O(n2)

B.O(n3)

C.O(log(n))

D.O(n)

答案:

C

解析:

二分查找时间复杂度为O(logn) ,关注我的微信公众号,里面有关于时间复杂度和空间复杂度介绍的文章。

11.下列关于管道(Pipe)通信的叙述中,正确的是()?

A.进程对管道进行读操作和写操作都可能被阻塞

B.一个管道只能有一个进程或一个写进程对其操作

C.一个管道可实现双向数据传输

D.管道的容量仅受磁盘容量大小限制

答案:

A

解析:

A.正确,因为管道为空,读操作会被阻塞;管道满了,写操作会被阻塞

B.可以有多个进程对其读;也可以有多个进程写,只不过不能同时写。并且题目没有说“同时”,B不对

C.匿名管道只能单向;命名管道可以双向;所以C过于绝对

D.管道是内存中的,所以D不对

12.要导入java/awt/event下面的所有类,叙述正确的是?()

A.import java.awt.和import java.awt.event.都可以

B.只能是import java.awt.*

C.只能是import java.awt.event.*

D.import java.awt.和import java.awt.event.都不可以

答案:

C

解析:

导包只可以导到当前层,不可以再导入包里面的包中的类

13.对于JVM内存配置参数:

-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3

,其最小内存值和Survivor区总大小分别是()

A.5120m,1024m

B.5120m,2048m

C.10240m,1024m

D.10240m,2048m

答案:

D

解析:

-Xmx:最大堆大小

-Xms:初始堆大小

-Xmn: 年轻代大小

-XXSurvivorRatio:年轻代中Eden区与Survivor区的大小比值

年轻代5120m, Eden:Survivor=3,Survivor区大小=1024m(Survivor区有两个,即将年轻代分为5份,每个Survivor区占一份),总大小为2048m。

-Xms初始堆大小即最小内存值为10240m

14.URL u =new URL("http://www.123.com");。如果www.123.com不存在,则返回______。

A.http://www.123.com

B.””

C.null

D.抛出异常

答案:

A

解析:

new URL()时必须捕获检查异常,但这个异常是由于字符串格式和URL不符导致的,与网址是否存在无关。URL的toString方法返回字符串,无论网址是否存在

15.存根(Stub)与以下哪种技术有关

A.交换

B.动态链接

C.动态加载

D.磁盘调度

答案:

B

解析:

理解为适配器模式,继承该类则不需要实现一个接口全部方法。

16.Java中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述正确的是()

A.ArrayList和LinkedList均实现了List接口

B.ArrayList的访问速度比LinkedList快

C.添加和删除元素时,ArrayList的表现更佳

D.HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值

答案:

A B D

解析:

关于D,值对象可以允许null

17.下列说法正确的是()?

A.我们直接调用Thread对象的run方法会报异常,所以我们应该使用start方法来开启一个线程

B.一个进程是一个独立的运行环境,可以被看做一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的单一进程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源

C.synchronized可以解决可见性问题,volatile可以解决原子性问题

D.ThreadLocal用于创建线程的本地变量,该变量是线程之间不共享的

答案:

B D

解析:

volatile与synchronized的区别:

volatile本质是在告诉jvm当前变量在寄存器中的值是不确定的,需要从主存中读取,synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住.

volatile仅能使用在变量级别,synchronized则可以使用在变量,方法.

volatile仅能实现变量的修改可见性,但不具备原子特性,而synchronized则可以保证变量的修改可见性和原子性.

volatile不会造成线程的阻塞,而synchronized可能会造成线程的阻塞.

volatile标记的变量不会被编译器优化,而synchronized标记的变量可以被编译器优化.

18.对于构造方法,下列叙述正确的是( )。

A.构造方法的优先级一般比代码块低。

B.构造方法的返回类型只能是void型。

C.构造方法的主要作用是完成对类的对象的初始化工作。

D.一般在创建新对象时,系统会自动调用构造方法。

答案:

A C D

解析:

A:静态成员变量或静态代码块>main方法>非静态成员变量或非静态代码块>构造方法

B:think in java中提到构造器本身并没有任何返回值。

C: 构造方法的主要作用是完成对类的对象的初始化工作。

D: 一般在创建(new)新对象时,系统会自动调用构造方法。

19.下列有关JAVA异常处理的叙述中正确的是()

A.finally是为确保一段代码不管是否捕获异常都会被执行的一段代码

B.throws是用来声明一个成员方法可能抛出的各种非运行异常情况

C.final用于可以声明属性和方法,分别表示属性的不可变及方法的不可继承

D.throw是用来明确地抛出一个异常情况

答案:

A B D

解析:

C根本就跟异常处理没有关系,所以不选。

20.character流和byte流的区别不包括()

A.每次读入的字节数不同

B.前者带有缓冲,后者没有。

C.前者是字符读入,后者是字节读入。

D.二者没有区别,可以互换。

答案:

A B D

解析:

字符流和字节流每次读入的字节数是不确定的,可能相同也可能不相同

例FileInputStream 的read() 方法每次读入一个字节,read(byte b[]) 每次读入b.length个字节

FileReader 的read()方法每次读入一个字符,read(char cbuf[], int offset, int length)每次读入length个字符

另外,字符流和字节流读入一个ASCII字符,字节数是相同的

例UTF-8字符编码中一个汉字占三个字节,数字1占一个字节,用字符流读入的数字1长度为一个字节,用字节流读入的数字1长度也为一个字节

推荐

Java笔试内容集合 持续更新中....

ProcessOn是一个在线作图工具的聚合平台~

文末

欢迎关注个人微信公众号:Coder编程

欢迎关注Coder编程公众号,主要分享数据结构与算法、Java相关知识体系、框架知识及原理、Spring全家桶、微服务项目实战、DevOps实践之路、每日一篇互联网大厂面试或笔试题以及PMP项目管理知识等。更多精彩内容正在路上~

新建了一个qq群:315211365,欢迎大家进群交流一起学习。谢谢了!也可以介绍给身边有需要的朋友。

文章收录至

Github: https://github.com/CoderMerlin/coder-programming

Gitee: https://gitee.com/573059382/coder-programming

欢迎关注并star~

Java基础笔试练习(十一)的更多相关文章

  1. java基础解析系列(十一)---equals、==和hashcode方法

    java基础解析系列(十一)---equals.==和hashcode方法 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系 ...

  2. Java基础笔试练习(六)

    1.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数.类型或顺序各不相同,传回的值也可以不相同.这种面向对象程序的特性称为? A.隐藏 B.覆盖 C.重载 D.Java不支持此特性 ...

  3. java基础知识(十一)java反射机制(上)

    java.lang.Class类详解 java Class类详解 一.class类 Class类是java语言定义的特定类的实现,在java中每个类都有一个相应的Class对象,以便java程序运行时 ...

  4. Java基础笔试练习(十二)

    1.(C#.JAVA)扩展方法能访问被扩展对象的public成员 A.能 B.不能 答案: A 解析: 翻译一下,子类方法是否能够访问父类中的public成员. 2.如果子类要调用父类的构造函数,则通 ...

  5. Java基础笔试练习(九)

    1.下面所示的java代码,运行时,会产生()类型的异常 ? int Arry_a[] = new int[10]; System.out.println(Arry_a[10]); A.Arithme ...

  6. Java基础笔试练习(七)

    1.下列程序执行后结果为( )? class A { public int func1(int a, int b) { return a - b; } } class B extends A { pu ...

  7. Java基础笔试练习(五)

    1.以下关于Integer与int的区别错误的是? A.int是java提供的8种原始数据类型之一 B.Integer是java为int提供的封装类 C.int的默认值为0 D.Integer的默认值 ...

  8. Java基础笔试练习(四)

    1.编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( ). A.java B.class C.html D.exe 答案: B 解析: Java源程序 ...

  9. Java基础笔试练习(三)

    1.下列InputStream类中哪个方法可以用于关闭流? A.skip() B.close() C.mark() D.reset() 答案: B 解析: inputstream的close方法用来关 ...

随机推荐

  1. Codeforces Round #493 (Div. 2) 【A,B,C】

    简单思维题 #include<bits/stdc++.h> using namespace std; #define int long long #define inf 0x3f3f3f3 ...

  2. learning scala list.collect

    collect will apply a partial function to all elements of a Traversable and return a different collec ...

  3. am335x system upgrade kernel ethernet(四)

    1      Scope of Document This document describes ethernet hardware design and porting KZS8081 to ubo ...

  4. SOS.DLL在windbg里加载错误

    sos.dll/mscordacwks.dll 公共语言运行库(CLR)是执行托管代码的Microsoft.NET框架的核心引擎.简单地说,它通过在托管程序集中使用中间语言和元数据,JIT按需编译代码 ...

  5. windows串口编程Win32,PComm串口开发

    https://blog.csdn.net/u011430225/article/details/51496456 https://blog.csdn.net/eit520/article/detai ...

  6. Truffle - 以太坊Solidity编程语言开发框架

    http://truffle.tryblockchain.org/ Truffle框架 Truffle是什么? Truffle是针对基于以太坊的Solidity语言的一套开发框架. 本身基于JavaS ...

  7. linux命令之------Linux文件系统具体目录

    Linux文件系统具体目录 (1)/  Linux文件系统的入口,也是处于最高一级的目录 (2)/bin  系统所需要的那些命令处于此目录,比如Is,cp,mkdir等命令:功能和/usr/bin类似 ...

  8. 洛谷P1854 花店橱窗布置

    题目 DP,直接递推比记忆化搜索简单. 定义状态\(dp[i][j]\)为前i行最后一个选择第i行第j个数所得到最大值. 易得状态转移方程 \(dp[i][j]=max(dp[i-1][k]+a[i] ...

  9. Cocos Creator开发hello World

    若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理. 请点赞!因为你们的赞同/鼓励是我写作的最大动力! 欢迎关注达叔小生的简书! 这是一个有质量 ...

  10. 02-线性结构3 Reversing Linked List (25 分)

    Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elem ...