题目:
5
基本的Java语言函数存储在以下哪个java包中?()
java.lang
java.io
java.net
java.util
解析:
java.lang包包含
包装类
String 类
Math 类 —— 包含函数
Class 类
Object 类
java.util 提供包括集合框架、事件模型、日期时间、等等的使用工具类;
java.io 提供通过文件系统、数据流和序列化提供系统的输入输入;
java.net 提供实时网络应用和开发的类;
java.sql 提供使用java语言访问并处理存储在数据源中的数据API;
java.awt 和 java.swing 提供了GUI开发与设计的类,awt提供了创建界面和绘制图形图像的所有类,
swing包提供了一组“轻量级”的组件,尽量让这些组件在所有平台上的工作方式相同;
java.text 提供了与自然语言无关的方式来处理文本日期、数字和消息的类和接口。
题目:
假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?()
public class A
{
public int i;
static String s;
void method1(){}
static void method2(){}
}
System.out.println(a.i);
a.method1();
A.method1();
A.method2();
解析:
静态成员和静态方法,可以直接通过类名进行调用;其他的成员和方法则需要进行实例化成对象之后,通过对象来调用。
题目:
如果一个接口Cup有个方法use(),有个类SmallCup实现接口Cup,则在类SmallCup中正确的是? ( )
void use() { …}
protected void use() { …}
public void use() { …}
以上语句都可以用在类SmallCup中
解析:
既然是实现接口,就要实现接口的所以方法,相当于重写方法,方法的重写需要满足:三同一大一小(方法名、返回值类型、形参相同;访问权限>=重写前;抛出异常<=重写前)
题目:
下面哪个选项正确创建socket连接?
Socket s = new Socket(8080);
Socket s = new Socket(“192.168.1.1”,8080)
SocketServer s = new Socket(8080);
Socket s = new SocketServer(“192.168.1.1”,8080)
解析:
参考楼下的答案做个笔记
服务器端:ServerSocket提供的实例 ServerSocket server = new ServerSocket(端口号)
客户端:Socket提供的实例 Socket client = new Socket(IP地址,端口号)
题目:
在一个基于分布式的游戏服务器系统中,不同的服务器之间,哪种通信方式是不可行的()?
管道
消息队列
高速缓存数据库
套接字
解析:
对于管道,有下面这几种类型:
①普通管道(PIPE):通常有两种限制,一是单工,即只能单向传输;二是血缘,即常用于父子进程间(或有血缘关系的进程间)。
②流管道(s_pipe):去除了上述的第一种限制,实现了双向传输。
③命名管道(name_pipe):去除了上述的第二种限制,实现了无血缘关系的不同进程间通信。
显然,要求是对于不同的服务器之间的通信,是要要求全双工形式的,而管道只能是半双工,虽然可以双向,但是同一时间只能有一个方向传输,全双工和半双工的区别可以如下图示理解:
题目:
对于文件的描述正确的是( )
文本文件是以“.txt”为后缀名的文件,其他后缀名的文件是二进制文件。
File类是Java中对文件进行读写操作的基本类。
无论文本文件还是二进制文件,读到文件末尾都会抛出EOFException异常。
Java中对于文本文件和二进制文件,都可以当作二进制文件进行操作。
解析:
A.文件分为文本文件和二进制文件,计算机只认识二进制,所以实际上都是二进制的不同解释方式。文本文件是以不同编码格式显示的字符,例如Ascii、Unicode等,window中文本文件的后缀名有".txt",".log",各种编程语言的源码文件等;二进制文件就是用文本文档打开是看不懂乱码,只要能用文本打开的文件都可以算是文本文件,只是显示的结果不是你想要的,二进制文件只有用特殊的应用才能读懂的文件,例如".png",".bmp"等,计算机中大部分的文件还是二进制文件。
B.File类是对文件整体或者文件属性操作的类,例如创建文件、删除文件、查看文件是否存在等功能,不能操作文件内容;文件内容是用IO流操作的。
C.当输入过程中意外到达文件或流的末尾时,抛出EOFException异常,正常情况下读取到文件末尾时,返回一个特殊值表示文件读取完成,例如read()返回-1表示文件读取完成。
D.上面A选项已经说了,不论是文本文件还是二进制文件,在计算机中都是以二进制形式存储的,所以都当做二进制文件读取。
题目:
关于Java中参数传递的说法,哪个是错误的?
在方法中,修改一个基础类型的参数不会影响原始参数值
在方法中,改变一个对象参数的引用不会影响到原始引用
在方法中,修改一个对象的属性会影响原始对象参数
在方法中,修改集合和Maps的元素不会影响原始集合参数
解析:
https://www.nowcoder.com/questionTerminal/72096d298bd344168441361f9c16659c
题目:
下列关于异常的说法,正确的是()
RuntimeException及其子类的异常可以不做处理
Catch段中的语句,不允许再次出现异常
在方法定义中以throws标识出的异常,在调用该方法中的方法必须处理
程序中所有的可能出现的异常必须在catch中捕获,否则将引起编译错误
屏
解析:
A
异常分为两种,一种为运行异常RuntimeException,另一种为检查异常CheckedException。
对于运行异常,编译器没有强制对其进行捕获。会把异常一直往上层抛出,直到遇到处理代码为止。常见的运行异常有:nullpointexception(空指针异常),indexoutofboundexception(越界异常)。。。。。
检查异常,所有继承自Exception并且不是运行异常的都是检查异常,在程序中需要用try catch进行捕获。常见的有IO异常和SQL异常。
题目:
下面有关JAVA异常类的描述,说法错误的是?
异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception
非RuntimeException一般是外部错误(非Error),其一般被 try{}catch语句块所捕获
Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形,Error不需要捕捉
RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等,必须被 try{}catch语句块所捕获
解析:
D
运行时异常故名思议就是程序在运行的时候出现异常,隐含的一个前提就是程序在编译时是检测不到异常的存在,作者本人也并不知道是否自己的代码中含有运行时异常,所以根本也不可能提前使用try{}catch{}捕获.
题目:
如果希望监听TCP端口9000,服务器端应该怎样创建socket?
new Socket("localhost",9000);
new ServerSocket(9000);
new Socket(9000);
new ServerSocket("localhost",9000);
解析:
答案选B。
ServerSocket(int port) 是服务端绑定port端口,调accept()监听等待客户端连接,它返回一个连接队列中的一个socket。
Socket(InetAddress address , int port)是创建客户端连接主机的socket流,其中InetAddress是用来记录主机的类,port指定端口。
题目:
3
以下代码的输出结果是?
public class B
{
public static B t1 = new B();
public static B t2 = new B();
{
System.out.println("构造块");
}
static
{
System.out.println("静态块");
}
public static void main(String[] args)
{
B t = new B();
}
}
静态块 构造块 构造块 构造块
构造块 静态块 构造块 构造块
构造块 构造块 静态块 构造块
构造块 构造块 构造块 静态块
解析:
正确答案: C
开始时JVM加载B.class,对所有的静态成员进行声明,t1 t2被初始化为默认值,为null,又因为t1 t2需要被显式初始化,所以对t1进行显式初始化,初始化代码块→构造函数(没有就是调用默认的构造函数),咦!静态代码块咋不初始化?因为在开始时已经对static部分进行了初始化,虽然只对static变量进行了初始化,但在初始化t1时也不会再执行static块了,因为JVM认为这是第二次加载类B了,所以static会在t1初始化时被忽略掉,所以直接初始化非static部分,也就是构造块部分(输出’‘构造块’’)接着构造函数(无输出)。接着对t2进行初始化过程同t1相同(输出’构造块’),此时就对所有的static变量都完成了初始化,接着就执行static块部分(输出’静态块’),接着执行,main方法,同样也,new了对象,调用构造函数输出(‘构造块’)
题目:
在Web应用程序中,( )负责将HTTP请求转换为HttpServletRequest对象
Servlet对象
HTTP服务器
Web容器
JSP网页
解析:
C
http:HTTP协议(HyperText Transfer Protocol,超文本传输协议),是用于从WWW服务器传输超文本到本地浏览器的传输协议。
servlet:是一套技术标准,内含与web应用相关的一系列接口,用于为web应用实现方式提供宏观解决方案
web容器:例如tomcat,用于接受、响应客户端的请求,负责将HTTP请求转换为HttpServletRequest对象,也就是创建servlet实例对象
jsp网页:java的服务器页面,其本质也是一个servlet,由html网页代码、Java代码、jsp标签组成,当servlet处理完数据后会转发给jsp,jsp负责显示数据
题目:
以下哪些表达式返回为真()
String a="My field1";
String b="My field1";
String c=new String("My field1");
String d=new String("My field1");
a==b
a==c
c=d
a.equals(b)
a.equals(c)
解析:
正确答案: A D E
==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等; 如果作用于引用类型的变量,则比较的是所指向的对象的地址 equals方法,注意:equals方法不能作用于基本数据类型的变量。 ①Object类中,equals方法是用来比较两个对象的引用是否相等,即是否指向同一个对象。 ②String类对equals方法进行了重写,用来比较指向的字符串对象所存储的字符串是否相等。其他的一些类诸如Double,Date,Integer等,都对equals方法进行了重写用来比较指向的对象所存储的内容是否相等
题目:
servlet周期包含哪些:
初始化
销毁
请求处理
开始
解析:
正确答案: A B C
题目:
下面有关 JAVA 异常类的描述,说法正确的有()
异常的继承结构:基类为 Throwable,Error 和 Exception 。实现 Throwable, RuntimeException 和 IOException 等继承 Exception
非 RuntimeException 一般是外部错误(不考虑Error的情况下),其可以在当前类被 try{}catch 语句块所捕获
Error 类体系描述了 Java 运行系统中的内部错误以及资源耗尽的情形,Error 不需要捕捉
RuntimeException 体系包括错误的类型转换、数组越界访问和试图访问空指针等等,必须 被 try{}catch 语句块所捕获
解析:
正确答案: A B C
D选项 错误的原因:说一个简单的例子:在我们用myeclipse或eclipse开发时
非运行时异常 总是在我们写的时候就会出错 提醒我们try catch 或throw
但是运行时异常检查不出来,只有运行时才会出错,所以也不需try catch
题目:
关于运行时常量池,下列哪个说法是正确的
运行时常量池大小受栈区大小的影响
运行时常量池大小受方法区大小的影响
存放了编译时期生成的各种字面量
存放编译时期生成的符号引用
解析:
正确答案: B C D
运行时常量池(Runtime Constant Pool)是方法区的一部分。Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池(Constant Pool Table),用于存放编译器生成的各种字面量和符号引用,这部分内容将在类加载后进入方法区的运行时常量池中存放。