一、选择题(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第一阶段测试的更多相关文章

  1. java - 第一阶段总结

    java - 第一阶段总结 递归 递归:能不用就不用,因为效率极低 package over; //递归 public class Fi { public static void main(Strin ...

  2. Java第一阶段总结

    学习java已经一个多月的时间了,第一阶段总算完成了. 这中间遇到很多问题,通过问同学问学长,收获了很多,但也知道自己和其他同学相差很远.他们java第一阶段只用了不到一个月的时间,而我拖了很长时间, ...

  3. Java第一阶段作业总结

    目录 0.前言 1.作业过程总结 2.OO设计心得 3.测试的理解与实践 4.课程收获 5.对课程的建议 前言 本次博客针对第一阶段的三次作业发表总结,作业要求主要是初学者对于Java的基本语法.用法 ...

  4. Java第一阶段项目实训

    时间:2016-3-27 17:09 银行综合业务平台业务需求 1.首页  ---------------银行综合业务平台------------------- 1开户     2登录    3.退出 ...

  5. java 初学者 第一阶段作业编程总结及心得体会

    0.前言 第一阶段java作业分为3次. 第一次作业是简单得一些语法和一些简单得逻辑思维,主要内容有求三角形是什么三角形的,还有就是求坐标点所在范围的,也涉及到了数字和字母的转换,总之相相当于是给ja ...

  6. 坚持:学习Java后台的第一阶段,我学习了那些知识

    最近的计划是业余时间学习Java后台方面的知识,发现学习的过程中,要学的东西真多啊,让我一下子感觉很遥远.但是还好我制定了计划,自己选择的路,跪着也要走完!关于计划是<终于,我还是下决心学Jav ...

  7. Java学习开发第一阶段总结

    前言: 按照学院的安排我专业应该在下学期学习Java课程,因为对技术的热爱,我选择了在本学期学习Java.俗话说得好“笨鸟先飞”,那我就先学习这门课程了. 第一阶段的学习总结: 在此次阶段任务相对比较 ...

  8. 美国6w刀的远程工作高级工程师职位,说下在线评估, 倒在第一阶段, 认知能力测试?智商不够怎么办?!

    前几天刚被裁员了, 然后在Linkedin上面看到一个crossover的senior software engineer的职位,写的可以remote, 6w刀, 我第一次参加这个公司的这种在线测试, ...

  9. JAVA学习第一阶段(1)

    java入门第一阶段 1.在java中接受并保存用户输入的值: (1)import java.util.Scanner//引入包 (2)Scanner input=new Scanner (Syste ...

随机推荐

  1. C语言第一次实验报告

    一.实验题目,设计思路,实现方法 7-7 计算火车运行时间(15 分) 4-5 求简单交错序列前N项和(15 分) 4-2-7 装睡(10 分) 思路:7-7须将时间统一单位,化为以分钟计算再将两者相 ...

  2. ios 返回不会自动刷新页面问题

    在实际开发过程中,移动端的兼容性问题有很大的坑,安卓可以了ios不行,ios可以了安卓又失效了这样,其中ios的回退操作就是不会自动刷新页面,很烦! 常见的history.back() history ...

  3. JAVA中java.util.Date、java.sql.Timestamp和String之间的互相转换

    java.util.Date与的String互转 java.util.Date---->String /** * 将java.util.Date对象转化为String字符串 * @param d ...

  4. 利用Python对文件批量重命名

    由于要用到对无序的文件进行重命名,以下写了一个脚本,进行批量进行重命名. 基本格式是  i.后缀名 ( i  循环条件下的数 ) 1 #coding:utf8 2 import os; 3 4 def ...

  5. Spark SQL数据源

    [TOC] 背景 Spark SQL是Spark的一个模块,用于结构化数据的处理. ++++++++++++++ +++++++++++++++++++++ | SQL | | Dataset API ...

  6. chromium源码阅读--进程间通信(IPC)

    第一篇就有提到Chromium是目前默认是采用多进程架构,当然,chromium有singe-process的版本. 多进程与多线程的区别,确实有很多可以讲的,我的另一篇博客也讲了一些,这里是从浏览器 ...

  7. CSS3新特性汇总

    新增选择器 p:nth-child(n){color: rgba(255, 0, 0, 0.75)} 弹性盒模型 display: flex; 多列布局 column-count: 5; 媒体查询 @ ...

  8. 老大哥在看着你!我国部署超2000万个AI监控系统

    原文:Big brother is watching you! China installs 'the world's most advanced video surveillance system' ...

  9. Ionic3 创建应用后,目录结构

    ionic start myApp blank (空项目) hooks --编译cordova时自定义的脚本命令,方便整合到我们的编译系统和版本控制系统中 node_modules --node各类依 ...

  10. 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 ...