day28_0526
选择题
这个老六系统把我保存的全删了,气死我了!!!
G1收集器是在jdk1.7中正式投入使用。
A、abstract和final不能同时出现,会冲突;
B、访问修饰符只能有一个,而且对象没有类型;
C、abstrac修饰的时抽象方法,不能有方法体;
.所有方法:
1. getClass()
2. hashCode()
3. equals()
4. toString()
5. clone()
6. wait()...
7. notify()
8. notifyAll()
9. finalize()
选择 D。
接口只能用public,default,abstract修饰
选择A
main()函数即主函数,是一个前台线程,前台进程是程序中必须执行完成的,而后台线程则是java中所有前台结束后结束,不管有没有完成,后台线程主要用与内存分配等方面。
前台线程和后台线程的区别和联系:
1、后台线程不会阻止进程的终止。属于某个进程的所有前台线程都终止后,该进程就会被终止。所有剩余的后台线程都会停止且不会完成。
2、可以在任何时候将前台线程修改为后台线程,方式是设置Thread.IsBackground 属性。 3、不管是前台线程还是后台线程,如果线程内出现了异常,都会导致进程的终止。 4、托管线程池中的线程都是后台线程,使用new Thread方式创建的线程默认都是前台线程。 说明:应用程序的主线程以及使用Thread构造的线程都默认为前台线程
使用Thread建立的线程默认情况下是前台线程,在进程中,只要有一个前台线程未退出,进程就不会终止。主线程就是一个前台线程。而后台线程不管线程是否结束,只要所有的前台线程都退出(包括正常退出和异常退出)后,进程就会自动终止。一般后台线程用于处理时间较短的任务,如在一个Web服务器中可以利用后台线程来处理客户端发过来的请求信息。而前台线程一般用于处理需要长时间等待的任务,如在Web服务器中的监听客户端请求的程序,或是定时对某些系统资源进行扫描的程序
选择24.
i++先取值再加,执行结束后i+1=6;
++i先加再取值,执行前i+1=7;
i--先取值再减,执行结束后i-1=6;
--i先减再取值,执行前i-1=5;
所以s=5+7+7+5=24;
instanceof 是Java语言中的一个二元运算符,作用是判断一个引用类型的变量所指向的对象是否是一个类(或接口,抽象类,父类)的实例,即它左边的对象是否是它右边的类的实例该运算符返回boolean类型的数据。
选择C。
服务器端:ServerSocket提供的实例 ServerSocket server = new ServerSocket(端口号)
客户端:Socket提供的实例 Socket client = new Socket(IP地址,端口号)
编程
反转部分单项链表
我懒得用链表了
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int[] arr=new int[n]; for(int i=0;i<n;i++){ arr[i]=sc.nextInt(); } int[] a=new int[2]; for(int i=0;i<2;i++){ a[i]=sc.nextInt(); } int L=a[0]-1; int R=a[1]-1; for (int i = 0; i <L; i++) { System.out.print(arr[i] + " "); } for (int i = R; i >=L ; i--) { System.out.print(arr[i] + " "); } for (int i =R+1; i <arr.length ; i++) { System.out.print(arr[i] + " "); } } }
猴子分桃
题解
import java.util.Scanner; import java.lang.Math; public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); while(sc.hasNextInt()){ long n=sc.nextLong(); if(n!=0){ long count=(long)Math.pow(5,n)-4; long num=(long)Math.pow(4,n)-4+n; System.out.println(count+" "+num); } } } }