• Java面向对象编程


    用命令方式运行以下代码的运行结果是()

    1. public class f{
    2. public static void main(String[] args){
    3. String foo1 = args[1];
    4. String foo2 = args[2];
    5. String foo3 = args[3];
    6. }
    7. }

    命令: java f a b c

    A. 程序编译错误

    B. a b c

    C. 程序运行错误

    D. f

    答案:C

    若有定义语句: int a=10 ; double b=3.14 ; 则表达式 'A'+a+b 值的类型是()

    A. char

    B. int

    C. double

    D. float

    答案:C

    指出下列程序运行的结果()

    1. public class Example{
    2. String str = new String("good");
    3. char[ ] ch = { 'a' , 'b' , 'c' };
    4. public static void main(String args[]){
    5. Example ex = new Example();
    6. ex.change(ex.str,ex.ch);
    7. System.out.print(ex.str + " and ");
    8. System.out.print(ex.ch);
    9. }
    10. public void change(String str,char ch[ ]){
    11. str = "test ok";
    12. ch[0] = 'g';
    13. }
    14. }

    A. good and abc

    B. good and gbc

    C. test ok and abc

    D. test ok and gbc

    答案:B

    下列说法正确的是

    A. 在类方法中可用this来调用本类的类方法

    B. 在类方法中调用本类的类方法可直接调用

    C. 在类方法中只能调用本类的类方法

    D. 在类方法中绝对不能调用实例方法

    答案:B

    可将语句块或方法设为同步使用的语句是()

    A. synchronized

    B. static

    C. abstract

    D. final

    答案:A

    已知如下类说明:

    1. public class Test{
    2. private float f=1.0f;
    3. int m=12;
    4. static int n=1;
    5. public static void main(String args[]){
    6. Test t=new Test();
    7. }
    8. }

    如下哪些使用是正确的()

    A. t.f = 1.0

    B. this.n

    C. Test.m

    D. Test.n

    答案:D

    有以下代码:

    1. class A{
    2. public A(String str){
    3. }
    4. }
    5. public class Test{
    6. public static void main(String[] args) {
    7. A classa=new A("he");
    8. A classb=new A("he");
    9. System.out.println(classa==classb);
    10. }
    11. }

    请问输出的结果是:

    A. false

    B. true

    C. 报错

    D. 以上选项都不正确

    答案:A

    以下哪项不属于java类加载过程?

    A. 生成java.lang.Class对象

    B. int类型对象成员变量赋予默认值

    C. 执行static块代码

    D. 类方法解析

    答案:B

    如果一个方法或变量是"private"访问级别,那么它的访问范围是:

    A. 在当前类,或者子类中

    B. 在当前类或者它的父类中

    C. 在当前类,或者它所有的父类中

    D. 在当前类中

    答案:D

    java中下面哪个能创建并启动线程()

    1. public class MyRunnable implements Runnable {
    2. public void run() {
    3. //some code here
    4. }
    5. }

    A. new Runnable(MyRunnable).start()

    B. new Thread(MyRunnable).run()

    C. new Thread(new MyRunnable()).start()

    D. new MyRunnable().start()

    答案:C

    不用加减乘除做加法
    题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 
    数据范围:两个数都满足-10<=n<=1000
     进阶:空间复杂度 O(1),时间复杂O(1)
     
     
    public class Solution4 {
    
        public int Add(int num1,int num2){
    
            while (num2 !=0){
    
                int a=num1 ^num2;
    
                int b=(num1 & num2)<<1;
    
                num1=a;
    
                num2=b;
    
            }
    
            return num1;
    
        }
    
    }
    三角形
    题目描述:给定三条边,请你判断一下能不能组成一个三角形。 
    输入描述:输入包含多组数据,每组数据包含三个正整数a、b、c(1≤a, b, c≤10^100)。 
    输出描述:对应每一组数据,如果它们能组成一个三角形,则输出“Yes”;否则,输出“No”。
    
     
    
    public class Main43 {
    
        public static void main(String[] args) {
    
            Scanner scanner=new Scanner(System.in);
    
            while (scanner.hasNext()){
    
                BigDecimal a=scanner.nextBigDecimal();
    
                BigDecimal b=scanner.nextBigDecimal();
    
                BigDecimal c=scanner.nextBigDecimal();
    
                if (a.add(b).compareTo(c) >0 && a.add(c).compareTo(b) >0 && b.add(c).compareTo(a) >0){
    
                    System.out.println("Yes");
    
                }else {
    
                    System.out.println("No");
    
                }
    
            }
    
        }
    
    }
    反转部分单链表
    题目描述:给定一个单链表,在链表中把第 L 个节点到第 R 个节点这一部分进行反转。
     输入描述:n 表示单链表的长度。 val 表示单链表各个节点的值。L 表示翻转区间的左端点。 R 表示翻转区间的右端点。 
    输出描述:在给定的函数中返回指定链表的头指针。
    
     
    
    public class Main44 {
    
        //首先定义单链表的节点
    
        static class Node{
    
            int val;
    
            Node next;
    
            public Node(int val){
    
                this.val=val;
    
            }
    
        }
    
        public static void main(String[] args) {
    
            Scanner scanner=new Scanner(System.in);
    
            //获取当前链表的节点个数
    
            int n=scanner.nextInt();
    
            //吃掉nextInt方法的换行符
    
            scanner.nextLine();
    
            // "1 2 3 4 5"
    
            String nodeValue=scanner.nextLine();
    
            String[] nodes=nodeValue.split(" ");
    
            //进行链表的创建
    
            Node dummyHead=new Node(-1);
    
            Node tail=dummyHead;
    
            for (int i = 0; i < n; i++) {
    
                //链表的尾插
    
                Node node=new Node(Integer.parseInt(nodes[i]));
    
                tail.next=node;
    
                tail=node;
    
            }
    
            //获取左区间和右区间的范围  "1 3"
    
            String part=scanner.nextLine();
    
            //1
    
            int left=Integer.parseInt(part.split(" ")[0]);
    
            //3
    
            int right=Integer.parseInt(part.split(" ")[1]);
    
            Node newHead=reversePartList(dummyHead.next,left,right);
    
            //进行输出处理
    
            while (newHead !=null){
    
                System.out.print(newHead.val+" ");
    
                newHead=newHead.next;
    
            }
    
        }
    
    
    
        public  static Node reversePartList(Node head,int left,int right){
    
            Node dummyHead=new Node(-1);
    
            dummyHead.next=head;
    
            Node prev=dummyHead;
    
            for (int i = 1; i < left; i++) {
    
                prev=prev.next;
    
            }
    
            //prev引用指向待反转区间的前驱节点,cur引用就是待反转区间的第一个节点
    
            Node cur=prev.next;
    
            for (int i = left; i < right; i++) {
    
                Node third=cur.next;
    
                //先把third引用从链表中删除
    
                cur.next=third.next;
    
                //再把third节点插入prev中
    
                third.next=prev.next;
    
                prev.next=third;
    
            }
    
            return dummyHead.next;
    
        }
    
    }
  • 相关阅读:
    Centos7通过yum安装docker
    【OnlyOffice】 桌面应用编辑器,版本8.0已发布,PDF表单、RTL支持、Moodle集成、本地界面主题
    算法面试点汇总
    广州蓝景分享—「JavaScript」this关键字的五个重要事项
    前端 | 前端工程化
    Windows电脑10实用小技巧
    Vue 和 jQuery 两者之间的区别是什么?
    浏览器本地储存
    Python中如何将列表中的所有项转换为float?(含代码讲解)
    较多业步骤场景通用框架
  • 原文地址:https://blog.csdn.net/weixin_64308540/article/details/132939379