1.以下对继承的描述错误的是()
A Java中的继承允许一个子类继承多个父类
B父类更具有通用性,子类更具体
CJava中的继承存在着传递性
D当实例化子类时会递归调用父类中的构造方法
解析:选A Java只能继承一个父类,但可以实现多个接口。
2. this代表了()的对象引用,super表示的是当前对象的()对象?
A当前类 当前类
B当前类的父类 当前类
C当前类 当前类的父类
D以上都不正确
解析:选C
3.下列关于功能性注释不正确的说法是()
A功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态
B注释用来说明程序段,需要在每一行都要加注释
C可使用空行或缩进,以便很容易区分注释和程序
D修改程序也应修改注释
解析:选B 注释加在需要解释说明的代码行上即可,不需要每句都加。
4.下列说法正确的有:()
A class中的constructor不可省略
B constructor必须与class同名,但方法不能与class同名
C constructor在一个对象被new 时执行
D 一个class只能定义一个constructor
解析:选C,构造犯法没有返回值且构造方法不能被子类继承。不同与实例方法的是构造方法不能被任何非访问性质的修饰符修饰,例如static,final,abstract。
5.下列代码运行的结果是什么()
class B extends Object
{
static
{
System.out.println("Load B");
}
public B()
{
System.out.println("Create B");
}
}
class A extends B
{
static
{
System.out.println("Load A");
}
public A()
{
System.out.println("Create A");
}
}
public class Testclass
{
public static void main(String[] args)
{
new A();
}
}
A Load B ->Create B->Load A -> Create A
B Load B -> Load A ->Create B ->Create A
C Load B -> Create B-> Create A -> Load A
D Create B ->Create A ->Load B ->Load A
解析:选B
执行顺序:
父类静态代码块-》子类静态代码块-》父类构造代码块-》父类构造函数-》子类构造代码块-》子类构造函数
6.如果一个接口Glass有个方法setColor(),有个类BlueGlass实现接口Glass,则在类BlueGlass中正确的是? ( )
A protected void setColor() { …}
B void setColor() { …}
C public void setColor() { …}
D 以上语句都可以用在类BlueGlass中
解析:选C (1)JAVA 子类重写继承的方法时,不可以降低方法的访问权限,子类继承父类的访问修饰符要比父类的更大,也就是更加开放,假如我父类是protected修饰的,其子类只能是protected或者public,绝对不能是friendly(默认的访问范围)或者private,当然使用private就不是继承了。还要注意的是,继承当中子类抛出的异常必须是父类抛出的异常的子异常,或者子类抛出的异常要比父类抛出的异常要少。(2)子类的权限不能比父类更低 .
7.选项中哪一行代码可以替换 //add code here 而不产生编译错误
public abstract class MyClass {
public int constInt = 5;
//add code here
public void method() {
}
A public abstract void method(int a);
B consInt=constInt+5;
C public int method();
D public abstract void anotherMethod(){}
解析:选A
(1)A是抽象方法,抽象类可以包含抽象方法,也可以不包含,实现重载。(√)
B 在类中不能constInt = constInt + 5(×)
C 返回值不能作为重载的依据(×)
D 有方法体的不能作为抽象函数(×)
(2)A:抽象类可以包含抽象方法
B:类中定义成员和方法,不能直接进行运算,可以写在代码块{}或者静态代码块中static{}中
C: 与第四行想要构成重载,二者区别是返回类型,但是返回类型不能作为重载的依据
D: 该方法使用abstract修饰,是抽象方法,但是他有方法体(带有{}的就是方法体,即使里面是空的),就不能作为抽象方法
8.java中下面哪个能创建并启动线程()
public class MyRunnable implements Runnable {
public void run() {
//some code here
}
}
A new Runnable(MyRunnable).start()
B new Thread(MyRunnable).run()
C new Thread(new MyRunnable()).start()
D new MyRunnable().start()
解析:选C
首先:创建并启动线程的过程为:定义线程—》实例化线程—》启动线程。
一 、定义线程: 1、扩展java.lang.Thread类。 2、实现java.lang.Runnable接口。
二、实例化线程: 1、如果是扩展java.lang.Thread类的线程,则直接new即可。
2、如果是实现了java.lang.Runnable接口的类,则用Thread的构造方法:
Thread(Runnable target)
Thread(Runnable target, String name)
Thread(ThreadGroup group, Runnable target)
Thread(ThreadGroup group, Runnable target, String name)
Thread(ThreadGroup group, Runnable target, String name, long stackSize)
所以A、D的实例化线程错误。
三、启动线程: 在线程的Thread对象上调用start()方法,而不是run()或者别的方法。
所以B的启动线程方法错误。
本题可以采用冒泡排序来计算。
/*
* 输入一个整数数组,
* 实现一个函数来调整该数组中数字的顺序,
* 使得所有的奇数位于数组的前半部分,
* 所有的偶数位于数组的后半部分,
* 并保证奇数和奇数,
* 偶数和偶数之间的相对位置不变。
*/
public class haha {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int a[ ]= {1,2,3,4,5,6,7,8,9,10 };
for(int i=0;i
1.下列Java常见事件类中哪个是鼠标事件类?()
A InputEvent
B KeyEvent
C MouseEvent
D WindowEvent
解析:选C
2.在 JAVA 编程中, Java 编译器会将 Java 程序转换为( )
A 字节码
B 可执行代码
C 机器代码
D 以上都不对
解析:选A
编译器将Java源代码编译成字节码class文件
类加载到JVM里面后,执行引擎把字节码转为可执行代码
执行的过程,再把可执行代码转为机器码,由底层的操作系统完成执行。
3.下列对接口的说法,正确的是( )
A 接口与抽象类是相同的概念
B 若要实现一个接口为普通类则必须实现接口的所有抽象方法
C 接口之间不能有继承关系
D 一个类只能实现一个接口
选项:选B
A 接口与抽象类是不同的概念。抽象类是用于捕捉子类的通用特性,接口是抽象方法的集合;
B 实现接口必须实现接口的所有方法;
C 接口可以继承一个或多个接口,抽象类只能继承一个类或者实现多个接口;
D 一个类只能继承一个类,但是可以实现多个接口。
4.下列运算符合法的是( )
A &&
B <>
C if
D :=
选项:选A
5.程序文件名必须与公共外部类的名称完全一致(包括大小写).
正确
6.JUnit主要用来完成什么
A发送HTTP请求
B建立TCP连接
C集成测试
D单元测试
选项:D
JUnit是一个Java语言的单元测试框架,有程序员自测,就是所谓的白盒测试,主要四个方向 1、用于测试期望结果的断言(Assertion) 2、用于共享共同测试数据的测试工具 3、用于方便的组织和运行测试的测试套件 4、图形和文本的测试运行器
7.以下哪个方法用于定义线程的执行体? ( )
A start()
B init()
C run()
D synchronized()
选项:C run定义方法体(意思就是run里面写各种操作,即run(){}),start启动线程,如果将start改成run,则意思是依次将程序从前到后的顺序执行
init()和sychronized()好像不是线程的方法,sychronized()保证线程的安全。
8. 如果要建立一个java.scut.computer的包,叙述正确的是? ( )
A 只需在代码中加入“package java.scut.computer;”一个语句
B 只需在代码中加入“package java.scut;”一个语句
C 必须在代码中加入“package java.scut;”和“package java.scut.computer;”两个语句
D 在代码中,不一定是第一句,只要是类定义前,加入package语句即可
选项:A
9.下列哪一项不属于Swing的顶层容器?()
A JApplet
B JTree
C JDialog
D JFrame
选项:选B 顶层容器是指可以不能被其他容器包含 ,是容纳其他容器的容器组件,顶层容器包含JApplet、JDialog、JFrame和JWindow及其子类.
JFrame中就可以放Jtree(树形组件)
所以B不是
10.在Java中,对于不再使用的内存资源,如调用完成的方法,“垃圾回收器”会自动将其释放。( )
A 正确
B 错误
选项:B 方法调用时,会创建栈帧在栈中,调用完是程序自动出栈释放,而不是gc释放 。
JVM 内存可简单分为三个区:
1、堆区(heap):用于存放所有对象,是线程共享的(注:数组也属于对象)
2、栈区(stack):用于存放基本数据类型的数据和对象的引用,是线程私有的(分为:虚拟机栈和本地方法栈)
3、方法区(method):用于存放类信息、常量、静态变量、编译后的字节码等,是线程共享的(也被称为非堆,即 None-Heap)
Java 的垃圾回收器(GC)主要针对堆区
public class haha {
public static void main(String[] args) {
// TODO 自动生成的方法存根
/*
* 1 2 4 2 1 0 1 2 1 0 i=3 -2-1 0 1 2 j
*
*/
for (int i = 1; i <= 8; i++) {
for (int k = 1; k <= 8 - i; k++) {
System.out.print(" ");
}
for (int j = 1 - i; j < i; j++) {
if (j <= 0) {
System.out.print((int) Math.pow(2, j + i - 1) + " ");
} else {
System.out.print((int) Math.pow(2, i - 1 - j) + " ");
}
}
System.out.println();
}
}
}
1.下列InputStream类中哪个方法可以用于关闭流?
A skip()
B close()
C mark()
D reset()
解析:选C inputstream的close方法用来关闭流
skip()用来跳过一些字节
mark()用来标记流
reset()复位流
2.下列程序执行后结果为( )
class A {
public int func1(int a, int b) {
return a - b;
}
}
class B extends A {
public int func1(int a, int b) {
return a + b;
}
}
public class ChildClass {
public static void main(String[] args) {
A a = new B();
B b = new B();
System.out.println("Result=" + a.func1(100, 50));
System.out.println("Result=" + b.func1(100, 50));
}
}
A Result=150Result=150
B Result=100Result=100
C Result=100Result=150
D Result=150Result=100
解析:选A 此题考查的是多态。
关键的来了,不论向上或者向下转型,都是一句话,“编译看左边,运行看右边”。也就是编译时候,会看左边引用类型是否能正确编译通过,运行的时候是调用右边的对象的方法。
就本题来说,编译时候会发现左边满足条件所以编译通过,运行时候又会调用右边也就是 class B 的方法,所以答案都是150。
对于多态,可以总结它为:
一、使用父类类型的引用指向子类的对象;
二、该引用只能调用父类中定义的方法和变量;
三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)
四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。
多态的3个必要条件:
1.继承 2.重写 3.父类引用指向子类对象。
向上转型: Person p = new Man() ; //向上转型不需要强制类型转化
向下转型: Man man = (Man)new Person() ; //必须强制类型转化
3.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。
A static void method( )
B public void method( )
C final void method( )
D abstract void method( )
解析:选A 根据题目:使用类名AB作为前缀就可以调用,意思该方法就必须是静态方法。因为静态方法可以由类名直接调用。
A是静态方法,所以正确。
B、C、D是实例方法,必须由对象调用,不能由类名直接调用,所以错误。
只有静态方法才能被类名调用。
B、一般方法,只能被实例对象调用
C、final修饰方法,只是说明本方法不能被重写。
D、abstract修饰方法,表示本方法为抽象方法,没有方法体,且抽象方法必须在抽象类中,但是抽象类中可以没有抽象方法
4.执行下列代码后,哪些结论是正确的()?
String[] s=new String[10];
A s[0]为未定义
B s[9]为null
C s.length为0
5.This调用语句必须是构造函数中的第一个可执行语句。
A 正确
B 错误
解析:选B
this()和super()为构造方法,作用是在JVM堆中构建出一个对象。因此避免多次创建对象,同一个方法内只能调用一次this()或super()。同时为了避免操作对象时对象还未构建成功,需要this()和super()的调用在第一行实现【以此来创建对象】,防止异常。
6.下列代码的输出结果是_____
boolean b=true?false:true==true?false:true;
System.out.println(b);
A true
B false
C null
D 空字符串
解析:选B
== 优先级高于 三目运算符,先判断 true == true,此时返回为 true,
这时表达式为 boolean b = true?false:true?false:true
此时三目运算符从右向左执行,true?false:true,返回false
这时表达式为 boolean b = true?false:false;
结果为:boolean b = false ;
7.在 Java 中,属于整数类型变量的是()
A single
B double
C byte
D char
选项:选C
8.Which statement at PointX on line I allows this code to compile and run?
//point X
public class Foo {
public static void main(String[] args) throws Exception {
PrintWriter out = new PrintWriter(
new java.io.OutputStreamWriter(System.out), true);
out.printIn(“Hello”);
}
}
A import java.io.PrintWriter;
B include java.io.PrintWriter;
C import java.io.OutputStreamWriter;
D include java.io.OutputStreamWriter;
E no statement is needed.
解析:选A
9.Java.Thread的方法resume()负责重新开始被以下哪个方法中断的线程的执行()。
A stop
B sleep
C wait
D suspend
选项:选D
suspend() 和 resume() 方法:两个方法配套使用,suspend()使得线程进入阻塞状态,并且不会自动恢复,必须其对应的 resume() 被调用,才能使得线程重新进入可执行状态
10.JAVA中,下列语句哪一个正确()
A class中的constructor不可省略
B constructor必须与class同名,但方法不能与class同名
C constructor在一个对象被new时执行
D 一个class只能定义一个constructor
解析:选C
A 省略构造函数,编译器会自动生成。
D 构造函数可以重载
B 方法是可以和类名同名的,和构造方法唯一的区别就是,构造方法没有返回值。如下代码:
public class TestConStructor
{
public TestConStructor()
{
System.out.println("constructor");
}
public void TestConStructor()
{
System.out.println("not constructor");
}
public static void main(String[] args)
{
TestConStructor testConStructor = new TestConStructor();
System.out.println("main");
testConStructor.TestConStructor();
}
import java.util.Scanner;
public class Demo4_6 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
/*
* 1
* 2 1 2
* 3 2 1 2 3
* 4 3 2 1 2 3 4
* 5 4 3 2 1 2 3 4 5
* 6 5 4 3 2 1 2 3 4 5 6
* -7 -6 -5 - 4 -3 -2 -1 0 1 2 3 4 5 6 7
*
*/
Scanner sc=new Scanner(System.in);
System.out.print("请输入n:");
int n=sc.nextInt();
for(int i=1;i<=n;i++) {
for(int k=1;k<=n-i;k++) {
System.out.print(" ");
}
for(int j=-i;j<=i;j++) {
if(j!=0&&j!=1) {
System.out.print(Math.abs(j)+" ");
}
}
System.out.println();
}
}
}
1.有程序片段如下,以下表达式结果为 true 的是( )
Float s=new Float(0.1f);
Float t=new Float(0.1f);
Double u=new Double(0.1);
A s==t
B s.equals(t)
C u.equals(s)
D t.equals(u)
解析:选B
2.如果希望某个变量只可以被类本身访问和调用,则应该使用下列哪一种访问控制修饰?
A public
B private
C private protected
D protected
解析:选B
1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
3.以下程序执行的结果是:
class X{
Y y=new Y();
public X(){
System.out.print("X");
}
}
class Y{
public Y(){
System.out.print("Y");
}
}
public class Z extends X{
Y y=new Y();
public Z(){
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}
A ZYXX
B ZYXY
C YXYZ
D XYZX
解析:选C
A int x( ){ char ch=’a’; return (int)ch; }
B void x( ){ …return true; }
C int x( ){ …return true; }
D int x( int a, b){ return a+b; }
解析:选A
A public
B private
C static
D final
解析:选C
A 匿名内部类可以继承一个基类,不可以实现一个接口
B 匿名内部类不可以定义构造器
C 匿名内部类不能用于形参
D 以上说法都不正确
解析:选B
在使用匿名内部类的过程中,我们需要注意如下几点:
1、使用匿名内部类时,我们必须是继承一个类或者实现一个接口,但是两者不可兼得,同时也只能继承一个类或者实现一个接口。
2、匿名内部类中是不能定义构造函数的。
3、匿名内部类中不能存在任何的静态成员变量和静态方法。
4、匿名内部类为局部内部类,所以局部内部类的所有限制同样对匿名内部类生效。
5、匿名内部类不能是抽象的,它必须要实现继承的类或者实现的接口的所有抽象方法。
8.关于 java 的异常处理机制的叙述哪些正确?
A 不论程序是否发生错误及捕捉到异常情况,都会执行finally部分
B 当try区段的程序发生异常时,才会执行catch区段的程序
C catch部分捕捉到异常情况时,才会执行finally部分
D 其它选项都不正确
解析:选AB
9.下列关于JAVA多线程的叙述正确的是()
A 调用start()方法和run()都可以启动一个线程
B CyclicBarrier和CountDownLatch都可以让一组线程等待其他线程
C Callable类的call()方法可以返回值和抛出异常
D 新建的线程调用start()方法就能立即进行运行状态
解析:选择BC
10.有以下程序段, 则下面正确的选项是()
public class MyThead extends Thread{
public static void main(String[] args) {
MyThead t=new MyThead();
MyThead s=new MyThead();
t.start();
System.out.println("one.");
s.start();
System.out.println("two.");
}
public void run() {
System.out.println("Thread");
}
}
A 编译失败
B 程序运行可能结果为:
one.
Thread
two.
Thread
C 程序运行可能结果是:
one.
two.
Thread
Thread
D 程序运行结果不稳定
public class Demo4_2 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner sc = new Scanner(System.in);
int firstScore = 0;
int secondScore = 0;
String firstname = " ";
String secondname = " ";
int count = 0;
System.out.println("请输入学生的个数!");
int num = sc.nextInt();
while (count < num) {
System.out.println("请输入学生姓名!");
String name = sc.next();
System.out.println("请输入成绩!");
int score = sc.nextInt();
if (score > firstScore) {
secondScore = firstScore;
secondname = firstname;
firstScore = score;
firstname = name;
} else {
secondScore = score;
secondname = name;
}
count++;
}
System.out.println("最高分是" + firstname + ":" + firstScore);
System.out.println("最低分是" + secondname + ":" + secondScore);
}
}
1.面向对象程序设计语言的三个基本特征是封装、继承、多态。
A.正确
B.错误
选项:选A
2. 导出类调用基类的构造器必须用到的关键字: ( )
A this
B final
C super
D static
选项:选C
3.一个以”.java”为后缀的源文件
A 只能包含一个类,类名必须与文件名相同
B 只能包含与文件名相同的类以及其中的内部类
C 只能有一个与文件名相同的类,可以包含其他类
D 可以包含任意类
4.以下说法错误的是()
A 数组是一个对象
B 数组不是一种原生类
C 数组的大小可以任意改变
D 在Java中,数组存储在堆中连续内存空间里
选项:选C
5.以下哪个不是Collection的子接口?
A List
B Set
C SortedSet
D Map
A 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
B super()和this()不一定要放在构造方法内第一行
C this()和super()可以同时出现在一个构造函数中
D this()和super()可以在static环境中使用,包括static方法和static语句块
7.要表示10个学生的成绩,下列声明并初始化数组正确的是()
A int[] score=new int[ ]
B int score[10]
C int score[]=new int[9]
D int score[]=new int[10]
选项:选D
数组初始化有三种方式:
动态初始化:数组定义与为数组分配空间和赋值的操作分开进行;
静态初始化:在定义数字的同时就为数组元素分配空间并赋值;
默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化。
public class Test {
public static void main(String[] args) {
//动态初始化
int[] a;//int a[];两者都可以
a = new int[10];
a[0] = 0;
a[1] = 1;
a[2] = 2;
//静态初始化
int[] b = {0, 1, 2};//int b[] = {0, 1, 2};两者都可以
//默认初始化
int[] c = new int[10];//int c[] = new int[10];两者都可以
}
}
8.以下是java concurrent包下的4个类,选出差别最大的一个
A Semaphore
B ReentrantLock
C Future
D CountDownLatch
9.下列关于计算机系统和Java编程语言的说法,正确的是()
A 计算机是由硬件、操作系统和软件组成,操作系统是缺一不可的组成部分。
B Java语言编写的程序源代码可以不需要编译直接在硬件上运行。
C 在程序中书写注释不会影响程序的执行,可以在必要的地方多写一些注释。
D Java的集成开发环境(IDE),如Eclipse,是开发Java语言必需的软件工具。
选项:选C
10.mysql数据库,game_order表表结构如下,下面哪些sql能使用到索引()?
A select * from game_order where plat_game_id=5 and plat_id=134
B select * from game_order where plat_id=134 and
plat_game_id=5 and plat_order_id=’100’
C select * from game_order where plat_order_id=’100’
D select * from game_order where plat_game_id=5 and
plat_order_id=’100’ and plat_id=134
E select * from game_order where plat_game_id=5 and plat_order_id=’100’
选项:B C D E
import java.util.Scanner;
public class haha {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入密码:");
String password = sc.nextLine();
int count = 0;
for (int i = 0; i < password.length(); i++) {
char c = password.charAt(i);
if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c >= '0' && c <= '9') {
if (c >= '0' && c <= '9') {
count++;
}
} else {
System.out.println("格式错误");
return;
}
}
if (count < 2 || password.length() < 8) {
System.out.println("格式错误!");
return;
}
System.out.println("正确");
}
}
1.下列关于构造函数的描述正确的是?
正确答案: C 你的答案: C (正确)
A 构造函数可以声明返回类型
B 构造函数不可以用private修饰
C 构造函数必须与类名相同
D 构造函数不能带参数
2. 类Person里面有个方法sleep(),如果直接用Person.sleep(),则方法sleep前面必须用的关键词是? ( )
正确答案: B 你的答案: B (正确)
A class
B static
C public
D final
3. 将类的成员的访问权限设置为默认的,则该成员能被( )
正确答案: A 你的答案: A (正确)
A 同一包中的类访问
B 其它包中的类访问
C 所有的类访问
D 所有的类的子类访问
解析:
4.Java中,main()方法的返回值的类型是:
正确答案: C 你的答案: C (正确)
A public
B static
C void
D String
5. 如果类的方法没有返回值,该方法的返回类型应是:( )
正确答案: A 你的答案: A (正确)
A void
B null
C abstract
D default
6.关于Java的异常处理机制的叙述哪些正确?
正确答案: C 你的答案: C (正确)
A 如果程序发生错误及捕捉到异常情况了,才会执行finally部分
B 其他选项都不正确
C 当try区段的程序发生异常且被catch捕捉到时,才会执行catch区段的程序
D catch部分捕捉到异常情况时,才会执行finally部分
7.如何跳出Array的forEach循环?( )
正确答案: A 你的答案: A (正确)
A break
B return true
C return false
D 以上都不是
8.下列关于构造函数的描述中,错误的是()
正确答案: D 你的答案: D (正确)
A 构造函数可以设置默认的参数
B 构造函数在定义类对象时自动执行
C 构造函数可以是内联函数
D 构造函数不可以重载
9.下面哪个不属于HttpServletResponse接口完成的功能?
正确答案: C 你的答案: D (错误)
A 设置HTTP头标
B 设置cookie
C 读取路径信息
D 输出返回数据
10.JSP分页代码中,哪个步骤次序是正确的?
正确答案: A 你的答案: B (错误)
A 先取总记录数,得到总页数,最后显示本页的数据。
B 先取所有的记录,得到总页数,再取总记录数,最后显示本页的数据。
C 先取总页数,得到总记录数,再取所有的记录,最后显示本页的数据。
D 先取本页的数据,得到总页数,再取总记录数,最后显示所有的记录。
import java.util.Scanner;
public class haha {
/*
* 输入120 2*2*2*3*5=120 120%2=0 120/2=60 60%2=0 60/2=30 30%2=0 30/2=15 15%3=0
* 15/3=5 5%2!=0
*
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入n");
int n = sc.nextInt();
while (true) {
boolean flag = false;// 假设n不能被整除
for (int i = 2; i <= n / 2; i++) {
if (n % i == 0) {
System.out.print(i + ",");
n /= i;
flag = true;
break;
}
}
if (!flag) {
System.out.println(n);
break;
}
}
}
}
1.以下不属于构造方法特征的是()
正确答案: D 你的答案: D (正确)
A 构造方法名与类名相同
B 构造方法不返回任何值,也没有返回类型
C 构造方法在创建对象时调用,其他地方不能显式地直接调用
D 每一个类只能有一个构造方法
2.在某个类A中存在一个方法:void set(int x),以下不能作为这个方法的重载的声明的是()
正确答案: A 你的答案: A (正确)
A void set(int y)
B int set(int x,double y)
C double set(int x,int y)
D void set(int x,int y)
3. 关于数据库连接的程序,以下哪个语句的注释是错误的( )
正确答案: C 你的答案: C (正确)
A Class.forName(“com.mysql.jdbc.Driver”); //指定MySQL JDBC驱动程序
B String url=” jdbc:mysql://localhost:3306/student”; //指定驱动程序与数据源的连接
C db.executeUpdate(sql); //用于返回查询结果
D while(rs.next())//用于遍历查询结果中的记录
4. 有以下代码片段:
String str1="hello";
String str2="he"+ new String("llo");
System.out.println(str1==str2);
请问输出的结果是:
正确答案: D 你的答案: D (正确)
A true
B 都不对
C null
D false
解析:
2)String类底层是char数组来保存字符串的。
对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象
在class文件中有一部分来存储编译期间生成的字面常量以及符号引用,这部分叫做class文件常量池,在运行期间对应着方法区的运行时常量池。
JVM为了减少字符串对象的重复创建,其维护了一个特殊的内存,这段内存被成为字符串常量池或者字符串字面量池
工作原理
当代码中出现字面量形式创建字符串对象时,JVM首先会对这个字面量进行检查,如果字符串常量池中存在相同内容的字符串对象的引用,则将这个引用返回,否则新的字符串对象被创建,然后将这个引用放入字符串常量池,并返回该引用。
实现前提
字符串常量池实现的前提条件就是Java中String对象是不可变的,这样可以安全保证多个变量共享同一个对象。如果Java中的String对象可变的话,一个引用操作改变了对象的值,那么其他的变量也会受到影响,显然这样是不合理的。
String str1 = "hello";
这里的str1指的是方法区中的字符串常量池中的“hello”,编译时期就知道的;
String str2 = "he" + new String("llo");
这里的str2必须在运行时才知道str2是什么,所以它是指向的是堆里定义的字符串“hello”,所以这两个引用是不一样的。
如果用str1.equal(str2),那么返回的是true;因为String类重写了equals()方法。
编译器没那么智能,它不知道"he" + new String("llo")的内容是什么,所以才不敢贸然把"hello"这个对象的引用赋给str2.
如果语句改为:"he"+"llo"这样就是true了。
new String("zz")实际上创建了2个String对象,就是使用“zz”通过双引号创建的(在字符串常量池),另一个是通过new创建的(在堆里)。只不过他们的创建的时期不同,一个是编译期,一个是运行期。
String s = "a"+"b"+"c";
语句中,“a”,"b", "c"都是常量,编译时就直接存储他们的字面值,而不是他们的引用,在编译时就直接将它们连接的结果提取出来变成"abc"了。
5.若下列所用变量均已经正确定义,一下表达式中不合法的是
正确答案: B 你的答案: B (正确)
A x>>3
B +++j
C a=x>y?x:y
D x%=4
6.关于依赖注入,下列选项中说法错误的是()
正确答案: B 你的答案: C (错误)
A 依赖注入能够独立开发各组件,然后根据组件间关系进行组装
B 依赖注入使组件之间相互依赖,相互制约
C 依赖注入提供使用接口编程
D 依赖注入指对象在使用时动态注入
解析:
7.观察以下代码:
class Car extends Vehicle
{
public static void main (String[] args)
{
new Car(). run();
}
private final void run()
{
System. out. println ("Car");
}
}
class Vehicle
{
private final void run()
{
System. out. println("Vehicle");
}
}
下列哪些针对代码运行结果的描述是正确的?
正确答案: A 你的答案: C (错误)
A Car
B Vehicle
C Compiler error at line 3
D Compiler error at line 5
E Exception thrown at runtime
8.关于AWT和Swing说法正确的是?
正确答案: D 你的答案: D (正确)
A Swing是AWT的子类
B AWT在不同操作系统中显示相同的风格
C AWT不支持事件类型,Swing支持事件模型
D Swing在不同的操作系统中显示相同的风格
而Swing ,不仅提供了AWT 的所有功能,还用纯粹的Java代码对AWT的功能进行了大幅度的扩充。
例如:并不是所有的操作系统都提供了对树形控件的支持, Swing则利用了AWT中所提供的基本作图方法模拟了一个树形控件。
由于 Swing是用纯粹的Java代码来实现的,因此Swing控件在各平台通用。
因为Swing不使用本地方法,故Swing控件称为“轻量级控件”。
AWT和Swing之间的区别:
1)AWT 是基于本地方法的C/C++程序,其运行速度比较快;Swing是基于AWT的Java程序,其运行速度比较慢。
2)AWT的控件在不同的平台可能表现不同,而Swing在所有平台表现一致。
在实际应用中,应该使用AWT还是Swing取决于应用程序所部署的平台类型。例如:
1)对于一个嵌入式应用,目标平台的硬件资源往往非常有限,而应用程序的运行速度又是项目中至关重要的因素。在这种矛盾的情况下,简单而高效的AWT当然成了嵌入式Java的第一选择。
2)在普通的基于PC或者是工作站的标准Java应用中,硬件资源对应用程序所造成的限制往往不是项目中的关键因素。所以在标准版的Java中则提倡使用Swing, 也就是通过牺牲速度来实现应用程序的功能。
9.常用的servlet包的名称是?
正确答案: B D 你的答案: D (错误)
A java.servlet
B javax.servlet
C servlet.http
D javax.servlet.http
10. 下面哪些Java中的流对象是字节流?
正确答案: A B C D 你的答案: D (错误)
A FileInputStream
B BufferedInputStream
C PushbackInputStream
D ByteArrayInputStream
字节流:
InputStream
|-- FileInputStream (基本文件流)
|-- BufferedInputStream
|-- DataInputStream
|-- ObjectInputStream
字符流
Reader
|-- InputStreamReader (byte->char 桥梁)
|-- BufferedReader (常用)
Writer
|-- OutputStreamWriter (char->byte 桥梁)
|-- BufferedWriter
|-- PrintWriter (常用)
1.类声明中,声明一个类不能再被继承的关键字是()
A public
B abstract
C final
D static
2.下列说法哪个正确( )
正确答案: C 你的答案: C (正确)
A 不需要定义类,就能创建对象
B 对象中必须有数据域和方法
C 数据域可以是基本类型变量,也可以是一个对象
D 数据域必须是基本类型变量
3.以下关于java封装的描述中,正确的是:
正确答案: A 你的答案: A (正确)
A 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性
B 封装的意义不大,因此在编码中尽量不要使用
C 如果子类继承父类,对于父类中进行封装的方法,子类仍然可以直接调用
D 只能对一个类中的方法进行封装,不能对属性进行封装
4.在异常处理中,以下描述不正确的有
正确答案: D 你的答案: D (正确)
A try块不可以省略
B 可以使用多重catch块
C finally块可以省略
D catch块和finally块可以同时省略
5.编译java程序的命令文件是( )
正确答案: B 你的答案: B (正确)
A java.exe
B javac.exe
C applet.exe
6.我们在程序中经常使用“System.out.println()”来输出信息,语句中的System是包名,out是类名,println是方法名。()
正确答案: B 你的答案: A (错误)
A 正确
B 错误
7.下列哪项不属于jdk1.6垃圾收集器?
正确答案: D 你的答案: A (错误)
A Serial收集器
B parNew收集器
C CMS收集器
D G1收集器
解析:
8.如果希望监听TCP端口9000,应该怎样创建socket?
正确答案: B 你的答案: D (错误)
A new Socket(“localhost”,9000);
B new ServerSocket(9000);
C new Socket(9000);
D new ServerSocket(“localhost”,9000);
public class Test
{
public static int aMethod(int i)throws Exception
{
try{
return i/10;
}
catch (Exception ex)
{
throw new Exception("exception in a aMethod");
}finally{
System.out.printf("finally");
}
}
public static void main(String[] args){
try
{
aMethod(0);
}
catch (Exception ex)
{
System.out.printf("exception in main");
}
System.out.printf("finished");
}
}
A exception in main finished
B finally finished
C exception in main finally
D finally exception in main finally
10.下面哪几个函数 public void example(){…} 的重载函数?()
正确答案: A D 你的答案: A D (正确)
A public void example(int m){…}
B public int example(){…}
C public void example2(){…}
D public int example(int m,float f){…}
1.已知 声明并初始化二维数组 int a[ ][ ]={{1,2},{3,4},{5,6}} ,则 a[1][1] 的值为()
A 1
B 2
C 4
D 5
2.java中用()字指明继承关系.用()关键字指明对接口的实现。
A implements extends
B extends implements
C extend implement
D implement extend
选B
3.在 java 中 , 以下 _____ 类的对象以键 - 值的方式存储对象
A java,util.List
B java,util.ArrayList
C java,util.HashMap
D java,util.LinkedList
4.以下关于 abstract 关键字的说法,正确的是()
A abstract 可以与final 并列修饰同一个类。
B abstract 类中不可以有private的成员。
C abstract 类中必须全部是abstract方法。
D abstract 方法必须在abstract类或接口中。
public class Test
{
static boolean foo(char c)
{
System.out.print(c);
return true;
}
public static void main( String[] argv )
{
int i = 0;
for ( foo('A'); foo('B') && (i < 2); foo('C'))
{
i++ ;
foo('D');
}
}
}
它的结果是什么?
A ABDCBDCB
B ABCDABCD
C Compilation fails.
D An exception is thrown at runtime.
解析:选A
6.下面有关java内存模型的描述,说法错误的是?
A JMM通过控制主内存与每个线程的本地内存之间的交互,来为java程序员提供内存可见性保证
B “synchronized” — 保证在块开始时都同步主内存的值到工作内存,而块结束时将变量同步回主内存
C “volatile” — 保证修饰后在对变量读写前都会与主内存更新。
D 如果在一个线程构造了一个不可变对象之后(对象仅包含final字段),就可以保证了这个对象被其他线程正确的查看
解析:选D
7.Java语言中,方法的重写(Overriding)和重载(Overloading)是多态性的不同表现。下边哪些说法是对的?
正确答案: A C 你的答案: A C (正确)
A 重写是父类与子类之间多态性的一种表现
B 重写是一个类中多态性的一种表现
C 重载是一个类中多态性的一种表现
D 重载是父类与子类之间多态性的一种表现
解析:
8.如果Child extends Parent,那么正确的有()?
A 如果Child是class,且只有一个有参数的构造函数,那么必然会调用Parent中相同参数的构造函数
B 如果Child是interface,那么Parent必然是interface
C 如果Child是interface,那么Child可以同时extends Parent1,Parent2等多个interface
D 如果Child是class,并且没有显示声明任何构造函数,那么此时仍然会调用Parent的构造函数
选项:B C D
9.jvm中垃圾回收分为scanvenge gc和full GC,其中full GC触发的条件可能有哪些
正确答案: C D E
栈空间满
年轻代空间满
老年代满
持久代满
System.gc()
解析:
10下列说法正确的有( )
正确答案: A C D 你的答案: A D (错误)
A 环境变量可在编译source code时指定
B 在编译程序时,所能指定的环境变量不包括class path
C javac一次可同时编译数个Java源文件
D javac.exe能指定编译结果要置于哪个目录(directory)
package lianxi;
public class Demo5_20 {
/*
* 1.计算两个骰子的和
* 2.如果骰子的和为2、3、12
* lose
* 3.如果骰子的和为7、11
* win
* -----第二步和第三步执行一次------
* 4.如果和为4、5、6、8、9、10
* 4.1继续
* 4.2如果和为7 lose
* 4.3如果和与上次的和相等 win
* 否则 继续 第四步以后的循环 直到满足条件后退出
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
boolean flag=true;
int lastsum=0;
while(true) {
int a=(int) (Math.random()*7);
int b=(int) (Math.random()*7);
int sum=a+b;
if(flag) {
if(sum==2||sum==3||sum==12) {
System.out.println("你摇的点数和为"+a+"+"+b+"="+sum);
System.out.println("你输了");
break;
}else if(sum==7||sum==11) {
System.out.println("你摇的点数和为"+a+"+"+b+"="+sum);
System.out.println("你赢了");
break;
}else {
System.out.println("你摇的值是"+sum+",不符合输赢规则,请继续!");
lastsum=sum;
flag=false;
}
}else {
if(sum==7) {
System.out.println("你摇的点数和为"+a+"+"+b+"="+sum);
System.out.println("你输了");
break;
}else if(sum==lastsum){
System.out.println("你摇的点数和为"+a+"+"+b+"="+sum);
System.out.println("你赢了");
break;
}else {
System.out.println("你摇的值是"+sum+",不符合输赢规则,请继续!");
lastsum=sum;
}
}
}
}
}
1.Which is the return type of the method main()?
正确答案: B 你的答案: B (正确)
A int
B void
C Boolean
D static
2.下面哪一项不是 java 类访问控制关键字
正确答案: B 你的答案: B (正确)
A public
B this
C private
D protected
3.Java中只有整型才能使用的运算符为?
正确答案: C 你的答案: B (错误)
A *
B /
C %
D +
4.关于 JAVA 堆,下面说法错误的是()
正确答案: D 你的答案: D (正确)
A 所有类的实例和数组都是在堆上分配内存的
B 对象所占的堆内存是由自动内存管理系统回收
C 堆内存由存活和死亡的对象,空闲碎片区组成
D 数组是分配在栈中的
以上段落来自于某一本Java程序设计的书中,实际上,栈中的变量指向堆内存中的变量,这就是Java中的指针。
总结起来就是对象存储在堆内存,引用变量存储在栈内存。栈内存指向堆内存。
5.建立Statement对象的作用是?
正确答案: C 你的答案: D (错误)
A 连接数据库
B 声明数据库
C 执行SQL语句
D 保存查询结果
6.以下Java程序运行的结果是:
public class Tester{
public static void main(String[] args){
Integer var1=new Integer(1);
Integer var2=var1;
doSomething(var2);
System.out.print(var1.intValue());
System.out.print(var1==var2);
}
public static void doSomething(Integer integer){
integer=new Integer(2);
}
}
正确答案: A 你的答案: A (正确)
1true
2true
1false
2false
7.下面哪一项不属于优化Hibernate所鼓励的?
正确答案: A 你的答案: A (正确)
A 使用单向一对多关联,不使用双向一对多
B 不用一对一,用多对一取代
C 配置对象缓存,不使用集合缓存
D 继承类使用显式多态
解析:
8.面向对象程序设计语言不同于其他语言的主要特点。
正确答案: A C D 你的答案: A C D (正确)
A 继承性
B 消息传递
C 多态性
D 封装性
8.以下关于final关键字说法错误的是
正确答案: A C 你的答案: A C (正确)
A final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性
B final修饰的类肯定不能被继承
C final修饰的方法不能被重载
D final修饰的变量不允许被再次赋值
10.以下 json 格式数据,错误的是
正确答案: A C 你的答案: B C (错误)
A {company:4399}
B {“company”:{“name”:[4399,4399,4399]}}
C {[4399,4399,4399]}
D {“company”:[4399,4399,4399]}
C {“company”:{“name”:4399}}
1不考虑反射机制,一个子类显式调用父类的构造器必须用super关键字。( )
正确答案: A 你的答案: A (正确)
A正确
B错误
2.高优先级的线程比低优先级的线程运行得更快。
正确答案: B 你的答案: B (正确)
A对
B错
3JAVA属于( )。
正确答案: D 你的答案: D (正确)
A操作系统
B办公软件
C数据库系统
D计算机语言
4.A 派生出子类 B , B 派生出子类 C ,并且在 Java 源代码中有如下声明:
A a0=new A();
A a1 =new B();
A a2=new C();
问以下哪个说法是正确的? ( )
正确答案: D 你的答案: B (错误)
只有第1行能通过编译
第1、2行能通过编译,但第3行编译出错
第1、2、3行能通过编译,但第2、3行运行时出错
第1行、第2行和第3行的声明都是正确的
解析:
继承具有传递性,子类可以无条件向上转型!
5.以下选项中,合法的赋值语句是()
正确答案: B 你的答案: B (正确)
Aa>1;
Bi++;
Ca= a+1=5;
Dy = int ( i );
6.检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果
public class HelloB extends HelloA
{
public HelloB()
{
}
{
System.out.println("I’m B class");
}
static
{
System.out.println("static B");
}
public static void main(String[] args)
{
new HelloB();
}
}
class HelloA
{
public HelloA()
{
}
{
System.out.println("I’m A class");
}
static
{
System.out.println("static A");
}
}
A.
static A
I’m A class
static B
I’m B class
B.
I’m A class
I’m B class
static A
static B
C.
static A
static B
I’m A class
I’m B class
D.
I’m A class
static A
I’m B class
static B
7.以下描述错误的一项是( D)?
A程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行 到了第几行,是线程隔离的
B原则上讲,所有的对象都是在堆区上分配内存,是线程之间共享的
C方法区用于存储JVM加载的类信息、常量、静态变量,即使编译器编译后的代码等数据,是线程隔离的
DJava方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的
8.Which method you define as the starting point of new thread in a class from which n thread can be execution?
正确答案: B
A.public void start()
B.public void run()
C.public void int()
D.public static void main(String args[])
E.public void runnable()
9.下面哪个不对?
正确答案: C 你的答案: D (错误)
A.RuntimeException is the superclass of those exceptions that can be thrown during the normal operation of the Java Virtual Machine.
B.A method is not required to declare in its throws clause any subclasses of RuntimeExeption that might be thrown during the execution of the method but not caught
C.An RuntimeException is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch.
D.NullPointerException is one kind of RuntimeException
10.关于OutOfMemoryError,下面说法正确的是()?
正确答案: A B C 你的答案: B C D (错误)
A java.lang.OutOfMemoryError: PermGen space 增加-XX:MaxPermSize这个参数的值的话,这个问题通常会得到解决。
B java.lang.OutOfMemoryError: Requested array size exceeds VM limit当你正准备创建一个超过虚拟机允许的大小的数组时,这条错误将会出现
C java.lang.OutOfMemoryError: Java heap space 一般情况下解决这个问题最快的方法就是通过-Xmx参数来增加堆的大小
D java.lang.OutOfMemoryError: nativeGetNewTLA这个异常只有在jRockit虚拟机时才会碰到
1.覆盖与重载的关系是( )
正确答案: A 你的答案: A (正确)
覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中
覆盖方法和重载方法都可以不同名,也可以同名
final修饰的方法可以被覆盖,但不能被重载
覆盖与重载是同一回事
2.下面所示的java代码,运行时,会产生()类型的异常
int Arry_a[] = new int[10];
System.out.println(Arry_a[10]);
正确答案: D 你的答案: D (正确)
ArithmeticException
NullPointException
IOException
ArrayIndexOutOfBoundsException
3.C#、JAVA)扩展方法能访问被扩展对象的public成员
正确答案: A 你的答案: A (正确)
能
不能
4.列关于Java中类的构造方法的描述,正确的是()
正确答案: B 你的答案: B (正确)
构造方法的返回类型为void
可以定义一个类而在代码中不写构造方法。
在同一个类中定义的重载构造方法不可以相互调用。
子类不允许调用父类的构造方法。
5.在jdk1.8之前,下列哪一种叙述是正确的( )
正确答案: D 你的答案: B (错误)
abstract修饰符可修饰字段、方法和类
抽象方法的body部分必须用一对大括号{ }包住
声明抽象方法,大括号可有可无
声明抽象方法不可写出大括号
6.给定代码:
public class SwitchTest{//1
public static void main(String[] args) {//2
System.out.println("value="+switchit(4));//3
}//4
public static int switchit(int x) {
int j=1;
switch (x) {
case 1:j++;
case 2:j++;
case 3:j++;
case 4:j++;
case 5:j++;
default:j++;
}
return j+x;
}
}
第三行输出什么
value=6
value=8
value=3
value=5
value=4
答案:8
7.以下程序运行的结果为()
public class Example extends Thread{
@Override
public void run(){
try{
Thread.sleep(1000);
}catch (InterruptedException e){
e.printStackTrace();
}
System.out.print("run");
}
public static void main(String[] args){
Example example=new Example();
example.run();
System.out.print("main");
}
}
正确答案: A 你的答案: A (正确)
run main
main run
main
run
不能确定
8.JSP 表达式的写法:
正确答案: C 你的答案: D (错误)
<% expression %>
<=% expression %>
<%= expression %>
9.给定以下JAVA代码,这段代码运行后输出的结果是()public class Test
{
public static int aMethod(int i)throws Exception
{
try{
return i/10;
}
catch (Exception ex)
{
throw new Exception("exception in a aMethod");
}finally{
System.out.printf("finally");
}
}
public static void main(String[] args){
try
{
aMethod(0);
}
catch (Exception ex)
{
System.out.printf("exception in main");
}
System.out.printf("finished");
}
}
正确答案: B 你的答案: B (正确)
exception in main finished
finally finished
exception in main finally
finally exception in main finally
10.下列不是 Java 关键字的是 ( )
正确答案: B D 你的答案: B C D (错误)
abstract
false
native
sizeof
解析:
ava中的关键字有哪些?
答:1)48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while。
2)2个保留字(现在没用以后可能用到作为关键字):goto、const。
3)3个特殊直接量:true、false、null。
1.下列关于Java类中方法的定义,正确的是()
正确答案: D 你的答案: D (正确)
若代码执行到return语句,则将当前值返回,而且继续执行return语句后面的语句。
只需要对使用基本数据类型定义的属性使用getter和setter,体现类的封装性。
方法的返回值只能是基本数据类型。
在同一个类中定义的方法,允许方法名称相同而形参列表不同。
2.Given the following class:
public class Cat
{
long length;
public Cat(long l)
{
length = 1;
}
public static void main(String arg[])
{
Cat c1, c2, c3;
c1 = new Cat(10L);
c2 = new Cat(10L);
c3 = c2;
long m = 21L;
}
}
Which expression returns true?
正确答案: B 你的答案: B (正确)
c1==c2;
c2==c3;
m==c1;
c1.equals(m).
3.下面有关final, finally, finalize的区别描述错误的是?
正确答案: B 你的答案: B (正确)
如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承
如果一个方法被声明为final,可以被覆盖
finally在异常处理时提供 finally 块来执行任何清除操作。
Java使用 finalize() 方法在垃圾收集器象从内存中清除出去之前做必要的清理工作
4.以下代码执行后输出结果为( )
public class Test {
public static void main(String[] args) {
System.out.println("return value of getValue(): " +
getValue());
}
public static int getValue() {
try {
return 0;
} finally {
return 1;
}
}
}
正确答案: A 你的答案: A (正确)
return value of getValue(): 1
return value of getValue(): 0
return value of getValue(): 0return value of getValue(): 1
return value of getValue(): 1return value of getValue(): 0
5.关于String,StringBuilder以及StringBuffer,描述错误的是()
正确答案: C 你的答案: B (错误)
A 对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象
B StringBuffer是线程安全
C StringBuilder是线程安全
D 可以修改StringBuilder和StringBuffer的内容
7.以下java程序代码,执行后的结果是()
java.util.HashMap map=new java.util.HashMap();
map.put("name",null);
map.put("name","Jack");
System.out.println(map.size());
正确答案: C 你的答案: B (错误)
A 0
B null
C 1
D 2
解析:
8. c中,二维数组初始化的方法是:int a[3][3]={{1},{2},{3}};说法是否正确?
正确答案: A 你的答案: B (错误)
正确
错误
9.若有以下程序段:
……
int a[]={4,0,2,3,1},i,j,t;
for(i=1;i<5;i++)
{
t=a[i];
j=i-1;
while(j>=0&&t>a[j])
{
a[j+1]=a[j];
--j;
}
a[j+1]=t;
}
……
则该程序段的功能是:
正确答案: B 你的答案: B (正确)
对数组a进行插入排序(升序)
对数组a进行插入排序(降序)
对数组a进行选择排序(升序)
对数组a进行选择排序(降序)
Java 多线程有几种实现方法?( )
正确答案: A B 你的答案: A B (正确)
继承Thread类
实现Runnable接口
实现Thread接口
以上都不正确
1.在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成一些画图操作。
正确答案: D 你的答案: D (正确)
start( )
stop( )
init( )
paint( )
2.下列叙述错误的是( )
正确答案: D 你的答案: D (正确)
java提供了丰富的类库
java很好的利用了网络资源
java支持多线程
java不支持TCP/IP协议
3.类声明中,声明抽象类的关键字是 ( )
正确答案: B 你的答案: B (正确)
public
abstract
final
class
4.在程序代码中写的注释太多,会使编译后的程序尺寸变大。
正确答案: B 你的答案: B (正确)
正确
错误
5.关于顺序表叙述,正确的是()
正确答案: B 你的答案: D (错误)
不可随机访问任意节点
插入需要移动元素
删除不需要移动元素
存储空间可以离散分布
6. 关于抽象类的叙述正确的是?( )
正确答案: A 你的答案: A (正确)
抽象类不可以实例化
抽象类就是一种特殊的接口
抽象类的方法都是抽象方法
抽象类的导出类一定不是抽象类
解析:
7.对于同一类中的两个方法 , 在判断它们是不是重载方法时 , 肯定不考虑( )
正确答案: C 你的答案: C (正确)
参数个数
参数类型
返回值类型
参数顺序
8.若二维数组 a 有 m 列,则在数组元素 a[i][j] 前的元素个数为( )
正确答案: B 你的答案: B (正确)
j * m + i
i * m + j
i * m + j - 1
j * m + i - 1
9.在C语言中,设有数组定义:char arrays[]=“China”;则数组array所占用的空间为()。
正确答案: C 你的答案: D (错误)
4个字节
5个字节
6个字节
7个字节
10.不能用来修饰interface的有( )(仅限外部接口)
正确答案: A C D 你的答案: A D (错误)
private
public
protected
static
1.在 main() 方法中给出数组buffer和下标i,如果将此下标中的元素显示到控制台上,需要使用( )。
正确答案: A 你的答案: A (正确)
System.out.print (buffer[i]);
FileOutputStream fout = new FileOutputStream(this.filename);
FileInputStream fin = new FileInputStream(this.filename);
System.in.read(buffer)。
2.只有实现了()接口的类,其对象才能序列化。
正确答案: A 你的答案: C (错误)
Serializable
Cloneable
Comparable
Writeable
3.对线性表进行折半查找时,要求线性表必须()
正确答案: B 你的答案: B (正确)
以顺序方式存储
以顺序方式存储,且数据元素有序
以链接方式存储
以链接方式存储,且数据元素有序
4.假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?()
public class A
{
public int i;
static String s;
void method1(){}
static void method2(){}
}
正确答案: C 你的答案: D (错误)
System.out.println(a.i);
a.method1();
A.method1();
A.method2();
5.下列语句正确的是( )
正确答案: A 你的答案: D (错误)
形式参数可被视为local variable
形式参数可被所有的字段修饰符修饰
形式参数为方法被调用时,是真正被传递的参数
形式参数不可以是对象
6.假设要存储一个数据集,数据维持有序,对其的操作只有插入、删除和顺序遍历,综合存储效率和运行速度,下列哪种数据结构是最适合的是?
正确答案: B 你的答案: A (错误)
数组
链表
哈希表
队列
解析:
数组可以实现顺序遍历但是插入删除操作复杂,平均移动n/2个元素
链表因为存储的地址不连续(逻辑上连续实际上不连续),可以实现顺序遍历
哈希表是随机存储,所以是离散分布,顺序遍历实现不了
队列只可以在队尾插入队头删除,不可以实现中间插入和删除,不满足条件
综上,链表最合适
7.下列关于java 中的 wait()方法和 sleep()方法的区别描述错误的是?
正确答案: D 你的答案: C (错误)
wait()方法属于Object类,sleep()属于Thread类
调用wait()方法的时候,线程会放弃对象锁
调用sleep()方法的过程中,线程不会释放对象锁
sleep()方法导致了程序暂停执行指定的时间,让出cpu给其他线程
8.下列关于java并发的说法中正确的是:
正确答案: B 你的答案: B (正确)
copyonwritearraylist适用于写多读少的并发场景
readwritelock适用于读多写少的并发场景
concurrenthashmap的写操作不需要加锁,读操作需要加锁
只要在定义int类型的成员变量i的时候加上volatile关键字,那么多线程并发执行i++这样的操作的时候就是线程安全的了
9. 以下哪项可能包含菜单条( )。
正确答案: B 你的答案: B (正确)
Panel
Frame
Applet
Dialog
10.广义表中的元素或者是一个不可分割的原子,或者是一个非空的广义表()
正确答案: B 你的答案: A (错误)
对
错
1.Java 语言中,负责并发管理的机制是( )
正确答案: D 你的答案: D (正确)
垃圾回收
虚拟机
代码安全
多线程
2. 下列修饰符中与访问控制权限无关的是?( )
正确答案: D 你的答案: D (正确)
private
public
protected
final
3.基本数据类型均可任意互相转换。
正确答案: B 你的答案: B (正确)
对
错
4.与未加访问控制符的缺省情况相比,public和protected修饰符扩大了属性和方法的被访问范围,private修饰符则缩小了这种范围。
正确答案: A 你的答案: A (正确)
正确
错误
5.下列哪种说法是正确的( )
正确答案: D 你的答案: A (错误)
实例方法可直接调用超类的实例方法
实例方法可直接调用超类的类方法
实例方法可直接调用其他类的实例方法
实例方法可直接调用本类的类方法
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;
}
}
正确答案: C 你的答案: C (正确)
a == b
s == a
b == c
a.equals(s)
7.一个文件中的字符要写到另一个文件中,首先需要( )。
正确答案: C 你的答案: C (正确)
System.out.print (buffer[i]);
FileOutputStream fout = new FileOutputStream(this.filename);
FileInputStream fin = new FileInputStream(this.filename);。
System.in.read(buffer)。
8.关于以下程序代码的说明正确的是?
public class HasStatic{
2. private static int x=100;
3. public static void main(String args[]){
4. HasStatic hs1=new HasStatic();
5. hs1.x++;
6. HasStatic hs2=new HasStatic();
7. hs2.x++;
8. hs1=new HasStatic();
9. hs1.x++;
10. HasStatic.x--;
11. System.out.println("x="+x);
12. }
13. }
正确答案: D 你的答案: D (正确)
程序通过编译,输出结果为:x=103
10行不能通过编译,因为x是私有静态变量
5行不能通过编译,因为引用了私有静态变量
程序通过编译,输出结果为:x=102
9.以下是java concurrent包下的4个类,选出差别最大的一个
正确答案: C 你的答案: 空 (错误)
Semaphore
ReentrantLock
Future
CountDownLatch
10.下面有关JAVA异常类的描述,说法错误的是?
正确答案: D 你的答案: D (正确)
异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception
非RuntimeException一般是外部错误(非Error),其必须被 try{}catch语句块所捕获
Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形,Error不需要捕捉
RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等,必须被 try{}catch语句块所捕获
1.以下对继承的描述错误的是()
正确答案: A 你的答案: A (正确)
Java中的继承允许一个子类继承多个父类
父类更具有通用性,子类更具体
Java中的继承存在着传递性
当实例化子类时会递归调用父类中的构造方法
2. main 方法是 Java Application 程序执行的入口点,关于 main 方法的方法头以下哪项是合法的( )?
正确答案: B 你的答案: B (正确)
public static void main()
public static void main(String args[])
public static int main(String [] arg)
public void main(String arg[])
3. 设有 一个二维数组 A [ m ][ n ] ,假设 A [0][0] 存放位置在 644 (10) , A [2][2] 存放位置在 676 (10) ,每个元素占一个空间,问 A [3][3] (10) 存放在什么位置?脚注 (10) 表示用 10 进制表示。
正确答案: C 你的答案: C (正确)
688
678
692
696
4. 向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动() 个元素。
正确答案: B 你的答案: B (正确)
n-i
n-i+1
n-i-1
5.一个完整的URL地址由(),(),端口和文件四部分组成。
正确答案: B 你的答案: B (正确)
协议 用户名
协议 主机名
主机名 ip
以上都不正确
6.在一个长度为n的顺序表中删除第i个元素(1<=i<=n)时,需向前移动 () 个元素
正确答案: A 你的答案: A (正确)
n-i
n-i+l
n-i-1
i
7.对于Java中异常的描述正确的是( )
正确答案: D 你的答案: D (正确)
用throws定义了方法可能抛出的异常,那么调用此方法时一定会抛出此异常。
如果try块中没有抛出异常,finally块中的语句将不会被执行。
抛出异常意味着程序发生运行时错误,需要调试修改
Java中的可不检测(unchecked)异常可能来自RuntimeException类或其子类。
8.子类A继承父类B, A a = new A(); 则父类B构造函数、父类B静态代码块、父类B非静态代码块、子类A构造函数、子类A静态代码块、子类A非静态代码块 执行的先后顺序是?
正确答案: C 你的答案: C (正确)
父类B静态代码块->父类B构造函数->子类A静态代码块->父类B非静态代码块->子类A构造函数->子类A非静态代码块
父类B静态代码块->父类B构造函数->父类B非静态代码块->子类A静态代码块->子类A构造函数->子类A非静态代码块
父类B静态代码块->子类A静态代码块->父类B非静态代码块->父类B构造函数->子类A非静态代码块->子类A构造函数
父类B构造函数->父类B静态代码块->父类B非静态代码块->子类A静态代码块->子类A构造函数->子类A非静态代码块
9.下列给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。ss所指字符串数数组中共有M个字符串,且串长小于N。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
试题程序。
#define M 5
#define N 20
int fun(char(* ss)[N], int *n)
{
int i, k = 0, len = N;
for (i = 0; i < ______; i++)
{
len = strlen(ss[i]);
if (i == 0)
*n = len;
if (len ____ * n)
{
*n = len;
k = i;
}
}
return ( _____ );
}
main( )
{
char ss[M][N] = {"shanghai", "guangzhou", "beijing", "tianjing", "chongqing"};
int n, k, i;
printf("\nThe originalb stringsare:\n");
for (i = 0; i < M; i++)
puts(ss[i]);
k = fun(ss, &n);
printf("\nThe length of shortest string is: % d\n", n);
printf("\nThe shortest string is: % s\n", ss[k]);
}
正确答案: C 你的答案: C (正确)
N,< ,k
N, >,k
M,<,k
M,>,k
10.有关hashMap跟hashTable的区别,说法正确的是?
正确答案: A B C D 你的答案: A B (错误)
HashMap和Hashtable都实现了Map接口
HashMap是非synchronized,而Hashtable是synchronized
HashTable使用Enumeration,HashMap使用Iterator
Hashtable直接使用对象的hashCode,HashMap重新计算hash值,而且用与代替求模
import java.util.Scanner;
public class Demo4 {
// 1 2 6 34 5 6 9
/*
* 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 输入:
* [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
int nums[] = {11,11};
int maxSum = maxSumArray(nums);
System.out.println("最大和为" + maxSum);
}
private static int maxSumArray(int[] nums) {
// TODO 自动生成的方法存根
if (nums.length == 0 || nums == null) {
return 0;
}
if (nums.length == 1) {
return nums[0];
}
int max = nums[0];
int maxsum = nums[0];
for (int i = 0; i < nums.length; i++) {// 比的轮数
int sum = 0;
for (int j = i; j < nums.length; j++) {// 每一轮比的次数
sum+=nums[j];
if (sum > max) {
max = sum;
}
}
if (max > maxsum) {
maxsum = max;
}
}
return maxsum;
}
}
1.一个类可以有多个不同名的构造函数 。( )
正确答案: B 你的答案: A (错误)
正确
错误
2.下面有关JDK中的包和他们的基本功能,描述错误的是?
正确答案: C 你的答案: C (正确)
java.awt: 包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面
java.io: 包含提供多种输出输入功能的类
java.lang: 包含执行与网络有关的类,如URL,SCOKET,SEVERSOCKET
java.util: 包含一些实用性的类
3.以下有关构造方法的说法,正确的是:()
正确答案: A 你的答案: C (错误)
一个类的构造方法可以有多个
构造方法在类定义时被调用
构造方法只能由对象中的其他方法调用
构造方法可以和类同名,也可以和类名不同
4.线性表就是顺序存储的表()
正确答案: B 你的答案: B (正确)
对
错
5.下列关于功能性注释不正确的说法是()
正确答案: B 你的答案: B (正确)
功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态
注释用来说明程序段,需要在每一行都要加注释
可使用空行或缩进,以便很容易区分注释和程序
修改程序也应修改注释
6.在java的一个异常处理中,可以包含多个的语句块是 ( )。
正确答案: D 你的答案: A (错误)
try
finally
throws
catch
解析:
异常处理一般格式:
捕获异常: try{ //代码块 }
catch(异常类型,例如:Exception e)
{ //需要抛出的异常,例如:e.printStackTrace(); }
catch(异常类型)
{ //需要抛出的异常 }
finally{ //必定执行的代码块 }
所以说在一个异常处理中catch语句块是可以多个的,也就是可以抛出多个异常!
7.下列关于构造方法的叙述中,错误的是()
正确答案: C D 你的答案: C (错误)
java语言规定构造方法名与类名必须相同
java语言规定构造方法没有返回值,但不同void声明
java语言规定构造方法不可以重载
java语言规定构造方法只能通过new自动调用
解析:this关键字也可以调用。
8.下面有关java的instanceof、?、&、&&说法正确的有?
正确答案: A B C D 你的答案: A B C D (正确)
instanceof 可用来判断某个实例变量是否属于某种类的类型。
“?:” 三目运算符
&在逻辑运算中是非短路逻辑与,在位运算中是按位与
&& 逻辑运算:逻辑与
9.mysql数据库,game_order表表结构如下,下面哪些sql能使用到索引()?
正确答案: B C D E 你的答案: B C D E (正确)
select * from game_order where plat_game_id=5 and plat_id=134
select * from game_order where plat_id=134 and
plat_game_id=5 and plat_order_id=’100’
select * from game_order where plat_order_id=’100’
select * from game_order where plat_game_id=5 and
plat_order_id=’100’ and plat_id=134
select * from game_order where plat_game_id=5 and plat_order_id=’100’
10.下面哪些类可以被继承? Java.lang.Thread、java.lang.Number、java.lang.Double、java.lang.Math、 java.lang.ClassLoader
正确答案: A B E 你的答案: B C D (错误)
Thread
Number
Double
Math
ClassLoader
public class Demo {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int price[]= {7,1,5,3,6,4};
int maxProfit=maxprofit(price);
System.out.println(maxProfit);
}
private static int maxprofit(int[] price) {
// TODO 自动生成的方法存根
// int maxProfit=0;
// for(int i=0;idayprofit) {
// dayprofit=profit;
// }
// }
// if(dayprofit>maxProfit) {
// maxProfit=dayprofit;
// }
// }
// return maxProfit;
if(price.length==0||price==null) {
return 0;
}
int maxprofit=0;
int min=price[0];
for(int i=0;imaxprofit) {
maxprofit=price[i]-min;
}
}
return maxprofit;
}
}