day30_0528
选择题
①无论如何,Integer与new Integer不会相等。不会经历拆箱过程,
②两个都是非new出来的Integer,如果数在-128到127之间,则是true,否则为false java在编译Integer i2 = 128的时候,被翻译成-> Integer i2 = Integer.valueOf(128);而valueOf()函数会对-128到127之间的数进行缓存
③两个都是new出来的,都为false
④int和integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比
Method[] getDeclaredMethods() 返回Method对象的一个数组,这些对象反映此Class对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。
x是静态成员变量,所以可以理解为t1,t2调用的都是同一个x 。
ABD不是原子性操作,例如想x++,先获取x的值,自增一,然后再把值赋给x,三步,中间任何一步执行时都可能被其他线程访问或者修改。所以需要同步。
通过封装,可以实现对属性的数据访问限制,同时增加了程序的可维护性。
由于取值方法和赋值方法隐藏了实现的变更,因此并不会影响读取或修改该属性的类,避免了大规模的修改,程序的可维护性增强。
编程
最难的问题
import java.util.Scanner; /** * @editor biubiubiu */ public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ String str=sc.nextLine(); for (int i = 0; i <str.length() ; i++) { if (str.charAt(i)>='A'&&str.charAt(i)<='Z'){ if(str.charAt(i)>'E'){ System.out.print((char)(((int)str.charAt(i))-5)); }else { char c=(char)(((int)str.charAt(i))+21); System.out.print(c); } }else { System.out.print(str.charAt(i)); } } System.out.println(); } } }
因子的个数
输入的数是质数的话输出一定是1;
因子重复出现也只算1个;
import java.util.Scanner; import java.lang.Math; public class Main{ public static void main(String []agrs) { Scanner sc = new Scanner(System.in); while (sc.hasNext()){ int n=sc.nextInt(); if(prime(n)){ System.out.println("1"); }else { int count=0; for (int i = 2; i <=Math.sqrt(n); i++) { if(n%i==0){ while (n%i==0){ n/=i; } count++; } } if(n!=1){ count++; } System.out.println(count); } } } public static boolean prime(int num){ for (int i =2; i <= Math.sqrt(num); i++) { if(num%i==0){ return false; } } return true; } }