JAVA部分笔试题(精选11篇)
“狗勾”投稿了11篇JAVA部分笔试题,以下是小编为大家准备的JAVA部分笔试题,仅供参考,大家一起来看看吧。
篇1:JAVA部分笔试题
JAVA部分笔试题
1:设int a=10, b=20, c=30;条件表达式a
A.5
B.10
C.20
D.30
2:对 do-whie 语言 错误 的说法是
A.可构成多重循环结构
B.循环次数不可能为 0
C.循环次数可能为 0
D.先执行后判断
3:调用函数时,若实参是一个数组名,则向函数对应的形参传送的是
A.数组的长度
B.数组的首地址
C.数组第一个元素的'值
D.整个数组元素的值
4:C语言中,″x3d″在内存中占用的字节数是
A.1
B.2
C.4
D.5
5:若定义了( )
union
{ char a[10];
short b[4][5];
long c[5];
}u;
则执行printf(″%d ″,sizeof(u));语句的输出结果是
A.10
B.20
C.40
D.70
6:在下述选项时,没有构成死循环的程序是
A.int i=100 while (1) { i=i%100+1; if (i>100) break; }
B.for (;;);
C.int k=1000; do { ++k; }while(k>=10000);
D.int s=36; while (s);--s;
7:若变量已正确定义并且指针p已经指向变量x, 则*&x相当于
A.x
B.p
C.&x
D.&*p
8:软件生命周期的瀑布模型把软件项目分为3个阶段、8个子阶段,以下哪一个是正常的开发顺序?
A.计划阶段、开发阶段、运行阶段
B.设计阶段、开发阶段、编码阶段
C.设计阶段、编码阶段、维护阶段
D.计划阶段、编码阶段、测试阶段
9:设 int x=1,a=9,b=6,c=7,d=8; 则执行语句:if(a>b) if(c>d)x=2;else x=3;后,x的值是
A.1
B.2
C.3
D.不确定
10:
若定义了char ch[]={″abcdef″},*p=ch;则执行printf″%c″,*p+4;语 句的输出结果是
若定义了char ch[]={″abcdef″},*p=ch;则执行printf″%c″,*p+4;语 句的输出结果是
A.def
B.d
C.e
D.0
11:设int x[] = {1,2,3,4,5,6},* p = x;则值为3的表达式是
A.p + = 2, * + + p
B.p + = 2, * p + +
C.p + = 3, * p
D.p + = 2, + + * p
12:若定义了int a;char b;float c;,则表达式a*b-c的类型是
A.float
B.int
C.char
D.double
13:设enum color {red,yellow=2,blue,white,black}r=white;, 执行 printf(“%d” ,r) ;后的输出结果是
A.0
B.1
C.3
D.4
篇2:java笔试题
java笔试题
1.java是从( )语言改进重新设计, a.ada b.c c.pasacal d.basic 答案:b
2.下列语句哪一个正确( ) a. java程序经编译后会产生machine code b. java程序经编译后会产生byte code c. java程序经编译后会产生dll d. 以上都不正确 答案:b
3.下列说法正确的有( ) a. class中的constructor不可省略 b. constructor必须与class同名,但方法不能与class同名 c. constructor在一个对象被new时执行 d. 一个class只能定义一个constructor 答案:c
4.提供java存取数据库能力的包是( ) a.java.sql b.java.awt c.java.lang d.java.swing 答案:a
5.下列运算符合法的是( ) a.& b. c.if d.:= 答案:a
6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,c的值是( ) a.0 b.1 c.-1 d.死循环 答案:c
7.下列哪一种叙述是正确的( ) a. abstract修饰符可修饰字段、方法和类 b. 抽象方法的body部分必须用一对大括号{ }包住 c. 声明抽象方法,大括号可有可无 d. 声明抽象方法不可写出大括号 答案:d
8.下列语句正确的是( ) a. 形式参数可被视为local variable b. 形式参数可被字段修饰符修饰 c. 形式参数为方法被调用时,真正被传递的参数 d. 形式参数不可以是对象 答案:a
9.下列哪种说法是正确的( ) a. 实例方法可直接调用超类的实例方法 b. 实例方法可直接调用超类的类方法 c. 实例方法可直接调用其他类的实例方法 d. 实例方法可直接调用本类的类方法 答案:d
二、多项选择题
1.java程序的`种类有( ) a.类(class) b.applet c.application d.servlet
2.下列说法正确的有( ) a. 环境变量可在编译source code时指定 b. 在编译程序时,所能指定的环境变量不包括class path c. javac一次可同时编译数个java源文件 d. javac.exe能指定编译结果要置于哪个目录(directory) 答案:bcd
3.下列标识符不合法的有( ) a.new b.$usdollars c.1234 d.car.taxi 答案:acd
4.下列说法错误的有( ) a. 数组是一种对象 b. 数组属于一种原生类 c. int number=[]={31,23,33,43,35,63} d. 数组的大小可以任意改变 答案:bcd
5.不能用来修饰interface的有( ) a.privateb.public c.protected d.static 答案:acd
篇3:JAVA笔试题
·short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误,
对于short s1 = 1; s1 += 1;由于 += 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。
·用最有效率的方法算出2乘以8等於几?
2 << 3,
因为将一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位即可,而位运算cpu直接支持的,效率最高,所以,2乘以8等於几的最效率的方法是2 << 3。
·请设计一个一百亿的计算器
首先要明白这道题目的考查点是什么,一是大家首先要对计算机原理的底层细节要清楚、要知道加减法的位运算原理和知道计算机中的算术运算会发生越界的情况,二是要具备一定的面向对象的设计思想。
首先,计算机中用固定数量的几个字节来存储的数值,所以计算机中能够表示的数值是有一定的范围的,为了便于讲解和理解,我们先以byte 类型的整数为例,它用1个字节进行存储,表示的最大数值范围为-128到+127。-1在内存中对应的二进制数据为11111111,如果两个-1相加,不考虑Java运算时的类型提升,运算后会产生进位,二进制结果为1,11111110,由于进位后超过了byte类型的存储空间,所以进位部分被舍弃,即最终的结果为11111110,也就是-2,这正好利用溢位的方式实现了负数的运算。-128在内存中对应的二进制数据为10000000,如果两个-128相加,不考虑Java运算时的类型提升,运算后会产生进位,二进制结果为1,00000000,由于进位后超过了byte类型的存储空间,所以进位部分被舍弃,即最终的结果为00000000,也就是0,这样的结果显然不是我们期望的,这说明计算机中的算术运算是会发生越界情况的,两个数值的运算结果不能超过计算机中的该类型的数值范围。由于Java中涉及表达式运算时的类型自动提升,我们无法用byte类型来做演示这种问题和现象的实验,大家可以用下面一个使用整数做实验的例子程序体验一下:
int a = Integer.MAX_VALUE;
int b = Integer.MAX_VALUE;
int sum = a + b;
System.out.println(“a=”+a+”,b=”+b+”,sum=”+sum);
先不考虑long类型,由于int的正数范围为2的31次方,表示的最大数值约等于2*1000*1000*1000,也就是20亿的大小,所以,要实现一个一百亿的计算器,我们得自己设计一个类可以用于表示很大的整数,并且提供了与另外一个整数进行加减乘除的功能,大概功能如下:
这个类内部有两个成员变量,一个表示符号,另一个用字节数组表示数值的二进制数
()有一个构造方法,把一个包含有多位数值的字符串转换到内部的`符号和字节数组中
()提供加减乘除的功能
public class BigInteger
{
int sign;
byte[] val;
public Biginteger(String val)
{
sign = ;
val = ;
}
public BigInteger add(BigInteger other)
{
}
public BigInteger subtract(BigInteger other)
{
}
public BigInteger multiply(BigInteger other)
{
}
public BigInteger divide(BigInteger other)
{
}
}
备注:要想写出这个类的完整代码,是非常复杂的,如果有兴趣的话,可以参看jdk中自带的java.math.BigInteger类的源码,
面试的人也知道谁都不可能在短时间内写出这个类的完整代码的,他要的是你是否有这方面的概念和意识,他最重要的还是考查你的能力,所以,你不要因为自己无法写出完整的最终结果就放弃答这道题,你要做的就是你比别人写得多,证明你比别人强,你有这方面的思想意识就可以了,毕竟别人可能连题目的意思都看不懂,什么都没写,你要敢于答这道题,即使只答了一部分,那也与那些什么都不懂的人区别出来,拉开了距离,算是矮子中的高个,机会当然就属于你了。另外,答案中的框架代码也很重要,体现了一些面向对象设计的功底,特别是其中的方法命名很专业,用的英文单词很精准,这也是能力、经验、专业性、英语水平等多个方面的体现,会给人留下很好的印象,在编程能力和其他方面条件差不多的情况下,英语好除了可以使你获得更多机会外,薪水可以高出一千元。
篇4:精选Java笔试题
1.下面哪些是Thread类的方法()
A start() B run() C exit() D getPriority()
答案:ABD
解析:看Java API docs吧:docs.oracle.com/javase/7/docs/api/,exit()是System类的方法,如System.exit(0)。
2. 下面关于java.lang.Exception类的说法正确的是()
A 继承自Throwable B Serialable CD 不记得,反正不正确
答案:A
解析:Java异常的基类为java.lang.Throwable,java.lang.Error和java.lang.Exception继承 Throwable,RuntimeException和其它的Exception等继承Exception,具体的RuntimeException继承RuntimeException。
扩展:错误和异常的区别(Error vs Exception)
1) java.lang.Error: Throwable的子类,用于标记严重错误。合理的应用程序不应该去try/catch这种错误。绝大多数的错误都是非正常的,就根本不该出现的。
java.lang.Exception: Throwable的子类,用于指示一种合理的程序想去catch的条件。即它仅仅是一种程序运行条件,而非严重错误,并且鼓励用户程序去catch它。
2) Error和RuntimeException 及其子类都是未检查的异常(unchecked exceptions),而所有其他的Exception类都是检查了的异常(checked exceptions).
checked exceptions: 通常是从一个可以恢复的程序中抛出来的,并且最好能够从这种异常中使用程序恢复。比如FileNotFoundException, ParseException等。检查了的异常发生在编译阶段,必须要使用try…catch(或者throws)否则编译不通过。
unchecked exceptions: 通常是如果一切正常的话本不该发生的异常,但是的确发生了。发生在运行期,具有不确定性,主要是由于程序的逻辑问题所引起的。比如ArrayIndexOutOfBoundException, ClassCastException等。从语言本身的角度讲,程序不该去catch这类异常,虽然能够从诸如RuntimeException这样的异常中catch并恢复,但是并不鼓励终端程序员这么做,因为完全没要必要。因为这类错误本身就是bug,应该被修复,出现此类错误时程序就应该立即停止执行。 因此,面对Errors和unchecked exceptions应该让程序自动终止执行,程序员不该做诸如try/catch这样的事情,而是应该查明原因,修改代码逻辑。
RuntimeException:RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。
处理RuntimeException的原则是:如果出现 RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。其他(IOException等等)checked异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。
3. 下面程序的运行结果是()
String str1 = “hello”;
String str2 = “he” + new String(“llo”);
System.err.println(str1 == str2);
答案:false
解析:因为str2中的llo是新申请的内存块,而==判断的是对象的地址而非值,所以不一样。如果是String str2 = str1,那么就是true了。
4. 下列说法正确的有()
A. class中的constructor不可省略
B. constructor必须与class同名,但方法不能与class同名
C. constructor在一个对象被new时执行
D.一个class只能定义一个constructor
答案:C
解析:这里可能会有误区,其实普通的类方法是可以和类名同名的,和构造方法唯一的区分就是,构造方法没有返回值。
5. 具体选项不记得,但用到的知识如下:
String []a = new String[10];
则:a[0]~a[9] = null
a.length = 10
如果是int []a = new int[10];
则:a[0]~a[9] = 0
a.length = 10
6. 下面程序的运行结果:()
复制代码
public static void main(String args[]) {
Thread t = new Thread() {
public void run() {
pong();
}
};
t.run();
System.out.print(“ping”);
}
static void pong() {
System.out.print(“pong”);
}
复制代码
A pingpong B pongping C pingpong和pongping都有可能 D 都不输出
答案:B
解析:这里考的是Thread类中start()和run()方法的区别了。start()用来启动一个线程,当调用start方法后,系统才会开启一个新的线程,进而调用run()方法来执行任务,而单独的调用run()就跟调用普通方法是一样的,已经失去线程的特性了。因此在启动一个线程的时候一定要使用start()而不是run()。
7. 下列属于关系型数据库的是()
A. Oracle B MySql C IMS D MongoDB
答案:AB
解答:IMS(Information Management System )数据库是IBM公司开发的两种数据库类型之一;
一种是关系数据库,典型代表产品:DB2;
另一种则是层次数据库,代表产品:IMS层次数据库。
非关系型数据库有MongoDB、memcachedb、Redis等。
8. GC线程是否为守护线程?()
答案:是
解析:线程分为守护线程和非守护线程(即用户线程)。
只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。
守护线程最典型的应用就是 GC (垃圾回收器)
9. volatile关键字是否能保证线程安全?()
答案:不能
解析:volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对
volatile的写操作,无法保证线程安全。例如假如线程1,线程2 在进行read,load 操作中,发现主内存中count的值都是5,那么都会加载这个最新的值,在线程1堆count进行修改之后,会write到主内存中,主内存中的count变量就会变为6;线程2由于已经进行read,load操作,在进行运算之后,也会更新主内存count的变量值为6;导致两个线程及时用volatile关键字修改之后,还是会存在并发的情况。
10. 下列说法正确的是()
A LinkedList继承自List
B AbstractSet继承自Set
C HashSet继承自AbstractSet
D WeakMap继承自HashMap
答案:AC
解析:下面是一张下载的Java中的集合类型的继承关系图,一目了然。
篇5:部分笔试题
部分笔试题
199. 现网中,通过可减少小区间正常切换次数_D_
A:增大QLENSD
B:减少QLENSD
C:减少SSLENSD
D:增大SSLENSD
200. 在locating算法中对信号强度的计算,最终考虑的是()的信号强度_B_
A:BCCH载波
B:非BCCH载波
C:TCH
D:SDCCH
201. 如果MS通话中占用的是BCCH载波,在未开跳频和功控情况下,LOCATING算法使用的.服务小区下行信号强度表达式为_B_
A:MS测到服务小区下行信号强度+BSPWRT-BSPWRB
B:MS测到服务小区下行信号强度+BSTXPWR-BSPWR +tch-bcch
C:MS测到服务小区下行信号强度+BSPWR-BSTXPWR
D:MS测到服务小区下行信号强度
202. 满足最小信号强度条件是指_B_
A:校正后的下行信号强度>=MSRXMIN OR 校正后的上行信号强度>=BSRXMIN
B:校正后的下行信号强度>=MSRXMIN AND 校正后的上行信号强度>=BSRXMIN
C:校正后的上行信号强度>=MSRXMIN OR 校正后的下行信号强度>=BSRXMIN
D:校正后的上行信号强度>=MSRXMIN AND 校正后的下行信号强度>=BSRXMIN
203. 邻区上行信号强度是通过()得到_C_
A:BTS测量
B:MS测量
C:MSPWRn-BSTXPWRn+SS_DOWNn 其中MSPWRn为MS发射功率,SS_DOWNn为校正的邻区下行信号强度 tch
D:MSPWRn-BSPWRn+SS_DOWNn 其中MSPWRn为MS发射功率,SS_DOWNn为校正的邻区下行信号强度
204. 对A,B两小区间边界的偏移量和滞后值,下面正确的是_C_
A:OFFSETA,B=-OFFSETB,A;HYSTA,B=-HYSTB,A
B:OFFSETA,B=OFFSETB,A;HYSTA,B=-HYSTB,A
C:OFFSETA,B=-OFFSETB,A;HYSTA,B=HYSTB,A
D:OFFSETA,B=OFFSETB,A;HYSTA,B=HYSTB,A
205. 已知A,B两小区采用下行K算法,小区间参数KOFFSET=0,KHYST=3,MS在A小区内通话,下行质量rxqual=6,服务小区A的信号强度为-75dBm,邻小区B的信号强度为-80dBm,如果MS能从A小区质差切换到B小区,下面哪组参数设置比较合理_B_
A:qlimdl=75,bqoffset=6
B:qlimdl=55,bqoffset=6
C:qlimdl=55,bqoffset=3
D:qlimdl=75,bqoffset=3
206. 已知MS离服务小区基站的距离大概5.5公里,为使MS在该位置会发生TA切换,下面哪组参数设置较合理_C_
A:TALIM=8,MAXTA=9
B:TALIM=10,MAXTA=10
C:TALIM=8,MAXTA=12
D:TALIM=12,MAXTA=14
207. 下面哪个无线网络特征开启,会减少切换次数_D_
A:Assignment to worse cell
B:Cell Load Sharing
C:Intra-cell Handover
D:Assignment to another cell
208. 普通小区覆盖范围为35KM,通过扩展最大覆盖范围可为_C_
A:70KM
B:100KM
C:121KM
D:140KM
209. 在一个连接状态下,locating惩罚列表最多包括()个小区_C_
A:1
B:2
C:3
D:6
210. 如果候选列表中所有小区均拥塞,那连接将保留在原来的信道上,在一定时间后,将进行新的尝试分配,这个时间间隔由参数( )来定_B_
A:TINIT
B:TALLOC
C:TURGEN
D:TALIM
211. 为使小区的locating算法为上行K算法,下面哪组参数设置正确_C_
A:MSRXSUFF=0,BSRXSUFF=150
B:MSRXSUFF=150,BSRXSUFF=150
C:MSRXSUFF=150,BSRXSUFF=0
篇6:C++和JAVA笔试题
,
2. HashMap与HashTable的区别
3. Collection与Collections的区别
4. Abstract能同时是static吗?native和synchronized呢?
篇7:关于Java程序笔试题
1、编写一个Java程序,用if-else语句判断某年份是否为闰年。
闰年特点:
①、普通年能被4整除;且不能被100整除的为闰年。(如就是闰年,19不是闰年)
②、世纪年能被400整除的是闰年。(如是闰年,19不是闰年) ③、对于数值很大的年份,既能整除3200,又能整除172800是闰年。如172800年是闰年,86400年不是闰年(因为虽然能整除3200,但不能整除172800)。
2、编写一个Java程序在屏幕上输出1!+2!+3!+??+10!的和。
3、打印出所有的 “水仙花数 ”,所谓 “水仙花数 ”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 “水仙花数 ”,因为153=1的三次方+5的三次方+3的三次方。
4、利用递归方法求5!。
5、一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
6、编写一个Java应用程序,要求如下
1)从控制台输入两个字符串;
2)重载三个方法,方法名add,分别完成字符串拼接、整数相加、浮点数相加,返回 String,并在控制台分别输出返回结果;
3)要求处理异常,输入字符串不符合要求时给出提示,不能使程序崩溃;
4)输入“esc”时退出程序,否则可以重复执行。
7、、有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
8、大整数计算器,要求从控制台输入。
(例如:100000000000000000000+0000000000000000)
9、(1)编写一个圆类Circle,该类拥有:
①一个成员变量
Radius(私有,浮点型); // 存放圆的半径;
②两个构造方法
Circle( ) // 将半径设为0
Circle(double r ) //创建Circle对象时将半径初始化为r
③ 三个成员方法
double getArea( ) //获取圆的面积
double getPerimeter( ) //获取圆的周长
void show( ) //将圆的半径、周长、面积输出到屏幕
(2)编写一个圆柱体类Cylinder,它继承于上面的Circle类。还拥有:
篇8:关于Java程序笔试题
①一个成员变量
double hight(私有,浮点型); // 圆柱体的高;
②构造方法
Cylinder (double r, double h ) //创建Circle对象时将半径初始化为r ③ 成员方法
double getVolume( ) //获取圆柱体的体积
void showVolume( ) //将圆柱体的体积输出到屏幕
编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。(20分)
篇9:Android Java笔试题
1、GC是什么? 为什么要有GC?
Gc是垃圾收集 gabage collection的意思 内存处理是编程人员最容易出现问题的地方,gc可以达到自动处理内存 回收垃圾的作用 使Java程序员不用担心内存管理问题 system.gc
2、XML包括哪些解释技术,区别是什么?
Sax dom
3、sleep和wait有什么区别?
Sleep 是线程类的方法 wait是object类的方法
Sleep 不会释放对象锁 到时自动恢复 wait会释放对象锁 进入等待此对象的等待锁定池 发出notify方法后 才进入等待锁定池准备对象锁的获取进入运行状态
4、error和exception有什么区别?
error表示恢复不是不可能但是及其困难的一种严重问题 不可能指望程序处理这样的问题
Exception是一种设计或实现的问题 表示只要程序运行正常就不会出现的问题
篇10:Android Java笔试题
1、谈谈final,finally,finalize的区别?
Final是修饰符 表示类不能被继承 方法不能被重载,重写 变量不能被修改等
Finally是异常处理时的一个无论如何都会被执行的程序块
Finaliz方法是垃圾收集器删除对象之前对这个对象调用的进行清理工作的方法
2、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
可以
3、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
值传递
作用域public,private,protected,以及不写时的区别
用最有效率的方法算出2乘以8等於几 2《3
运行时异常与一般异常有何异
编译器要求声明并抛出一般异常 但不必声明抛出运行时异常 由系统处理
垃圾回收的优点和原理。并考虑2种回收机制
回收机制有分代复制垃圾回收 标记垃圾回收 和增量垃圾回收
4、描述一下JVM加载class文件的原理机制?
是由classloader和他的子类来实现的 他在运行时查找和装入类文件的类
篇11:Android Java笔试题
1、是否可以从一个static方法内部发出对非static方法的调用?
不能
2、什么是java序列化,如何实现java序列化?
序列化是一种处理对象流的机制 是为了解决在对对象流进行读写操作时所引发的问题
使用serializeae关键字 使用一个输出流构造一个对象流流对象 然后使用对象流对象的writeObject就可以将参数为obj的对象写出
3、Anonymous Inner Class(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
可以
4、ArrayList和Vector的区别,HashMap和Hashtable的区别?
Vector线程安全 增长时涨一倍 arraylist涨一半
Hashtable线程安全 hashmap可以用空值作为键值
5、请写一段程序实现冒泡排序法。
Public static maopao(int data){
Int temp;
For(int i=0;i
For(int j=i+1;j
If(data[i]
Temp = data[i];
Data[i] = data[j];
Data[j] = temp;
}
}
Return data;
}