软件工程师(Java)初级阶段测试题
一、选择题:(每题2分)
1.    名为HelloWorld.java的Java应用程序如下:
public class HelloWorld   
{
public static void main(String args[])   
{
System.out.println("Hello World!");  
}
}
将这个程序放在C:\Test下,然后在命令行窗口中,进入到C:\Test路径执行如下指令:
javac helloworld.java将得到(  )结果。
A.    编译出错。
B.    编译成功,生成名为HelloWorld.class的文件。
C.    编译成功,生成名为helloworld.class的文件。
D.    找不到名为helloworld.java的文件。

2.    关于下面的类描述中正确的是(  )。
class Test {                                             // 1
void test(int i) {                                     // 2
System.out.println("I am an int.");                   // 3
}                                                 // 4
void test(String s) {                                  // 5
System.out.println("I am a string.");                 // 6
}                                                 // 7
// 8
public static void main(String args[]) {                   // 9
Test t=new Test();                                // 10
char ch='y';                                      // 11
t.test(ch);                                        // 12
}                                                  // 13
}                                                      // 14

A.    编译出错
B.    编译通过,运行出错
C.    编译通过,运行时输出“I am an int”
D.    编译通过,运行时输出“I am a string”

3.    关于下述程序:
public class Test3
{
public static void main(String[] agrs)
{
byte b = 2,e =3;       //1
byte f = b+e;         //2
System.out.println(f);  //3
}
}
描述正确的是(  )。
A.    编译通过,运行时打印出5。
B.    编译通过,运行时打印出23。
C.    编译不通过,在//2处有错误,因为此处f必须是一个int类型的变量。
D.    编译不通过,在//1处有错误,不能这样定义变量

4.    在Java中,关于让垃圾回收器强制回收对象的说法中,正确的是(  )。
A.垃圾回收不能强制
B. 调用System.gc()方法
C. 调用System.gc()方法,并且将需要回收的对象引用作为参数传递给这个方法
A.    D. 调用Runtime.gc()方法

5.    关于下述程序:
public class Test4
{
public static void main(String[] agrs)
{
double x = 1.234;   //1
double y = 2;   //2
System.out.println(""+x+y);   //3
System.out.println(x+y+"");   //4
}
}
描述正确的是(  )。
A.    编译出错。
B.    编译通过,执行的时候在//2处报错。
C.    编译通过,执行时在//3处打印出3.234,在//4处打印出3.234。
D.    编译通过,执行时在//3处打印出1.2342.0,在//4处打印出3.234。

6.    将当前目录下的所有文件都压缩到一个test.jar包中,并且将压缩信息显示到控制台上,

可以使用下列的(   )命令。
A.    jar vf test.jar .                    B.    jar cvf

test.jar .
C.    jar cv test.jar /                    D.    jar cv test.jar

.

7.    下述程序:
public class Test9
{
static int i = 1;
static
{
i++;
}

public Test9()
{
i++;
}

public static void main(String[] args)
{
Test9 t1 = new Test9();
System.out.println(t1.i);    //1

Test9 t2 = new Test9();
System.out.println(t2.i);    //2
}
}
编译运行后在//1和//2处分别打印出()。
A.    2和2            B.    3和3            C.    3和4

D.    4和3

8.    关于下述三个接口:
public interface IA
{
public void methodA();
}

public interface IB
{
public void methodB();
}

public interface IC extends IA,IB
{
public void methodA();
}
正确的是()。
A.    接口IC不能通过编译,因为它继承了两个接口。
B.    接口IC不能通过编译,因为它定义了一个和IA中一样的方法methodA()。
C.    接口IC不能通过编译,因为它继承了两个接口,并且还定义了一个和IA一样的methodA()方

法。
D.    接口IC能够顺利通过编译。

9.    下述语句执行结果为(  )。
int[] arr = new int[10];
A.    arr[0] 是0                            B.    arr[9]

是0     
C.    arr[10]是0                            D.    arr[0]

是null

10.    关于break和continue语句,下面说法错误的有(  )。
A.    break只能用于循环语句中。
B.    continue只能用于循环语句中。
C.    在循环语句中,break语句将终止循环;而continue是略过当前循环中剩余的语句进入下一

次循环。
D.    在循环语句中,continue语句将终止循环;而break是略过当前循环中剩余的语句进入下一

次循环。

11.    下面标识符合法的有(  )
A.    IAMAClass            B.    $byte             C.    const

D.    _year

12.    关于垃圾收集的哪些叙述是对的?
A.    程序开发者必须自己创建一个线程进行内存释放的工作。
B.    垃圾收集将检查并释放不再使用的内存。
C.    垃圾收集允许程序开发者明确指定并立即释放该内存。
D.    垃圾收集能够在期望的时间释放被java对象使用的内存。

13.    下面的程序的输出结果是:(   )
class SuperClass {
  static {
    System.out.println("SuperClass");
  }
  SuperClass() {
    System.out.println("SuperClass()");
  }
  public static void main(String[] args) {
    SubClass sc = new SubClass();
  }
}
class SubClass extends SuperClass {
  static {
    System.out.println("SubClass");
  }
  SubClass() {
    System.out.println("SubClass()");
  }
}
A.    SuperClass/SubClass/SuperClass()/SubClass()/
B.    SuperClass/ SuperClass()/SubClass /SubClass()/
C.    SubClass / SuperClass / SubClass()/SuperClass()/
D.    SubClass/ SubClass()/SuperClass / SuperClass()/

14.    下面程序的运行结果是:(   )
class SuperClass {
  public void f() {
    System.out.print("SuperClass.f()/");
  }
}
class SubClass extends SuperClass {
  public void f() {
   System.out.print("SubClass.f()/");
 }
}
class ThirdClass {
  public void g(SuperClass arg) {
    System.out.print("g(SuperClass)/");
    arg.f();
  }
  public void g(SubClass arg) {
    System.out.print("g(SubClass)/");
    arg.f();
  }
  public static void main(String[] args) {
    ThirdClass tc = new ThirdClass();
    SuperClass sc = new SubClass();
    tc.g(sc);
  }
}
A.    g(SubClass)/SubClass.f()/            B.    g

(SuperClass)/SuperClass.f()/
C.    g(SuperClass)/SubClass.f()/             D.    g

(SubClass)/SuperClass.f()/

15.    取出字符串String target = "IbmSunJavaBeaWeblogicOracle..."中的子串“Java”的语

句是:(   )
A.    target.substring(5,10);                B.    target.substring(6,10);
C.    target.substring(5,9);                D.    target.substring(6,9);

16.    下列描述正确的是:(   )
A.    hashCode()返回是对象在内存唯一的标识,对象不同,hashCode()返回值一定不同。
B.    hashCode()方法可以重写,但重写的逻辑要和equals()保持一致性。
C.    语句System.out.println("java"=="java");打印出的结果为“false”。
D.    HashSet容器在存放某一类的对象时,改变该类的hashCode()方法可能会影响到HashSet容

器的效率

17.    属于Collection容器的方法是:(   )
A.    iterator         B.    hasNextElement        C.    toArray

D.    next

18.    下列三条输出语句输出的结果为:(   )
System.out.print(Math.floor(156.1)+"/");
System.out.print(Math.ceil(-166.3)+"/");
System.out.print(Math.round(-123.5)+"/");
A.    156.0/-167.0/-124/                    B.    157.0/-167.0/-

123/
C.    157.0/-166.0/-124/                    D.    156.0/-166.0/-

123/

19.    下面的程序会有编译错误,更正的方法为:(   )
class OuterClass {
  public void f() {
    String s1 = "inner";
    class InnerClass {
      public void g() {
        System.out.println(s1);
      }
    }
  }
}
A.    将变量s1声明为static                B.    将变量s1声明为public
C.    将变量s1声明为final                D.    将内部类InnerClass声明

为static

20.    已有接口定义:
package test;
public interface Role {
  public void action() throws java.io.IOException;
}
下面的类定义不会有编译错误的是:
A.   
package test;
public class A implements Role {
  public void action() throws java.io.FileNotFoundException {}
}
B.   
package test;
public class B implements Role {
  public void action() throws java.io.IOException {}
}
C.   
package test;
public class C implements Role {
  public void action() {};
}
D.   
package test;
public class D implements Role {
  public void action() throws Exception {}
}

21.    下面程序的输出结果为:
import java.io.*;
class TestRandomAccessFile {
  public static void main(String[] args) throws Exception {
    RandomAccessFile file = new RandomAccessFile("temp.dat", "rw");
    file.writeBoolean(true);
    file.writeInt(100);
    file.writeInt(12345);
    file.writeInt(6789);
    file.seek(5);
    System.out.println(file.readInt());
  }
}
A.    100            B.    6789            C.    12345

D.    16777216

22.    下面程序输出的结果是:(   )
class SomeClass
    implements Comparable {
  private int number;
  private String name;
  SomeClass(int number, String name) {
    this.name = name;
    this.number = number;
  }
  public String toString() {
    return name + number;
  }
  public int compareTo(Object obj) {
    SomeClass sc = (SomeClass) obj;
    int f = name.compareTo(sc.name);
    int f1 = number > sc.number ? 1 : number == sc.number ? 0 : -1;
    return f != 0 ? f : f1;
  }
  public static void main(String[] args) {
    SomeClass[] array = {
        new SomeClass(10, "Java"), new SomeClass(9, "Java"),
        new SomeClass(10, "J2EE")};
    java.util.Arrays.sort(array);
    for(int i = 0;i<array.length;i++) {
      System.out.print(array[i]+"/");
    }
  }
}
A.    J2EE10/Java9/Java10/                     B.

Java9/J2EE10/Java10/
C.    Java10/Java9/J2EE10/                    D.

J2EE10/Java10/Java9/

23.    下面的程序输出的结果为:
public class Test {
  public static void main(String[] args) {
    StringBuffer buffer = new StringBuffer();
    int value = 18;
    do {
      int temp = value & 0x07;
      buffer.append(temp);
    }while((value>>>=3)!=0);
    System.out.println(buffer.reverse());
  }
}
A.    24                B.    23                C.

25                D.    22

。0x7是十六进制写法,其最后3位为1(00000111),所以将18(00010010)与0x7作安位与后变为

00000010(即十 进制数字2),temp变为2,然后循环执行两次buffer.append(temp)后,buffer就

变为了 22,buffer.reverse()是数组反转,22反转之后还是22所以最后输出为22
二、简答题:(每题4分)
1.    简述单子模式的思路,并且写出一种实现方案:
public class Car implements Moveable {
    private static Car car = null;

public static Car getInstance(){
        if(car == null){
            return new Car();
        }else{
            return car;
        }
}
2: 写出private、public、protected以及Default各自的访问范围:
       
3: 用简短的语言解释下列词汇
a)    JVM
        Java虚拟机,Java运行平台
b)    垃圾回收机制
        Java垃圾自动回收机制
c)    多态
d)    动态绑定
            它是一种调用对象方法的机制。Java调用对象方法时,一般采用运行时

绑定机制。
e)    关键字synchronized

三、编程题(每题8分)
1.    写一个类,当该类的实例创建时即启动一个线程,按照指定格式每隔5秒循环打印出当前的

时间(提示:使用Runnable接口或内部类创建线程,格式化日期使用java.text.SimpleDateFormat

),指定的日期格式为:
××××年××月××日 ××点××分××秒。
public class SimpleDateFormatTest {

public SimpleDateFormatTest() {
        Test t = new Test();
        new Thread(t).start();
    }

class Test implements Runnable {
        public void run() {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月DD日 HH

点MM分SS秒");
            while (true) {
                String date = sdf.format(new Date());
                System.out.println(date);
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

2.    写一个方法将一个字符串中连续出现的“Java”替换为一个“Java”。例如:字符串

“JavaJavaBeaJ2eeJavaIBMJavaJavaJava”替换的结果为“JavaBeaJ2eeJavaIBMJava”。(提示:

可以使用正则表达式)

private String replaceStr(String str){
        return str.replaceAll("(Java)+", "Java");
    }

3.    写一个程序统计输入字符串中以“,”分隔的各种单词出现的次数。例如:输入的字符串为

“java,java,j2ee,ibm,j2ee,ibm,j2me,java”,则该程序的输出结果应该为:
java3个;j2ee2个;ibm2个;j2me1个
(提示:可以使用java.util.StringTokenizer和Map容器)
    public void distinctWord() {
        Map<String, Integer> m = new HashMap<String, Integer>();
        String temp = "java,java,j2ee,ibm,j2ee,ibm,j2me,java";
        String[] temps = temp.split(",");
        for (int i = 0; i < temps.length; i++) {
            Integer freq = (Integer) m.get(temps[i]);
            if (freq == null) {
                m.put(temps[i], 1);
            } else {
                m.put(temps[i], freq + 1);
            }
        }
        //System.out.println(m);
        //这里循环一下 m 就好...
    }
       
4.    已知在文件路径“c:\temp\target.bmp”,写出Java程序将该文件同名拷贝到路径

“c:\bak”下。注意,由于文件较大,应考虑到程序的效率问题。

FileInputStream fis = null;
    FileOutputStream fos = null;
    public void copyFile(){
        try {
            fis = new FileInputStream("d:/史啸吟-断桥.wma");
            fos = new FileOutputStream("d:/index.wma");
           
            byte[] buff = new byte[512];
            try{
                int temp = fis.read(buff);
                while(temp != -1){
                    fos.write(buff);
                    temp = fis.read(buff);
                }
            }catch(IOException e){
                e.printStackTrace();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        System.out.println("文件Copy成功");
    }

5.    写出一段程序,从备选字符串“red”、“green”、“blue”、“black”、“white”中

随机选出3个不同的字符串,并打印到控制台。

List<String> colors = new LinkedList<String>();
        colors.add("red");
        colors.add("green");
        colors.add("blue");
        colors.add("black");
        colors.add("white");
        for (int i = 0; i < 3; i++) {
            int index = new Random().nextInt(colors.size() - i);
            String myColor = colors.remove(index);
            System.out.println(myColor);
        }

四、请从技术的角度谈谈你在该阶段课程中的收获和困惑。(此题不计分)

Java软件工程师[初级测试题]相关推荐

  1. java工程师_南通JAVA软件工程师暑假强化实训学校

    如果想快速学习Java的话,建议参加Java培训.特别是自学时意志力不够强,惰性大的同学,很需要Java培训机构的助力.参加Java培训机构的好处就在于,当你想要入门Java时,可以知道如何打好学习基 ...

  2. Java软件工程师 (职业简介)

    Java软件工程师 引言:信息时代的迅猛发展使得软件工程师十分抢手,而其中的java软件工程师更是备受青睐.那么,如何才能成为Java软件工程师?Java软件工程师又有怎样的发展前途?本文将为你一一解 ...

  3. 高级Java软件工程师学习资料

    目标:培养高端Java企业级软件开发工程师 + 正规学历          当今软件市场人才需求火爆,国内和国际对于专业软件开发技术人才和外包软件人才极其匮乏,市场对高端Java软件工程师的需求尤其旺 ...

  4. java软件工程师---2023年大学生职业生涯规划大赛职业生涯规划书(巨全巨详细)---禁止转载、抄袭,已参赛仅供参考

    目录 职业体验感悟(800 -1000 字) 1.自我认知(主要从优劣势.个人兴趣等方面分析自我,并运用人才测评工具评估,1000字左右) (一)自我盘点(扇形图) (二)职业兴趣(霍兰德职业兴趣测试 ...

  5. 如何选择专业的Java软件工程师培训机构

    动力节点Java培训最新上线Java实验班,等你来测试自己适不适合学习Java编程哦! 现在随着移动互联网时代和大数据时代的全面发展,Java软件开发又一次闪亮登场,吸引着人们的眼球,对Java软件开 ...

  6. JAVA软件工程师应该具备的技能有哪些?

    前言:有朋友问我:学历和能力哪个重要?我个人觉得能力大于学历,没有能力哪来的学历,学历只是证明能力的一方面.为此在能力方面畅谈java软件工程师必备的能力.作为一名合格的java工程师,不仅需要学历, ...

  7. java好的代码_做java软件工程师,怎样才能写出好的代码?

    原标题:做java软件工程师,怎样才能写出好的代码? Java代码之于java程序员而言就是左膀右臂,java代码写的好的java程序员明显更是企业的欢迎,一个优秀的java程序员的考核标准之一也是看 ...

  8. java软件工程师工作业绩_JAVA软件工程师简历自我评价

    1 / 9 JAVA 软件工程师简历自我评价 具有很强的团队精神,有良 好的组织和协调能力,有强烈的集体荣誉感. 自学能力强,喜欢钻研新技术,敢于面对和克服困难. 熟练使用 spring+struts ...

  9. java软件工程师工作业绩_java软件工程师个人简历

    ★精品文档★ 2016 全新精品资料 - 全新公文范文 - 全程指导写作 – 独家原创 1 / 3 java 软件工程师个人简历 用人单位的在筛选简历的时候,首先就是看其整体形 象,而整体形象也是第一 ...

最新文章

  1. 能让导师喜欢的学生(转自论坛)
  2. android4.4 添加快捷开关(以截屏为例)
  3. ADO.NET 2.0中的SqlCommand.ExecutePageReader
  4. matlab并联负荷模块,Matlab-SimPowerSystems-Elements模块使用说明
  5. 【C 语言】字符串拷贝 ( 指针使用前判空 | while 空语句 )
  6. 内存泄露一个经典例子
  7. 基于Spring-Data-Redis存储JavaBean对象
  8. 程序员面试100题之九:求子数组的最大和
  9. Java:Lombok插件用法笔记
  10. sql中数据类型的转换(自己写比较累哈,偷偷懒,转下别人的)
  11. oracle9i 是否安全,指纹识别与Oracle 9i安全特性解析
  12. think php union,UNION -ThinkPHP3.2.3完全开发手册 | AnSpoon.Com
  13. php preg replace中文,php preg_replace函数用法
  14. 使用CodeBlocks编译64位程序(用的编译器仅仅是windows sdk的)
  15. Oracle分析函数
  16. c语言编程思想pdf,C 编程思想(PDF)
  17. ctfmon是什么启动项_win7启动项没有ctfmon.exe的解决方法
  18. 循迹避障小车制作第一篇(tb6612模块与降压模块的使用)
  19. 3dmax2016软件一打开文件就程序错误的原因及解决方法
  20. Mac系统投屏到电视机的方法

热门文章

  1. conda与Anaconda
  2. Dx 10 与 Dx 9 的一些技术区别
  3. ubuntu20+PHP项目运行环境搭建
  4. 解决mongodb插入数据出现bson.errors错误
  5. 【PyCharm实用教程】最详细的Pycharm使用教程,你真不要进来学习一下?
  6. VS2017系统找不到指定的文件
  7. 黑客盗走《加勒比海盗5》片源?原来是空手套白狼
  8. 对finalize的理解
  9. 一节课轻松通关 Spark
  10. 三,天猫精灵SDK驱动开发板LED