java第一阶段测试
一、选择题(35题 * 2分)
1. 下列代码编译和运行的结果是:C
public static void main(String[] args) {
String[] elements = { "for", "tea", "too" };
String first = (elements.length > 0) ? elements[0] : null;
System.out.println(first);
}
A. 编译出错
B. 输出:tea
C. 输出:for
D. 输出:null
/*这里考到了三目运算符 ?前判断为真,执行表达式1,为假执行表达式2,很明显?前的判断为True.所以打印了数组第一个元素for*/
2. 请看下列代码:
public static void main(String[] args) {
Date d = new Date(0);
String ds = "December 15, 2004";
<插入代码1>
try {
d = df.parse(ds);
} catch (ParseException e) {
System.out.println("Unable to parse " + ds);
}
<插入代码2>
}
在<插入代码1>处创建一个DateFormat对象,在<插入代码2>处给Date对象d加上一天,下列选项正确的是:B
A. DateFormat df= DateFormat.getDateFormat();
d.setTime( (60 * 60 * 24) + d.getTime());
B. DateFormat df= DateFormat.getDateInstance();
d.setTime( (1000 * 60 * 60 * 24) + d.getTime());
C. DateFormat df= DateFormat.getDateFormat();
d.setLocalTime( (1000 * 60 * 60 * 24) + d.getLocalTime());
D. DateFormat df= DateFormat.getDateInstance();
d.setLocalTime( (60 * 60 * 24) + d.getLocalTime());
/*这里考到了Calendar.getInstance(); 方法 parse() 方法可解析一个日期时间字符串*/ Date.setTime();方法可设置时间
3. 请看下列代码:D
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, 2013);
c.set(Calendar.MONTH, Calendar.FEBRUARY);
c.set(Calendar.DATE, 28);
<插入代码>
}
在<插入代码>处填入将Calendar表示的日期转换为Date表示的日期:
A. Date d=c.getDate();
B. Date d=c.getCalendar();
C. Date d=c.getNow();
D. Date d=c.getTime();
知识点:Date.setTime();方法可设置时间
Date.getTime();方法可获取时间
4. 如下方法声明中,错误的是(C)。
A.public void say(){
System.out.print(“Hi”);
}
B.public void say(){
System.out.print(“Hi”); return;
}
C.public int say(){
System.out.print(“Hi”); return;
}
D.public int say(){
System.out.print(“Hi”); return 0;
}
这题的知识点是return关键字的用法,return可以用于结束语句,也可用于返回方法返回值类型,所以C不对,C中定义了int返回值类型,却没有return int类型
5.下列代码的输出结果是(D)。
public static void main(String[] args) {
int[] one=new int[]{4,6,8};
int[] two=new int[]{1,3,5,7,9};
System.arraycopy(one, 1, two, 2, 2);
System.out.println(Arrays.toString(two));
}
A.[1, 3, 7, 4, 6]
B.[1, 3, 5, 7, 8]
C.[1, 3, 5, 6, 9]
D.[1, 3, 6, 8, 9]
考查知识点 System.arraycopy(原数组,复制原数组开始的下标,目标数组,复制到的目标数组下标,复制的原数组元素个数)
6.程序执行的结果是(C)。
public class Test {
String name="Tom";
public Test(String name){
this.name=name;
}
public static void main(String [] args){
Test t = new Test("Jack");
System.out.println(t.name);
}
}
A.null
B.Tom
C.Jack
D." "
Test中传入Jack
7. 下列代码编译和运行的结果是:D
public class A {
void process() throws Exception {
throw new Exception();
}
public static void main(String[] args) {
A a = new B();
a.process();
}
}
class B extends A {
void process() {
System.out.println("B ");
}
}
A. 输出:B
B. 无输出
C. B类的process方法处,出现编译错误
D. 代码a.process();行,出现编译错误
考查知识点:抛出的异常谁调用谁处理,a.process()调用了process()方法,却没有处理异常,所以在该行出现编译错误
8.运行下面程序:
public class Foo {
public static void main(String[] args) {
StringBuffer a=new StringBuffer("A");
StringBuffer b=new StringBuffer("B");
operator(a,b);
System.out.println(a+","+b);
}
public static void operator(StringBuffer x,StringBuffer y){
x.append(y);
y=x;
}
}
输出的结果是:(d)。
A. A,B
B. A,A
C. B,B
D. AB,B
考查知识点:apend()方法的应用
9.下列代码的输出结果是(b)。
abstract class Vehicle {
public int speed() {
return 0;
}
}
class Car extends Vehicle {
public int speed() {
return 60;
}
}
class RaceCar extends Car {
public int speed() {
return 150;
}
}
public class TestCar {
public static void main(String[] args) {
RaceCar racer = new RaceCar();
Car car = new RaceCar();
Vehicle vehicle = new Car();
System.out.println(racer.speed() + ", " + car.speed() + ", "
+ vehicle.speed());
}
}
A.0, 0,0
B.150, 150, 60
C.150, 150, 150
D.抛出运行时异常
考查知识点:父类引用指向子类对象,调用子类中的方法
10.运行下面程序:
String[] strArr = { "aaa", "b", "cc" };
Arrays.sort(strArr, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.length() - o2.length();
}
});
System.out.println(Arrays.toString(strArr));
考查:Comparator比较器中重写compare方法对数组就行排序,o1.length()在前则升序,反之为降序
输出的结果是:(d)
A. [aaa, b, cc]
B. [cc, b, aaa]
C. [b, cc, aaa]
D. [aaa, cc, b]
11. 下列代码的输出结果是:D
String str1 = "WhatisJava";
String str2 = "WhatisJava";
System.out.print(str1.equals( str2));//true
System.out.print(",");
String str3 = new String("WhatisJava");
System.out.println(str1.equals(str3));//true
A. true,false
B. false,false
C. false,true
D. true,true
考查:==、equals的应用 str2没有创建对象,而是直接使用了常量池中的str1的值
12. 执行下列语句:A
int a = 0x81fd0000; // 1000 0001 1111 1101 0000 0000 0000 0000
// 0100 0000 1111 1110 1000 0000 0000 0000
//4 0 f e 8 0 0 0
a >>>= 1;//>>>= 1:后移1位
变量a的值为:()。
A. 0x40fe8000
B. 0xc0fe8000
C. 0x3fa0000
D. 0x7e02ffff
13.请看以下代码,关于这段代码描述正确的是:(C )
public class Account{
private String cardId;
public String getCardId() {
return cardId;
}
public void setCardId (String cardId) {
this. cardId = cardId;
}
}
A. Account类符合JavaBean的规则看成一个类
B. Account类不符合JavaBean的规则,因为没有无参数构造方法
C. Account类不符合JavaBean的规则,因为没有实现序列化接口
D. Account类不符合JavaBean的规则,因为方法名getCardId应改为getcardId
JavaBean的原则:成员变量必须私有化
有set、get方法
必须序列化接口
14. class Card{}下列不属于Card类构造方法的是:(C)
A. Card(){}
B. public Card(){}
C. public void Card(){}
D. private Card(){}
构造方法没有返回值
15. 关于下列代码说法不正确的是:A
10. interface Foo {
11. int bar();
12. }
13.
14. public class Beta {
15.
16. class A implements Foo {
17. public int bar() { return 1; }
18. }
19.
20. public int fubar( Foo foo) { return foo.bar(); }
21.
22. public void testFoo() {
23.
24. class A implements Foo {
25. public int bar() { return 2; }
26. }
27.
28. System.out.println( fubar( new A()));
29. }
30.
31. public static void main( String[] argv) {
32. new Beta().testFoo();
33. }
34. }
A. 编译错误
B. 运行代码输出:2
C. 如果删除16,17,18行,运行代码应然输出:2
D. 如果删除24,25,26行,运行代码输出:1
考查:方法的重写
16. 下列不属于Java运算符的是(B)。
A.!=
B.<>
C.>>
D.<<
17. 下面关于数组的声明语句中,有编译错误的是:(B)。//数组的声明和初始化必须同时进行
A. int[] arr = new int[]{1,2,3};
B. int[] arr = null;
arr = {1,2,3,4,5};
C. int[][] arr = new int[][]{{1,2,3},{4,5},{6}}
D. int[][] arr = new int[2][];
18. 下列代码的输出结果是:D
public static void main(String[] args) {
Queue<String> queue = new LinkedList<String>();
queue.offer("apple");
queue.offer("orange");
queue.offer("pear");
queue.poll();
queue.poll();
queue.poll();
System.out.println(queue.poll());
}
A. apple
B. orange
C. pear
D. null
19. 请看下列程序的输出结果是:D
public class Item {
private String desc;
public String getDescription() {
return desc;
}
public void setDescription(String d) {
desc = d;
}
public static void modifyDesc(Item item, String desc) {
item = new Item();
item.setDescription(desc);
}
public static void main(String[] args) {
Item it = new Item();
it.setDescription("Gobstopper");
Item it2 = new Item();
it2.setDescription("Fizzylifting");
modifyDesc(it, "Scrumdiddlyumptious");
System.out.println(it.getDescription());
System.out.println(it2.getDescription());
}
}
A. Scrumdiddlyumptious
Scrumdiddlyumptious
B. Scrumdiddlyumptious
Fizzylifltng
C. Gobstopper
Scrumdiddlyumptious
D. Gobstopper
Fizzylifting
20.下列代码的输出结果是: ()。
public class A {
public void info(){
System.out.println("A info");
}
}
public class B extends A{
public void info(){
System.out.println("B info");
}
public static void main(String[] args) {
B b=new B();
A a=b;
a.info();
}
}
A.
B info
A info
B.
A info
B info
C.
A info
D.
B info
21. 在Java语言中,字符串“Java程序员”在内存中所占用的字节数是:(D)。14/Java中默认Unicode编码
A. 10
B. 7
C. 13
D. 14
22. Java程序的执行过程中用到一套JDK工具,其中javac.exe是指()。
A.Java语言编译器
B.Java字节码解释器
C.Java文档生成器
D.Java类分解器
23. 下面的代码用于对数组arr实现冒泡排序:
for (int i = 0; i < arr.length - 1; i++) {
boolean isSwap = false;
空白处
if (!isSwap)
break;
}
下列选项中,空白处可以填入的代码是:(?A)。
A. for (int j = arr.length - 1; j > i; j--) {
if (arr[j] < arr[j - 1]) {
int temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
isSwap = true;
}
}
B. for (int j = arr.length - 1; j > 0; j--) {
if (arr[j] < arr[j - 1]) {
int temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
isSwap = true;
}
}
C. for (int j = i + 1; j< arr.length; j++) {
if (arr[j] < arr[j - 1]) {
int temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
isSwap = true;
}
}
D. for (int j = i; j< arr.length; j++) {
if (arr[j] < arr[j - 1]) {
int temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
isSwap = true;
}
}
24.下列代码的输出结果是(A)。
int j=0;
for(int i=0;i<100;i++){
j=j++;
}
System.out.println(j);
A.0
B.99
C.100
D.101
25.下列代码的输出结果是()。
boolean b=true?false:true==true?false:true;
System.out.println(b);
A.true
B.false
C.null
D.空字符串
26.仔细分析下列代码,请指出错误的行()。
public class SomeThing{
private String str;
public int addOne(final int x){
return ++x;
}
}
A.public class SomeThing
B.private String str;
C.public int addOne(final int x)
D.return ++x;
27.运行下面的程序:
int a = 100;
int b = 200;
a = a + b;
b = a - b;
a = a - b;
System.out.println("a=" + a + ", b=" + b);
输出的结果是:()。
A. a=100, b=300
B. a=100, b=200
C. a=200, b=100
D. a=300, b=200
28. 下列关于JVM说法,错误的是()。
A. JVM通过专门的线程实现内存的回收。
B. 使用java命令时,可以通过参数来设置分配JVM的内存大小。
C. JRE包括JVM及Java核心类库。
D. 目前主流版本JVM通过纯解释的方式运行Java字节码。
29. 请看下列代码C
public class Member{
private Long userId;
private String nickName;
//以下是getter和sett方法
……
}
Main方法中的代码:
Member m1=new Member();
m1.setUserId(new Long(100001));
m1.setNickName(“mick”);
Member m2=new Member();
m2.setUserId(new Long(100001));
m2.setNickName(“mick”);
System.out.println(m1==m2);
System.out.println(m1.equals(m2));
控制台的输出结果是:
A. true
false
B. false
true
C. false
false
D. true
ture
30. List类的对象list中的元素为:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],现在想返回该list对象的子集合[5,6,7,8],需要做的操作是:
A. list.subList(5, 8);B
B. list.subList(5, 9);
C. list.subList(4, 8);
D. list.subList(4, 9);
31. 请看下列代码:
public abstract class Shape {
int x;
int y;
public abstract void draw();
public void setAnchor(int x, int y) {
this.x = x;
this.y = y;
}
}
下列选项中能正确使用Shape类的是:BD
A. public class Circle implements Shape {
private int radius;
}
B. public abstract class Circle extends Shape {
private int radius;
public void draw() {/* code here */}
}
C. public class Circle extends Shape {
private int radius;
public void draw();//实体类不能有抽象方法
}
D. public class Circle extends Shape {
private int radius;
public void draw() {/* code here */}
}
32. 请看下列代码:
class One {
public One foo() {
return this;
}
}
class Two extends One {
public One foo() {
return this;
}
}
class Three extends Two {
<插入代码>
}
下列选项中的代码,放置在<插入代码>处无编译错误的是:AD
A. public Two foo() { return this; }
B. public void foo() { }
C. public void foo() { return this; }
D. public One foo() { return this; }
33. 题目代码的功能为:输出每个字符在一个字符串中出现的次数(不区分大小写)。
String str = "ewrwqFrewqfsadfdsfdsfs";
str=str.toLowerCase();
int max_length = 0;
while (str.length() > 0) {
《插入代码》
}BC
A. int length = str.length();
char first=str.charAt(0);//e
String strNew = str.replaceAll(String.valueOf(first), "");
if (length>strNew.length()) { //每次都拿到原来的字符串
max_length = length - strNew.length();
System.out.println(first+":"+max_length);
}
B. int length = str.length();
char first=str.charAt(0);
String strNew = str.replaceAll(String.valueOf(first), "");
if (length>strNew.length()) {
max_length = length - strNew.length();
str = strNew;
System.out.println(first+":"+max_length);
}
C. int length = str.length();
String first = str.substring(0, 1);//前包括后不包括原则
String strNew = str.replaceAll(first, "");
if (length>strNew.length()) {
max_length = length - strNew.length();
str = strNew;
System.out.println(first+":"+max_length);
}
D. int length = str.length();
String first = str.substring(0, 1);
String strNew = str.replaceAll(first, "");
if (length>strNew.length()) {
max_length = length - strNew.length();
System.out.println(first+":"+max_length);
}
34. 下面的方法属于StringBuffer的是:(bcd)。//增 删 改 插
A. size//集合的方法
B. insert
C. delete
D. length
35.查看如下代码:
class A {
protected int method (int a, int b) {
return 0;
}
}
下列选项中,可以在 A 的子类中使用的是(ABC)。
A. public int method (int a, int b) { return 0; }
B. private byte method(double a, int b) { return 0; }//私有方法,想咋写咋写
C. private int method(int a, long b) { return 0; }//私有方法,想咋写咋写
D. public short method(int a, int b) { return 0; }
二、简答题(10题 * 2分)
1.简述List、Set、Map的区别。
2.简述equals与==的区别。
3.简述java中垃圾回收机制的原理及应用。
4.请说出你所知道的实现线程同步的方法。
5.简述多线程创建方式。
6.简述冒泡排序的原理。
7.简述你学过的字节、字符流,列举并说明其流特点。
8.简述java中多态的实现机制。
9.请列举至少5种常见的Checked Exception。
10.简述4种数据权限访问的修饰符及其区别。
三、编程题(10分)
已知JAVA API中有TimerTask定时器任务接口、Timer执行任务类。
TimerTask接口中定义:
abstract void run()
此计时器任务要执行的操作。
Timer类中定义:
void schedule(TimerTask task, Date firstTime, long period)
安排指定的任务在指定的时间开始进行固定时长(毫秒)重复的任务执行。
请编写一个模拟时钟的定时任务,定时任务将在10分钟后开始执行。
}
parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数
java第一阶段测试的更多相关文章
- java - 第一阶段总结
java - 第一阶段总结 递归 递归:能不用就不用,因为效率极低 package over; //递归 public class Fi { public static void main(Strin ...
- Java第一阶段总结
学习java已经一个多月的时间了,第一阶段总算完成了. 这中间遇到很多问题,通过问同学问学长,收获了很多,但也知道自己和其他同学相差很远.他们java第一阶段只用了不到一个月的时间,而我拖了很长时间, ...
- Java第一阶段作业总结
目录 0.前言 1.作业过程总结 2.OO设计心得 3.测试的理解与实践 4.课程收获 5.对课程的建议 前言 本次博客针对第一阶段的三次作业发表总结,作业要求主要是初学者对于Java的基本语法.用法 ...
- Java第一阶段项目实训
时间:2016-3-27 17:09 银行综合业务平台业务需求 1.首页 ---------------银行综合业务平台------------------- 1开户 2登录 3.退出 ...
- java 初学者 第一阶段作业编程总结及心得体会
0.前言 第一阶段java作业分为3次. 第一次作业是简单得一些语法和一些简单得逻辑思维,主要内容有求三角形是什么三角形的,还有就是求坐标点所在范围的,也涉及到了数字和字母的转换,总之相相当于是给ja ...
- 坚持:学习Java后台的第一阶段,我学习了那些知识
最近的计划是业余时间学习Java后台方面的知识,发现学习的过程中,要学的东西真多啊,让我一下子感觉很遥远.但是还好我制定了计划,自己选择的路,跪着也要走完!关于计划是<终于,我还是下决心学Jav ...
- Java学习开发第一阶段总结
前言: 按照学院的安排我专业应该在下学期学习Java课程,因为对技术的热爱,我选择了在本学期学习Java.俗话说得好“笨鸟先飞”,那我就先学习这门课程了. 第一阶段的学习总结: 在此次阶段任务相对比较 ...
- 美国6w刀的远程工作高级工程师职位,说下在线评估, 倒在第一阶段, 认知能力测试?智商不够怎么办?!
前几天刚被裁员了, 然后在Linkedin上面看到一个crossover的senior software engineer的职位,写的可以remote, 6w刀, 我第一次参加这个公司的这种在线测试, ...
- JAVA学习第一阶段(1)
java入门第一阶段 1.在java中接受并保存用户输入的值: (1)import java.util.Scanner//引入包 (2)Scanner input=new Scanner (Syste ...
随机推荐
- C语言第一次实验报告
一.实验题目,设计思路,实现方法 7-7 计算火车运行时间(15 分) 4-5 求简单交错序列前N项和(15 分) 4-2-7 装睡(10 分) 思路:7-7须将时间统一单位,化为以分钟计算再将两者相 ...
- ios 返回不会自动刷新页面问题
在实际开发过程中,移动端的兼容性问题有很大的坑,安卓可以了ios不行,ios可以了安卓又失效了这样,其中ios的回退操作就是不会自动刷新页面,很烦! 常见的history.back() history ...
- JAVA中java.util.Date、java.sql.Timestamp和String之间的互相转换
java.util.Date与的String互转 java.util.Date---->String /** * 将java.util.Date对象转化为String字符串 * @param d ...
- 利用Python对文件批量重命名
由于要用到对无序的文件进行重命名,以下写了一个脚本,进行批量进行重命名. 基本格式是 i.后缀名 ( i 循环条件下的数 ) 1 #coding:utf8 2 import os; 3 4 def ...
- Spark SQL数据源
[TOC] 背景 Spark SQL是Spark的一个模块,用于结构化数据的处理. ++++++++++++++ +++++++++++++++++++++ | SQL | | Dataset API ...
- chromium源码阅读--进程间通信(IPC)
第一篇就有提到Chromium是目前默认是采用多进程架构,当然,chromium有singe-process的版本. 多进程与多线程的区别,确实有很多可以讲的,我的另一篇博客也讲了一些,这里是从浏览器 ...
- CSS3新特性汇总
新增选择器 p:nth-child(n){color: rgba(255, 0, 0, 0.75)} 弹性盒模型 display: flex; 多列布局 column-count: 5; 媒体查询 @ ...
- 老大哥在看着你!我国部署超2000万个AI监控系统
原文:Big brother is watching you! China installs 'the world's most advanced video surveillance system' ...
- Ionic3 创建应用后,目录结构
ionic start myApp blank (空项目) hooks --编译cordova时自定义的脚本命令,方便整合到我们的编译系统和版本控制系统中 node_modules --node各类依 ...
- 2016-2017 ACM-ICPC, Asia Tsukuba Regional Contest D Hidden Anagrams
题目链接:http://codeforces.com/gym/101158/attachments /* * @Author: lyucheng * @Date: 2017-10-21 12:20:0 ...