1、有关java实例变量,局部变量,类变量和final变量的说法,正确的是?
实例变量指的是类中定义的变量,即成员变量,如果没有初始化,会有默认值。
类变量指的是用static修饰的属性
final变量指的是用final 修饰的变量
2、关于 Socket 通信编程,描述正确的是:( )
服务器端通过new ServerSocket()创建TCP连接对象
服务器端通过TCP连接对象调用accept()方法创建通信的Socket对象
客户端通过new Socket()方法创建通信的Socket对象
3、访问权限控制从最大权限到最小权限依次为:public、 包访问权限、protected和private 。( )
错误
解析:应该是:public>protected>默认(包访问权限)>private,因为protected除了可以被同一包访问,还可以被包外的子类所访问
4、socket编程中,哪些socket的操作是不属于服务端操作的()?
accept
listen
close
5、类方法中可以直接调用对象变量。( )
错误
解析:静态方法中不能调用对象的变量,因为静态方法在类加载时就初始化,对象变量需要在新建对象后才能使用
6、字符界面下接受用户从键盘输入,需要import的包是:( )
java.io包
7、由3 个“1”和 5 个“0”组成的 8 位二进制补码,能表示的最小整数()
-125
既然求最小整数,那肯定先想到负数,则最高位(符号位)一定为1,原码中肯定是1所在的位数越高,值越小,而补码是由原码取反加1得到的,则在补码中1所在的位数一定要越低,即补码为1000 0011;由补码求得原码:1111 1101=-(64+32+16+8+4+1)=-125;
8、ServletConfig接口默认是哪里实现的?
GenericServlet
9、从内存实现或者反射的角度来看,关于继承的说法正确的是()。注:此处的继承不代表能调用
子类将继承父类的所有的数据域和方法
10、关于java集合下列说法正确的有哪些()
Collection接口是List接口和Set接口的父接口,通常情况下不被直接使用
11、true、false、null、sizeof、goto、synchronized 哪些是Java关键字?
goto
synchronized
12、Hashtable 和 HashMap 的区别是:
HashMap 是内部基于哈希表实现,该类继承AbstractMap,实现Map接口
Hashtable 线程安全的,而 HashMap 是线程不安全的
Properties 类 继承了 Hashtable 类,而 Hashtable 类则继承Dictionary 类
HashMap允许将 null 作为一个 entry 的 key 或者 value,而 Hashtable 不允许。
13、创建数组的正确语句?( )
float f[][] = new float[6][6];
float []f[] = new float[6][6];
float [][]f = new float[6][6];
float [][]f = new float[6][];
14、关键字super的作用是?
用来访问父类被隐藏的非私有成员变量
用来调用父类中被重写的方法
用来调用父类的构造函数
15、下列属于容器的组件有()
JPanel
16、在为传统面向对象语言的程序做单元测试的时候,经常用到mock对象。Mock对象通过反射数。请问反射最大程度破坏了面向对象的以下哪个特性?
封装
17、下列正确的 Java 语言标识符是( )
Sky
$Computer
NULL
18、某程序要求每次输入只能是正整数,并且每次输入的数值要求必须是100的倍数且小于等于500,则下列哪个是正确的无效等价类( )
(500,+∞)、任意大于0小于500的非100倍数的整数;
19、JDK中提供的java、javac、jar等开发工具也是用Java编写的。
对
20、是面向对象的基本原则的是?
单一职责原则(Single-Resposibility Principle)
开放封闭原则(Open-Closed principle)
依赖倒置原则(Dependecy-Inversion Principle)
接口隔离原则(Interface-Segregation Principle)
21、URL u =new URL("http://www.123.com");。如果www.123.com不存在,则返回______。
http://www.123.com
22、描述正确? ()
echo $$返回登录shell的PID和echo $? 返回上一个命令的状态
**23、在 myjsp.jsp 中,下面的代码说法正确的是: ( ) **
<%@ page language="java" import="java.util.*" errorPage="error.jsp" isErrorPage="false" %>
该页面发生异常会转向 error.jsp
存在 errorPage 属性时,isErrorPage 是默认为 false
error.jsp 页面一定要有isErrorPage 属性且值为 true
24、哪些接口直接继承自Collection接口()
List
Set
25、下列说法正确的是()?
一个进程是一个独立的运行环境,可以被看做一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的单一进程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源
ThreadLocal用于创建线程的本地变量,该变量是线程之间不共享的
26、下列说法正确的有( )
在类方法中调用本类的类方法时可直接调用
27、下面的Java赋值语句哪些是有正确的 ()
int i =1000;
char s = ‘\u0639’
Object o = ‘f’;
String s = "hello,world\0";
28、关于下面一段代码,说法正确的是: ()
public class Test {
private synchronized void a() {
}
private void b() {
synchronized (this) {
}
}
private synchronized static void c() {
}
private void d() {
synchronized (Test.class) {
}
}
}
同一个对象,分别调用方法a和b,锁住的是同一个对象
同一个对象,分别调用方法b和c,锁住的不是同一个对象
同一个对象,分别调用方法a、b、c,锁住的不是同一个对象
29、基本的Java语言函数存储在以下哪个java包中?()
java.lang
解析:
java.lang包包含
包装类
String 类
Math 类 —— 包含函数
Class 类
Object 类
1.lang包主要是集合类、时间处理模式、日期时间工具等各类常用工具包。
2.util包 包括基本Object类、Class类、String类、基本类型的包装类、基本的数学类等最基本的类。
30、下列关于修饰符混用的说法,正确的是( )
abstract不能与final并列修饰同一个类
abstract 类中不建议有private的成员
abstract 方法必须在abstract类或接口中
31、对于同一类中的两个方法 , 在判断它们是不是重载方法时 , 肯定考虑( )
参数个数
参数类型
参数顺序
解析:
重载:类中可以创建多个方法,它们具有相同的名字,但具 有不同的参数和不同的定义。调用方法时通过传递 给它们的不同参数个数和参数类型 给它们的不同参数个数和参数类型 给它们的不同参数个数和参数类型 来决定具体使用哪个方法 , 这就是多态性。
重写 Overriding 是父类与子类之间多态性的一种表现, 在子类中定义某方法与其父类有相同的名称和参数。
重载 Overloading 是一个类中多态性 的一种表现。
重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同 也可以不相同。 无法以 返回型别 作为重载函数的区分标准。而且编译的时候只有返回值不同,会报错。及使不报错,运行时无法区分调用哪个方法
32、对于子类的构造函数说明,叙述中正确的是( )。
子类不能继承父类的无参构造函数。
子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句。
在创建子类的对象时,若不含带参构造函数,将先执行父类的无参构造函数,然后再执行自己的无参构造函数。
33、jdk1.8版本之前的前提下,接口和抽象类描述正确的有( )
接口没有构造函数
抽象类不允许多继承
34、final、finally和finalize的区别中,说法正确的有?
final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
35、以下哪些方法可以取到http请求中的cookie值()?
request.getHeader
request.getCookies
36、说法正确的是()
在类方法中调用本类的类方法时可直接调用
解析:
先要理解什么是类的方法,所谓类的方法就是指类中用static 修饰的方法(非static 为实例方法),比如main 方法,那么可以以main 方法为例,可直接调用其他类方法,必须通过实例调用实例方法,this 关键字不是这么用的
37、关于final说法正确的是? ( )
final类的方法能否被同一个包的类访问不是由final决定
解析:
final变量,如果是基本数据类型,则其数值一旦初始化后就不能被改变。如果是引用类型的变量,则对其初始化后,便不能再指向另一个对象,但是其里面的值是可以改变的。引用变量所指向的对象中的内容是可以改变的。
38、关于hibernate核心接口说明正确的是
Configuration 接口:配置Hibernate,根据其启动hibernate,创建SessionFactory 对象
Query 和Criteria 接口:执行数据库的查询
Transaction 接口:管理事务
39、正确的是( )。
Frame 中可以设置Panel。
Applet 中可以包含按钮。
Dialog 中不可以设置菜单条。
40、变量a是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF;变量b是一个64位有符号的整数,初始值用16进制表示为:0x8000000000000000。则a+b的结果用10进制表示为多少?
-1
解析:
(1)a+b的16进制表示为:OxFFFFFFFFFFFFFFF(16位F),转为2进制为111……111(64位1,每个F->4位2)。
(2)有符号数:是针对二进制来讲的。用最高位作为符号位,“0”代表“+”,“1”代表“-”。所以a+b的结果是一个负数。
(3)计算机中负数是以补码的形式保存的,将补码转换成原码的计算方式如下:
①. 对于正数,原码与补码相同。
②.对于负数,将补码除符号位之外,按位取反,末位加1,即得到原码。
(4)a + b = 111……111(64位1)
取反:100……000(1位1,后面63位0)
加一:100……00(中间62位0)
10进制:-1。
41、java程序内存泄露的最直接表现是( )
程序抛内存控制的Exception
42、哪些是合法的 Java 标识符?( )
FirstJavaApplet
First_Applet
解析:
Java标识符:
1、标识符由26个英文字符大小写(a~z,A~Z)、数字(0~9)、下划线(_)和美元符号($)组成;
2、不能以数字开头,不能是关键字;
3、严格区分大小写;
4、标识符的可以为任意长度;
43、关于ThreadLocal类 说法正确的是
ThreadLocal是采用哈希表的方式来为每个线程都提供一个变量的副本
ThreadLocal保证各个线程间数据安全,每个线程的数据不会被另外线程访问和破坏
44、下列容器中,哪些容器按 key 查找的复杂度为 O(log(n)) ()
std::multimap
std::map
45、关于身份证号,正确的正则表达式为( )
isIDCard=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
isIDCard=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
46、关于Java语言的内存回收机制,最正确的一项是
内存回收线程负责释放无用内存
解析:
java虚拟机中的垃圾回收机制是一个类,当该对象没有更多的应用指向它时,就会被垃圾回收器给回收,从而释放资源。该机制不可以程序员手动调用去回收某个对象,系统自动回去调用,当然程序员可以建议垃圾回收器回收某个对象。所以java中无需程序员手动释放内存,系统自动释放无用内存。
47、默认RMI采用的是什么通信协议?
TCP/IP
解析:
RMI采用的是TCP/IP协议
RMI采用的是TCP/IP协议
RMI采用的是TCP/IP协议
48、一般情况下,选项是关系数据模型与对象模型之间匹配关系?
表对应类
记录对应对象
表的字段对应类的属性
49、J2EE中常用的名词解释正确的是?
EJB容器:Enterprise java bean 容器
JMS:JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。
JAF:JAVA安全认证框架。提供一些安全控制方面的框架。
50、说法正确的是()
EJB容器发生错误,persistent方式下JMS容器仍然会将消息发送
51、有关maven和ant的描述,描述正确的是?
Ant 没有正式的约定如一个一般项目的目录结构,你必须明确的告诉 Ant 哪里去找源代码
Maven 拥有约定,因为你遵循了约定,它已经知道你的源代码在哪里
Ant构建文件默认命名为build.xml,Maven默认构建文件为pom.xml
52、关于Java描述正确的有( )
native关键字表名修饰的方法是由其它非Java语言编写的
53、有关struts1和struts2的区别,描述正确的是?
Struts1要求Action类继承一个抽象基类。Struts 2 Action类可以实现一个Action接口
Struts1 Action 依赖于Servlet API,Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试
Struts1 整合了JSTL,Struts2可以使用JSTL,但是也支持OGNL
54、如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是()注:一个元素进栈后可以马上出栈,不用等全部进栈
e2,e4,e3,e1
e2,e3,e4,e1
解析:
栈的规则:先进后出
例如进栈序列为:1,2,3,4
全部进栈完成再出栈的序列则为:4,3,2,1
注:一个元素进栈后可以马上出栈,不用等全部进栈
例如:2这个元素一进就想出了,后面的3,4正常进栈再出栈。
那么出栈顺序就是:2,4,3,1 (1是第一个进的,进的时候也没有立刻出去,所以被压在栈底,最后才能出去)
例如:2这个元素一进就想出了,后面的3一进也想立刻想出去了,后面的4跟着进栈
那么出栈顺序就是:2,3,4,1 (2,3都进了立刻出 所以这时4压着的是1,所以出栈顺序是4在前面)
55、程序中常采用变量表示数据,变量具有名、地址、值、作用域、生存期等属性。关于变量的叙述,()是正确的。
根据作用域规则,在函数中定义的变量只能在函数中引用
在函数中定义的变量,其生存期为整个程序执行期间
在函数中定义的变量不能与其所在函数的形参同名
56、在你面前有一个n阶的楼梯,你一步只能上1阶或2阶。请问,当N=11时,你可以采用多少种不同的方式爬完这个楼梯();当N=9时呢?
144
55
57、java8中,忽略内部接口的情况,能用来修饰interface里的方法的有( )
public
static
58、在Java语言中,关于字符集编码(Character set encoding)和国际化(i18n)的问题,哪些是正确的?
Java的char类型,通常以UTF-16 Big Endian的方式保存一个字符。
实现国际化应用常用的手段是利用ResourceBundle类
59、哪些赋值语句是正确的()
long test=012
float f=-412
double d=0x12345678
60、Java是一门支持反射的语言,基于反射为Java提供了丰富的动态性支持,下面关于Java反射的描述,哪些是正确的:( )
通过反射可以动态的实现一个接口,形成一个新的类,并可以用这个类创建对象,调用对象方法
通过反射,可以突破Java语言提供的对象成员、类成员的保护机制,访问一般方式不能访问的成员
Java反射机制提供了字节码修改的技术,可以动态的修剪一个类
61、叙述正确的是
实例方法可直接调用本类的实例方法
62、关于 Socket 通信编程,描述正确的是:( )
服务器端通过new ServerSocket()创建TCP连接对象
服务器端通过TCP连接对象调用accept()方法创建通信的Socket对象
客户端通过new Socket()方法创建通信的Socket对象
63、说法正确的是()
在类方法中调用本类的类方法时可直接调用
64、属于HttpServletResponse接口完成的功能?
设置HTTP头标
设置cookie
输出返回数据
65、关于java编译和运行命令叙述正确的是? ( )
运行“java Scut”
运行“javac Scut.java”的输出文件是Scut.class
java这个命令的运行对象是Scut.class
66、在Java中,说法正确的有( )
数组是一种对象
67、java中关于继承的描述正确的是()
一个子类只能继承一个父类
继承具有传递性
父类一般具有通用性,子类更具体
解析:
子类不可以继承父类的构造方法,只可以调用父类的构造方法。子类中所有的构造函数都会默认访问父类中的空参数构造函数,这是因为子类的构造函数内第一行都有默认的super()语句。super()表示子类在初始化时调用父类的空参数的构造函数来完成初始化。一个类都会有默认的空参数的构造函数,若指定了带参构造函数,那么默认的空参数的构造函数,就不存在了。这时如果子类的构造函数有默认的super()语句,那么就会出现错误,因为父类中没有空参数的构造函数。因此,在子类中默认super()语句,在父类中无对应的构造函数,必须在子类的构造函数中通过this或super(参数)指定要访问的父类中的构造函数。
68、说法正确的是?()
一个线程调用yield方法,可以使具有相同优先级线程获得处理器
在Java中,高优先级的可运行的线程会抢占低优先级线程的资源
69、类型为Final类型的为()
StringBuffer
String
70、一个以". java"为后缀的源文件,说法是正确的?
只能有一个与文件名相同的类,可以包含其他类
71、 try 和 catch 不需要一定共存😋,try是尝试对其中代码捕获异常,catch是捕获异常并且可以处理异常。。你可以 try 来搜寻异常,不去捕获。也就是不去catch 这是可以的。。至于提示加finally,finally的意思是,其中的代码一定会执行,也就是说,如果try 其中的代码产生了异常,如果有catch 则会直接跳转到catch部分,如果没有catch 会跳转到‘}’后面的代码,这样,以上方法就没有一个确定的返回值,所以要加finally 作为方法出异常以后的返回的结果
72、如果一个list初始化为{5,3,1},执行以下代码后,其结果为()?
nums.add(6);
nums.add(0,4);
nums.remove(1);
[4, 3, 1, 6]
解析:
初始化为{5,3,1}
nums.add(6)后list为{5,3,1,6}
nums.add(0,4)是在0号索引上添加数字4得到list为{4,5,3,1,6}
nums.remove(1)是将1号索引上的5进行remove得到list为{4,3,1,6}
73、属于Swing的顶层容器?()
JApplet
JDialog
JFrame
74、Math.floor(-8.5)=( )
(double)-9.0
解析:
Math.floor() 表示向下取整,返回double类型 (floor---地板)
Math.ceil() 表示向上取整,返回double类型 (ceil---天花板)
Math.round() 四舍五入,返回int类型
75、有关struts1和struts2的区别,描述正确的是?
Struts1要求Action类继承一个抽象基类。Struts 2 Action类可以实现一个Action接口
Struts1 Action 依赖于Servlet API,Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试
Struts1 整合了JSTL,Struts2可以使用JSTL,但是也支持OGNL
76、如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是()
注:一个元素进栈后可以马上出栈,不用等全部进栈
e2,e4,e3,e1
e2,e3,e4,e1
解析:
栈的规则:先进后出
例如进栈序列为:1,2,3,4
全部进栈完成再出栈的序列则为:4,3,2,1
注:一个元素进栈后可以马上出栈,不用等全部进栈
例如:2这个元素一进就想出了,后面的3,4正常进栈再出栈。
那么出栈顺序就是:2,4,3,1 (1是第一个进的,进的时候也没有立刻出去,所以被压在栈底,最后才能出去)
例如:2这个元素一进就想出了,后面的3一进也想立刻想出去了,后面的4跟着进栈
那么出栈顺序就是:2,3,4,1 (2,3都进了立刻出 所以这时4压着的是1,所以出栈顺序是4在前面)
77、可以正确获取结果集的有
Statement sta=con.createStatement();<br>ResultSet rst=sta.executeQuery(“select * from book”);
ResultSet rst=pst.executeQuery(“select * from book”);
78、关于 Socket 通信编程,描述正确的是:( )
服务器端通过new ServerSocket()创建TCP连接对象
服务器端通过TCP连接对象调用accept()方法创建通信的Socket对象
客户端通过new Socket()方法创建通信的Socket对象
79、Math.round(11.5) 等于多少 (). Math.round(-11.5) 等于多少 ( ).
12 ,-11
80、对于非运行时异常,程序中一般可不做处理,由java虚拟机自动进行处理。
错误
解析:
Java异常都继承自类Throwable,Throwable子类有Error和Exception,其中Exception又分为运行时异常和编译时异常。编译时异常是未雨绸缪性质的异常,是防范,需要显示处理。运行时异常是程序员问题造成,并不强制进行显示处理。
81、是java concurrent包下的4个类,选出差别最大的一个
Future
82、说法正确的是()
EJB容器发生错误,persistent方式下JMS容器仍然会将消息发送
83、语句正确的是:
形式参数可被视为local variable
84、java中提供了哪两种用于多态的机制
通过子类对父类方法的覆盖实现多态
利用重载来实现多态.即在同一个类中定义多个同名的不同方法来实现多态。
85、关于Java的一些概念,描述是正确的:( )
通过try … catch … finally语句,finally中的语句部分无论发生什么异常都会得到执行
Java通过synchronized进行访问的同步,synchronized作用非静态成员方法和静态成员方法上同步的目标是不同的
86、哪些操作会使线程释放锁资源?
sleep()
wait()
解析:
1.sleep()方法
在指定时间内让当前正在执行的线程暂停执行,但不会释放“锁标志”。不推荐使用。
sleep()使当前线程进入阻塞状态,在指定时间内不会执行。
2.wait()方法
在其他线程调用对象的notify或notifyAll方法前,导致当前线程等待。线程会释放掉它所占有的“锁标志”,从而使别的线程有机会抢占该锁。
当前线程必须拥有当前对象锁。如果当前线程不是此锁的拥有者,会抛出IllegalMonitorStateException异常。
唤醒当前对象锁的等待线程使用notify或notifyAll方法,也必须拥有相同的对象锁,否则也会抛出IllegalMonitorStateException异常。
waite()和notify()必须在synchronized函数或synchronized block中进行调用。如果在non-synchronized函数或non-synchronized block中进行调用,虽然能编译通过,但在运行时会发生IllegalMonitorStateException的异常。
3.yield方法
暂停当前正在执行的线程对象。
yield()只是使当前线程重新回到可执行状态,所以执行yield()的线程有可能在进入到可执行状态后马上又被执行。
yield()只能使同优先级或更高优先级的线程有执行的机会。
4.join方法
等待该线程终止。
等待调用join方法的线程结束,再继续执行。如:t.join();//主要用于等待t线程运行结束,若无此句,main则会执行完毕,导致结果不可预测。