Java面向对象编程

发布于:2023-09-22 ⋅ 阅读:(110) ⋅ 点赞:(0)

下面有关JVM内存,说法错误的是?

A. 程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的

B. Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的

C. 方法区用于存储JVM加载的类信息、常量、静态变量、即时编译器编译后的代码等数据,是线程隔离的

D. 原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的

答案:C

下列程序段的输出结果是:( )

public void complicatedexpression_r(){
int x=20, y=30;
boolean b;
b = x > 50 && y > 60 || x > 50 && y < -60 || x < -50 && y > 60 || x < -50 && y < -60;
System.out.println(b);
}

A. true

B. false

C. 1

D. 0

答案:B

输入流将数据从文件,标准输入或其他外部输入设备中加载道内存,在 java 中其对应于抽象类()及其子类。

A. java.io.InputStream

B. java.io.OutputStream

C. java.os.InputStream

D. java.os.OutputStream

答案:A

以下程序的输出结果是

public class Print{
static boolean out(char c){
System.out.print(c);
return true;
}
public static void main(String[] argv){
int i = 0;
for(out('A');out('B') && (i<2);out('C')){
i++;
out('D');
}
}
}

A. ABDCBDCB

B. BCDABCD

C. 编译错误

D. 运行错误

答案:A

下面关于程序编译说法正确的是()

A. java语言是编译型语言,会把java程序编译成二进制机器指令直接运行

B. java编译出来的目标文件与具体操作系统有关

C. java在运行时才进行翻译指令

D. java编译出来的目标文件,可以运行在任意jvm上

答案:C

下面那些情况可以终止当前线程的运行?

A. 当一个优先级高的线程进入就绪状态时

B. 抛出一个异常时

C. 当该线程调用sleep()方法时

D. 当创建一个新线程时

答案:B

下面程序的运行结果:()

public static void main(String args[]) {
 Thread t=new Thread(){
 public void run(){
 dianping();
 }
 };
 t.run();
 System.out.print("dazhong"); }
 static void dianping(){
 System.out.print("dianping");
}

A. dazhongdianping

B. dianpingdazhong

C. a和b都有可能

D. dianping循环输出,dazhong夹杂在中间

答案:B

public interface IService {String NAME="default";}

默认类型等价表示是哪一项:

A. public String NAME="default";

B. public static String NAME="default";

C. public static final String NAME="default";

D. private String NAME="default";

答案:C

有以下类定义:

abstract class Animal{
abstract void say();
}
public class Cat extends Animal{
public Cat(){
System.out.printf("I am a cat");
}
public static void main(String[] args) {
Cat cat=new Cat();
}
}

运行后:

A. I am a cat

B. Animal能编译,Cat不能编译

C. Animal不能编译,Cat能编译

D. 编译能通过,但是没有输出结果

答案:B

类Test1定义如下:

public class Test1{//1
public float aMethod(float a,float b){}//2
//3
}//4

将以下哪种方法插入行3是不合法的。

A. public int aMethod(int a,int b){}

B. private float aMethod(int a,int b,int c){}

C. public float aMethod(float a,float b){}

D. public float aMethod(float a,float b,float c){}

答案:C

星际密码
题目描述:星际战争开展了100年之后,NowCoder终于破译了外星人的密码!他们的密码是一串整数,通过一张表里的信息映射成最终4位密码。表的规则是:n对应的值 是矩阵X的n次方的左上角,如果这个数不足4位则用0填充,如果大于4位的则只输出最后4位。
 |1 1|^n => |Xn ..| 
|1 0| |.. ..|
 例如n=2时, 
|1 1|^2 => |1 1| * |1 1| => |2 1| 
|1 0| |1 0| |1 0| |1 1|
 即2对应的数是“0002”。
 输入描述:输入有多组数据。 
每组数据两行:第一行包含一个整数n (1≤n≤100);第二行包含n个正整数Xi (1≤Xi≤10000) 
输出描述:对应每一组输入,输出一行相应的密码。


 





//星际密码

public class Main40 {

    public static void main(String[] args) {

        int[] nums=new int[10001];

        nums[1]=1;

        nums[2]=2;

        for (int i = 3; i < 10001; i++) {

            nums[i]=nums[i-1]+nums[i-2];

            nums[i]=nums[i]%10000;

        }

        Scanner sc=new Scanner(System.in);

        while (sc.hasNext()){

            StringBuilder sb=new StringBuilder();

            int n=sc.nextInt();

            for (int i = 0; i < n; i++) {

                int xi=sc.nextInt();

                sb.append(String.format("%04d",nums[xi]));

            }

            System.out.println(sb);

        }

    }

}
树根
题目描述:数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根;如果结果是两位数或者包括更多位的数字,那么再把这些 数字加起来。如此进行下去,直到得到是一位数为止。 
比如,对于24 来说,把2 和4 相加得到6,由于6 是一位数,因此6 是24 的数根。 
再比如39,把3 和9 加起来得到12,由于12 不是一位数,因此还得把1 和2 加起来,最后得到3,这是一个一位数,因此3 是39 的数根。 
现在给你一个正整数,输出它的数根。 
输入描述:输入包含多组数据。 
每组数据数据包含一个正整数n(1≤n≤10E1000)。 
输出描述:对应每一组数据,输出该正整数的数根。

 



public class Main41 {

    //树根

    public static void main(String[] args) {

        Scanner scanner=new Scanner(System.in);

        while (scanner.hasNext()){

            String line=scanner.nextLine();

            while (line.length() > 1){

                int sum=0;

                for (int i = 0; i < line.length(); i++) {

                    sum += line.charAt(i)-'0';

                }

                line=String.valueOf(sum);

            }

            System.out.println(line);

        }

    }

}