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.10java
答案:
Dgit
解析:
没有break,发生case穿透现象,程序会继续向下执行,直到遇到break或者结束switch语句的大括号为止。github
A.Ada
B.C++
C.Pascal
D.BASIC面试
答案:
B算法
解析:
ava是类C语言,从C++改进而来 去掉了指针和多继承,采用自动垃圾回收等编程
A.只能包含一个类,类名必须与文件名相同
B.只能包含与文件名相同的类,以及其中的内部类
C.只能有一个与文件名相同的类,能够包含其余类
D.能够包含任意类微信
答案:
C数据结构
解析:
C。一个与文件名相同的public的类敏感词类可随意多个。app
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对象值与它同样时,会将该对象直接指向对应的地址。
A.类的构造方法和类同名
B.一个类能够有多个构造方法
C.在实例化对象时必须调用类的构造方法
D.构造方法能够和该类其余方法同样被该类对象调用
答案:
D
解析:
1.构造方法也是类的方法,能够在建立对象时为成员变量赋值
2.构造方法能够进行重载,可是参数列表必须不相同,不以返回值和访问级别进行区分
3.构造方法没有返回值
4.构造方法必定要与定义为public的类同名
5.构造方法不能被对象调用,只会建立对象,使用new关键字
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
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是父类构造方法须要传递的参数)
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
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);
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) ,关注个人微信公众号,里面有关于时间复杂度和空间复杂度介绍的文章。
A.进程对管道进行读操做和写操做均可能被阻塞
B.一个管道只能有一个进程或一个写进程对其操做
C.一个管道可实现双向数据传输
D.管道的容量仅受磁盘容量大小限制
答案:
A
解析:
A.正确,由于管道为空,读操做会被阻塞;管道满了,写操做会被阻塞
B.能够有多个进程对其读;也能够有多个进程写,只不过不能同时写。而且题目没有说“同时”,B不对
C.匿名管道只能单向;命名管道能够双向;因此C过于绝对
D.管道是内存中的,因此D不对
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
解析:
导包只能够导到当前层,不能够再导入包里面的包中的类
-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
A.http://www.123.com
B.””
C.null
D.抛出异常
答案:
A
解析:
new URL()时必须捕获检查异常,但这个异常是因为字符串格式和URL不符致使的,与网址是否存在无关。URL的toString方法返回字符串,不管网址是否存在
A.交换
B.动态连接
C.动态加载
D.磁盘调度
答案:
B
解析:
理解为适配器模式,继承该类则不须要实现一个接口所有方法。
A.ArrayList和LinkedList均实现了List接口
B.ArrayList的访问速度比LinkedList快
C.添加和删除元素时,ArrayList的表现更佳
D.HashMap实现Map接口,它容许任何类型的键和值对象,并容许将null用做键或值
答案:
A B D
解析:
关于D,值对象能够容许null
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标记的变量能够被编译器优化.
A.构造方法的优先级通常比代码块低。
B.构造方法的返回类型只能是void型。
C.构造方法的主要做用是完成对类的对象的初始化工做。
D.通常在建立新对象时,系统会自动调用构造方法。
答案:
A C D
解析:
A:静态成员变量或静态代码块>main方法>非静态成员变量或非静态代码块>构造方法
B:think in java中提到构造器自己并无任何返回值。
C: 构造方法的主要做用是完成对类的对象的初始化工做。
D: 通常在建立(new)新对象时,系统会自动调用构造方法。
A.finally是为确保一段代码不论是否捕获异常都会被执行的一段代码
B.throws是用来声明一个成员方法可能抛出的各类非运行异常状况
C.final用于能够声明属性和方法,分别表示属性的不可变及方法的不可继承
D.throw是用来明确地抛出一个异常状况
答案:
A B D
解析:
C根本就跟异常处理没有关系,因此不选。
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笔试内容集合 持续更新中....
欢迎关注我的微信公众号:Coder编程
欢迎关注Coder编程公众号,主要分享数据结构与算法、Java相关知识体系、框架知识及原理、Spring全家桶、微服务项目实战、DevOps实践之路、每日一篇互联网大厂面试或笔试题以及PMP项目管理知识等。更多精彩内容正在路上~
新建了一个qq群:315211365,欢迎你们进群交流一块儿学习。谢谢了!也能够介绍给身边有须要的朋友。
文章收录至
Github: https://github.com/CoderMerlin/coder-programming
Gitee: https://gitee.com/573059382/coder-programming
欢迎关注并star~