错题整理day09

1、看输出()

public class Test {
    public static void main(String[] args) {
        String x="fmn";
        x.toUpperCase();
        String y=x.replace('f','F');
        y=y+"wxy";
        System.out.println(y);
    }
}

Fmnwxy
· toUpperCase()方法会产生一个新的对象,所以需要接收

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

A 所有类的实例和数组都是在堆上分配内存的
B 对象所占的堆内存是由自动内存管理系统回收
C 堆内存由存活和死亡的对象,空闲碎片区组成
D 数组是分配在栈中的

3、四种数组拷贝方法

A for循环逐一复制
B System.arraycopy(效率最高)
C Arrays.copyOf
D 使用clone方法

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

A 当一个优先级高的线程进入就绪状态时
B 抛出一个异常时
C 当该线程调用sleep()方法时
D 当创建一个新线程时

5、看输出()

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

输出testMethod
· testMethod()方法是静态的,不依赖对象,所以可以正常调用。

6、看输出

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

true
true
· int类型与Integer类型比较,Integer会进行自动拆箱,其value值与int值比较,所以只要值相等就相等

7、末尾0的个数

题目:输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2
方法一:思路:就看其分解后有几个5,5*2 = 10,就会得到一个0;阶乘分解2的个数一定比5多,所以求5的个数就好了

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int res = 0;
        for(int i = n; i >= 5; i--) {
            int tmp = i;
            while(tmp % 5 == 0) {
                res++;
                tmp /= 5;
            }
        }
        System.out.println(res);
    }
}

方法二:算阶乘,模10

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println(count(n));
    }
    public static int count(int n){
        int count = 0;
        int ret = n;
        while(n>1){
            ret = (ret * --n);
        }
        System.out.println(ret);
        while(ret%10 == 0){
            count++;
            ret/=10;
        }
        return count;
    }
}

8、数字颠倒

利用字符串

import java.util.*;
public class Test{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int tmp = n;
        String s = new String();
        while(tmp>0){
            s += String.valueOf(tmp%10);
            tmp /= 10;
        }
        System.out.println(s);
    }
}

加油鸭~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值