Java面向对象编程(29)

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

下列关于 java 语言的特点,描述错误的是()

A. java是跨平台的编程语言

B. java支持分布式计算

C. java是面向过程的编程语言

D. java支持多线程

答案:C

当你编译和运行下面的代码时,会出现下面选项中的哪种情况?

public class Pvf{
static boolean Paddy;
public static void main(String args[]){
System.out.println(Paddy);
}
}

A. 编译时错误

B. 编译通过并输出结果false

C. 编译通过并输出结果true

D. 编译通过并输出结果null

答案:B

以下叙述正确的是

A. 实例方法可直接调用超类的实例方法

B. 实例方法可直接调用超类的类方法

C. 实例方法可直接调用子类的实例方法

D. 实例方法可直接调用本类的实例方法

答案:D

Java 语言用以下哪个类来把基本类型数据封装为对象()

A. 包装类

B. Class

C. Math

D. Object

答案:A

关于异常处理机制的叙述正确的是()

A. catch部分捕捉到异常情况时,才会执行finally部分

B. 当try区段的程序发生异常时,才会执行finally部分

C. 当try区段不论程序是否发生错误及捕捉到异常情况,都会执行finally部分

D. 其他选项都是

答案:C

HashSet子类依靠()方法区分重复元素。

A. toString(),equals()

B. clone(),equals()

C. hashCode(),equals()

D. getClass(),clone()

答案:C

以下代码在编译和运行过程中会出现什么情况

public class TestDemo{
private int count;
public static void main(String[] args) {
TestDemo test=new TestDemo(88);
System.out.println(test.count);
}
TestDemo(int a) {
count=a;
}
}

A. 编译运行通过,输出结果是88

B. 编译时错误,count变量定义的是私有变量

C. 编译时错误,System.out.println方法被调用时test没有被初始化

D. 编译和执行时没有输出结果

答案:A

以下程序执行的结果是:

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

有这么一段程序:

public class Test{
public String name="abc";
public static void main(String[] args){
Test test=new Test();
Test testB=new Test();
System.out.println(test.equals(testB)+","+test.name.equals(testB.name));
}
}

请问以上程序执行的结果是()

A. true,true

B. true,false

C. false,true

D. false,false

答案:C

以下哪项是类实例化的语句?

A. varName ClassName=new varName();

B. ClassName varName=new ClassName(new ClassName);

C. ClassName varName=ClassName();

D. ClassName varName=new ClassName();

答案:D

求正整数组的最小不可组成和

题目描述:给定一个全是正数的数组arr,定义一下arr的最小不可组成和的概念:

  1. arr的所有非空子集中,把每个子集内的所有元素加起来会出现很多的值,其中最小的 记为min,最大的记为max;
  2. 在区间[min,max]上,如果有一些正数不可以被arr某一个子集相加得到,那么这些正数中最小的那个,就是arr的最小不可组成 和;
  3. 在区间[min,max]上,如果所有的数都可以被arr的某一个子集相加得到,那么max+1是arr的最小不可组成和;

举例: arr = {3,2,5} arr的min为2, max为10,在区间[2,10]上,4是不能被任何一个子集相加得到的值中最小的,所以4是arr的最小不可组成和; arr = {3,2,4} arr的min为2,max为9,在区间 [2,9]上,8是不能被任何一个子集相加得到的值中最小的,所以8是arr的最小不可组成和; arr = {3,1,2} arr的min为1,max为6,在区间[2,6]上,任何数都可以 被某一个子集相加得到,所以7是arr的最小不可组成和; 请写函数返回arr的最小不可组成和。

public class Solution5 {
//    求正整数组的最小不可组成和
    //输入:整数数组arr
    //返回:整数数组中的最小不可组成和
    public int getFirstUnFromedNum(int[] arr){
        int min =Integer.MAX_VALUE;
        int max=0;
        for (int i:arr) {
            min=Math.min(min,i);
            max+=i;
        }
        boolean[] result=new boolean[max+1];
        result[0]=true;
        for (int o:arr) {
            for (int j = max; j >=o ; j--) {
                result[j]=result[j-o] || result[j];
            }
        }
        for (int j = min; j < result.length; j--) {
            if (!result[j]){
                return j;
            }
        }
        return max+1;
    }
}

有假币

题目描述:居然有假币! 现在猪肉涨了,但是农民的工资却不见涨啊,没钱怎么买猪肉啊。nowcoder这就去买猪肉,结果找来的零钱中有假币!!!可惜nowcoder 一不 小心把它混进了一堆真币里面去了。只知道假币的重量比真币的质量要轻,给你一个天平(天平两端能容纳无限个硬币),请用最快的时间把那个可恶的假币找 出来。

输入描述:1≤n≤2^30,输入0结束程序。

输出描述:最多要称几次一定能把那个假币找出来?

 


public class Main46 {


   //有假币


   public static void main(String[] args) {


       Scanner scanner=new Scanner(System.in);


       while (scanner.hasNext()){


           int n=scanner.nextInt();


           if (n==0){


               break;


           }


           int count=0;


           while (n >=2){


               n=(int) Math.ceil((double) n/3);


               count++;


           }


           System.out.println(count);


       }


   }


}


相关文章
|
6天前
|
设计模式 安全 Java
面向对象编程的精髓:Java设计模式 - 原型模式(Prototype)完全参考手册
【4月更文挑战第7天】原型模式是OOP中的创建型设计模式,用于通过复制现有实例创建新实例,尤其适用于创建成本高或依赖其他对象的情况。它包括Prototype接口、ConcretePrototype实现和Client客户端角色。优点是性能优化、避免子类化和动态增加产品族。实现包括定义原型接口、实现具体原型和客户端调用克隆方法。最佳实践涉及确保克隆正确性、选择深拷贝或浅拷贝及考虑线程安全。但需注意克隆方法管理、性能开销和循环引用等问题。在Java中,实现Cloneable接口和覆盖clone方法可实现原型模式。
|
6天前
|
安全 Java 数据安全/隐私保护
|
6天前
|
Java
04|零基础玩转面向对象编程:Java OOP
04|零基础玩转面向对象编程:Java OOP
7 0
|
6天前
|
Java
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
|
6天前
|
存储 Java 程序员
Java面向对象编程的基础概念解析
Java面向对象编程的基础概念解析
17 0
|
6天前
|
Java
Java一分钟之-类与对象:面向对象编程入门
【5月更文挑战第8天】本文为Java面向对象编程的入门指南,介绍了类与对象的基础概念、常见问题及规避策略。文章通过代码示例展示了如何定义类,包括访问修饰符的适当使用、构造器的设计以及方法的封装。同时,讨论了对象创建与使用时可能遇到的内存泄漏、空指针异常和数据不一致等问题,并提供了相应的解决建议。学习OOP需注重理论与实践相结合,不断编写和优化代码。
31 1
|
6天前
|
Java
Java从入门到精通:1.1.2深入理解Java的面向对象编程概念
Java从入门到精通:1.1.2深入理解Java的面向对象编程概念
|
6天前
|
Java Scala C#
Java 17 新特性揭秘:密封类的华丽登场,面向对象编程再进化
Java 17 新特性揭秘:密封类的华丽登场,面向对象编程再进化
28 0
|
6天前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
95 3
|
6天前
|
Java
Java面向对象编程
Java面向对象编程