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);
}
}
加油鸭~