如果希望监听TCP端口9000,服务器端应该怎样创建socket?A new Socket("localhost",9000);B new ServerSocket(9000);C new Socket(9000);D new ServerSocket("localhost",9000);
ServerSocket(int port) 是服务端绑定port端口,调accept()监听等待客户端连接,它返回一个连接队列中的一个socket。
Socket(InetAddress address , int port)是创建客户端连接主机的socket流,其中InetAddress是用来记录主机的类,port指定端口。
socket和servletSocket的交互如下图所示:
jre 判断程序是否执行结束的标准是()A 所有的前台线程执行完毕B 所有的后台线程执行完毕C 所有的线程执行完毕D 和以上都无关
后台线程:指为其他线程提供服务的线程,也称为守护线程。JVM的垃圾回收线程就是一个后台线程。 前台线程:是指接受后台线程服务的线程,其实前台后台线程是联系在一起,就像傀儡和幕后操纵者一样的关系。傀儡是前台线程、幕后操纵者是后台线程。由前台线程创建的线程默认也是前台线程。可以通过isDaemon()和setDaemon()方法来判断和设置一个线程是否为后台线程。
main()函数即主函数,是一个前台线程,前台进程是程序中必须执行完成的,而后台线程则是java中所有前台结束后结束,不管有没有完成,后台线程主要用与内存分配等方面。
前台线程和后台线程的区别和联系:
2、可以在任何时候将前台线程修改为后台线程,方式是设置Thread.IsBackground 属性。
3、不管是前台线程还是后台线程,如果线程内出现了异常,都会导致进程的终止。
4、托管线程池中的线程都是后台线程,使用new Thread方式创建的线程默认都是前台线程。
说明:
应用程序的主线程以及使用Thread构造的线程都默认为前台线程
使用Thread建立的线程默认情况下是前台线程,在进程中,只要有一个前台线程未退出,进程就不会终止。主线程就是一个前台线程。而后台线程不管线程是否结束,只要所有的前台线程都退出(包括正常退出和异常退出)后,进程就会自动终止。一般后台线程用于处理时间较短的任务,如在一个Web服务器中可以利用后台线程来处理客户端发过来的请求信息。而前台线程一般用于处理需要长时间等待的任务,如在Web服务器中的监听客户端请求的程序,或是定时对某些系统资源进行扫描的程序
下列哪项不属于jdk1.6垃圾收集器?A Serial收集器B parNew收集器C CMS收集器D G1收集器
![](https://img-blog.csdnimg.cn/20210511212955363.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NjIxMzc2,size_16,color_FFFFFF,t_70)
instanceof运算符能够用来判断一个对象是否为:A 一个类的实例B 一个实现指定接口的类的实例C 全部正确D 一个子类的实例
对于java类型变量char c,short s,float f,double d,表达式c*s+f+d的结果类型为()A floatB charC shortD double
下图表示了类型自动转换的规则:
![](https://img-blog.csdnimg.cn/2021051121253332.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NjIxMzc2,size_16,color_FFFFFF,t_70)
import java.util.Scanner;
/**
* Created by JiaLe on 2021/4/29 16:02
*/
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()) {
int n = scanner.nextInt();
count(n);
}
scanner.close();
}
public static void count(int n) {
int count = 0;
for(int i = 1; i <= n; i++) {
if(isPrefect(i)) {
count++;
}
}
System.out.println(count);;
}
public static boolean isPrefect(int n) {
boolean flag = false;
int sum = 0;
for(int i = 1; i <= n / 2; i++) {
if(n % i == 0) {
sum += i;
}
}
if(sum == n) {
flag = true;
} else {
}
return flag;
}
}