Java面向对象编程

下面程序的输出是:()

String x="fmn";
x.toUpperCase();
String y=x.replace('f','F');
y=y+"wxy";
System.out.println(y);

A.FmNwxy

B.fmnwxy

C.wxyfmn

D.Fmnwxy

答案:D

在 java 中,一个类可同时定义为许多同名的方法,这些方法的形式参数个数,类型或顺序各不相同,传回的值可能各不相同,这种面向对象的特性称为()

A.隐藏

B.覆盖

C.重载

D.无此特性

答案:C

关于 JAVA 堆,下面说法错误的是()

A.所有类的实例和数组都是在堆上分配内存的

B.对象所占的堆内存是由自动内存管理系统回收

C.堆内存由存活和死亡的对象,空闲碎片区组成

D.数组是分配在栈中的

答案:D

一个以“.java”为后缀的源文件

A.只能包含一个public类,类名必须与文件名相同

B.只能包含与文件名相同的public类以及其中的内部类

C.只能有一个与文件名相同的public类,可以包含其他非public类(不考虑内部类)

D.可以包含任意public类

答案:C

JAVA语言的下面几种数组复制方法中,哪个效率最高?

A.for循环逐一复制

B.System.arraycopy

C.Arrays.copyOf

D.使用clone方法

答案:B

()仅包含方法定义和常量值。

A.接口

B.变量

C.单元

D.成员

答案:A

对文件名为Test.java的java代码描述正确的是()

class Person {
	String name = "No name";
	public Person(String nm) {
		name = nm;
	}
}
class Employee extends Person {
	String empID = "0000";
	public Employee(String id) {
		empID = id;
	}
}
public class Test {
	public static void main(String args[]) {
		Employee e = new Employee("123");
		System.out.println(e.empID);
	}
}

A.输出:0000

B.输出:123

C.编译报错

D.输出:No name

答案:C

有关下述Java代码描述正确的选项是____。

public class TestClass {
   private static void testMethod(){
        System.out.println("testMethod");
   }
   public static void main(String[] args) {
        ((TestClass)null).testMethod();
   }
}

A.编译不通过

B.编译通过,运行异常,报NullPointerException

C.编译通过,运行异常,报IllegalArgumentException

D.编译通过,运行异常,报NoSuchMethodException

E.编译通过,运行异常,报Exception

F.运行正常,输出testMethod

答案:F

有关下述Java代码描述正确的选项是____。

public class TestClass {
   private static void testMethod(){
        System.out.println("testMethod");
   }
   public static void main(String[] args) {
        ((TestClass)null).testMethod();
   }
}

A.编译不通过

B.编译通过,运行异常,报NullPointerException

C.编译通过,运行异常,报IllegalArgumentException

D.编译通过,运行异常,报NoSuchMethodException

E.编译通过,运行异常,报Exception

F.运行正常,输出testMethod

答案:F

在jdk1.5之后,下列 java 程序输出结果为______。

int i=0;
Integer j = new Integer(0);
System.out.println(i==j);
System.out.println(j.equals(i));

A.true,false

B.true,true

C.false,true

D.false,false

E.对于不同的环境结果不同

F.程序无法执行

答案:B

另类加法:

给定两个intA和B。编写一个函数返回A+B的值,但不得使用+或其他算数运算符。

输入:1  2

返回:3

Java面向对象编程_第1张图片

public class Main14 {

    public static int addAB(int A,int B){

        if (B==0){

            return A;

        }

        int sum=0;

        int carray=0;

        while (B!=0){

            //sum等于两个数异或的结果

            sum=A^B;

            //carry等于两个数相与之后,左移一位的结果

            carray=(A&B)<<1;

            //有可能还没算完,还得继续

            A=sum;

            B=carray;

        }

        //返回上一次异或的这个结果

        return A;

    }



    public static void main(String[] args) {

        Scanner scanner=new Scanner(System.in);

        int a=scanner.nextInt();

        int b=scanner.nextInt();

        System.out.println(addAB(a,b));

    }

}

走方格的方案数

请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)从棋盘左上角出发沿

着边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和

往下走,不能往左和往上走。

注:沿棋盘格之间的边缘线行走·…数据范围: °1<=n,m<=8

输入描述:   输入两个正整数n和m,用空格隔开。(1<=n  m<=8)

输出描述:'   输出一行结果

public class Main {

//走方格的方案树

    public static int func(int m,int n){

        if (m==1 || n==1){

            return m+n;

        }

        return func(m-1,n)+func(m,n-1);

    }

    public static void main(String[] args) {

        Scanner scanner=new Scanner(System.in);

        int m=scanner.nextInt();

        int n=scanner.nextInt();

        int sum=func(m,n);

        System.out.println(sum);

    }

}

你可能感兴趣的:(java要笑着学,java,前端,servlet)