Java面向对象编程(25)

简介: Java面向对象编程(25)

下面有关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);


       }


   }


}


相关文章
|
28天前
|
Java
Java面向对象编程新篇章:多态,你准备好了吗?
【6月更文挑战第17天】Java的多态性是面向对象编程的核心,它允许通过统一的接口处理不同类型的对象。例如,在一个虚拟宠物游戏中,抽象类`Pet`定义了`speak()`方法,猫、狗和鹦鹉等子类各自重写此方法以实现独特叫声。在`main`方法中,使用`Pet`类型的引用创建子类对象并调用`speak()`,多态机制确保调用实际对象的方法,实现代码的灵活性和可扩展性。通过多态,我们能以更低的耦合度和更高的复用性编写更优雅的代码。
|
29天前
|
Java
Java 面向对象编程:父类与子类的“传承”与“创新”之路
【6月更文挑战第16天】Java 中的父类与子类展示了面向对象的“传承”与“创新”。子类`Dog`继承`Animal`,获取其属性和方法如`name`和`makeSound`。子类通过`@Override`增强`makeSound`,显示多态性。设计父类时应考虑普遍性,子类创新专注自身特性,遵循继承最佳实践,利用复用提升效率,构建可维护的软件系统。
|
1月前
|
Java 安全 索引
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
【6月更文挑战第2天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
33 5
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
|
29天前
|
存储 安全 Java
深入探讨 Java 封装机制:为何它是面向对象编程的核心?
【6月更文挑战第16天】Java的封装是OOP核心,它将数据和操作数据的方法打包在类中,隐藏实现细节并提供公共接口。例如,`Student`类封装了私有属性`name`和`age`,通过`get/set`方法安全访问。封装提升代码稳定性、可维护性和复用性,防止外部直接修改导致的错误,确保数据安全。它是面向对象编程优于传统编程的关键,促进高效、可靠的开发。
|
27天前
|
Java 数据安全/隐私保护 开发者
Java是一种完全支持面向对象编程的语言,其面向对象特性包括封装、继承、多态和抽象等
【6月更文挑战第18天】**面向对象编程(OOP)通过对象封装状态和行为,实现问题域的抽象。Java全面支持OOP,核心特性包括**: - **封装**:保护数据安全,隐藏内部细节。 - **继承**:子类继承父类属性和行为,促进代码重用。 - **多态**:一个接口多种实现,增强灵活性和扩展性。 - **抽象**:通过接口和抽象类抽离共性,简化复杂性。 **Java的OOP便于理解和解决复杂系统问题。**
30 3
|
26天前
|
Java 开发者
Java面向对象编程(OOP)的四个主要概念
【6月更文挑战第19天】Java OOP的基石是封装、抽象、继承和多态。封装是通过类隐藏数据细节;抽象简化复杂性,用接口和抽象类实现;继承让子类从父类继承属性和行为,促进代码重用;多态一个接口可有多种形态,分编译时和运行时。这些概念支持灵活且可扩展的软件设计。
21 1
|
29天前
|
Java
Java 面向对象编程大揭秘:子类如何“继承”父类,摇身一变成为“新贵”?!
【6月更文挑战第16天】Java中的继承允许子类从父类继承特性与功能,如`Dog`继承`Animal`,重写`makeSound`方法,展现独特行为。同样,`Circle`继承`Shape`,定制`draw`方法以绘制圆形。继承提高了代码复用和灵活性,使子类能基于父类基础创新,如同接力赛中父类传递接力棒,子类创造新辉煌。在Java世界,继承是构建复杂项目的关键机制,有待深入探索。
|
2月前
|
Java 编译器 数据库
滚雪球学Java(40):解读Java面向对象编程中的方法和继承,打造可维护的代码库
【5月更文挑战第15天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
35 4
滚雪球学Java(40):解读Java面向对象编程中的方法和继承,打造可维护的代码库
|
2月前
|
Java
深入探索Java语言的面向对象编程
深入探索Java语言的面向对象编程
|
2月前
|
Java 编译器
Java面向对象编程:构造方法详解
Java面向对象编程:构造方法详解
37 2