JAVA软件开发笔试题
“吃口草”通过精心收集,向本站投稿了8篇JAVA软件开发笔试题,下面是小编为大家整理后的JAVA软件开发笔试题,仅供参考,欢迎大家阅读,希望可以帮助到有需要的朋友。
篇1:JAVA软件开发笔试题
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;
篇2:软件开发笔试题
软件开发笔试题
笔试“软件开发”职位:
1.ISR,APC,DPC的定义
2.windows/linux下系统创建进程的步骤
3.xtoa函数,输入是两个整数,原数字,数制,输出是字符串
4.实现内存拷贝的C函数
5.比较两个二叉树结构是否一样
6.C++中volatile关键字的'作用
7.一个程序找错误
8.根据上述错误给程序员发邮件提出改进意见
9.最喜欢的一首唐诗,原因
10.当代最崇拜的人,原因
篇3: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
篇4: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类的源码,
面试的人也知道谁都不可能在短时间内写出这个类的完整代码的,他要的是你是否有这方面的概念和意识,他最重要的还是考查你的能力,所以,你不要因为自己无法写出完整的最终结果就放弃答这道题,你要做的就是你比别人写得多,证明你比别人强,你有这方面的思想意识就可以了,毕竟别人可能连题目的意思都看不懂,什么都没写,你要敢于答这道题,即使只答了一部分,那也与那些什么都不懂的人区别出来,拉开了距离,算是矮子中的高个,机会当然就属于你了。另外,答案中的框架代码也很重要,体现了一些面向对象设计的功底,特别是其中的方法命名很专业,用的英文单词很精准,这也是能力、经验、专业性、英语水平等多个方面的体现,会给人留下很好的印象,在编程能力和其他方面条件差不多的情况下,英语好除了可以使你获得更多机会外,薪水可以高出一千元。
篇5:精选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中的集合类型的继承关系图,一目了然。
篇6:软件开发工程师笔试题
软件开发工程师笔试题
1、试分析下面的SQL语句的优劣,并用另外的方法实现,
(1) Select * from empe where e.No in (select a. No from amp a )
Select * from empe e where NOT EXISTS (Select a.No from amp a where e.NO=a.No)
(2) select * from emp e, anp a where e. No=a. No
2、用Decoole 重写下面的socl 语句
SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0020 AND ENAME LIKE ‘SMITH%’;
select count(*),sum(sal) from emp where dept_no = 0030 and ename like ‘smith%’;
select count(decode(dept_no,0020,’x',null)) d0020_count,
count(decode(dept_no,0030,’x',null)) d0030_count,
sum(decode(dept_no,0020,sal,0)) d0020_sal,
sum(decode(dept_no,0030,sal,0)) d0030_sal
from emp where ename like ‘smith%’;
3、下面哪几种SQL不好。2,4,5
(1) update 语句 (2)in语句 (3)子查询 (4)多查等值查询 (5)笛卡尔乘积
4、请造出下列哪3种命名正确 A,B,D
A、ASD B、$abc C、const D、_asd E、3_asd
5、texarea java (1)写出文件名 (2)补充代码
6、型转换
example:
public String getValue(Object a,Object b){}
当下列方法调用时将出现何种异常,如何修正
String c=new String(“aaa”);
int d =123;
my.getValue(c,d);
(1) Integer d=new Integer(123);
(2) My.getValue(c,(String)d);
7、在JSP上显示Araylist中的'元素
<%@ page contentType=”text/html; charset=GBK” %>
<%@ page import = “java.util.ArrayList”%>
<%
ArrayList al = request.getAttribute(“arraylist”);
%>
<%
for(int i=0;i {
%>
<%
}
%>
序号姓名<%=i%><%=al.get(i)%>8、解释
beam:远程接口的具体实现
Home:管理和创建远程对象
Romate:提供给用户的远程接口
9、解释Javabean与EJB的区别
10、SeSS’on bean与Entitybean区别
11、解释Commend、DAO模式,试举例说明。
Command定义
不少Command模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单选择一个命令时,然后会执行一些动作,将这些命令封装成在一个类中,然后用户(调用者)再对这个类进行操作,这就是Command模式,换句话说,本来用户(调用者)是直接调用这些命令的,如菜单上打开文档(调用者),就直接指向打开文档的代码,使用Command模式,就是在这两者之间增加一个中间者,将这种直接关系拗断,同时两者之间都隔离,基本没有关系了.
显然这样做的好处是符合封装的特性,降低耦合度,Command是将对行为进行封装的典型模式,Factory是将创建进行封装的模式,
从Command模式,我也发现设计模式一个”通病”:好象喜欢将简单的问题复杂化,
喜欢在不同类中增加第三者,当然这样做有利于代码的健壮性 可维护性 还有复用性.
如何使用
具体的Command模式代码各式各样,因为如何封装命令,不同系统,有不同的做法.下面事例是将命令封装在一个Collection的List中,任何对象一旦加入List中,实际上装入了一个封闭的黑盒中,对象的特性消失了,只有取出时,才有可能模糊的分辨出:
典型的Command模式需要有一个接口.接口中有一个统一的方法,这就是”将命令/请求封装为对象”:
程序代码:
public interface Command { public abstract void execute ( );}
//具体不同命令/请求代码是实现接口Command,下面有三个具体命令
程序代码:
public class Engineer implements Command {
public void execute( ) { //do Engineer’s command }
}
public class Programmer implements Command {
public void execute( ) { //do programmer’s command }
}
public class Politician implements Command {
public void execute( ) { //do Politician’s command }
}
按照通常做法,我们就可以直接调用这三个Command,但是使用Command模式,我们要将他们封装起来,扔到黑盒子List里去:
程序代码:
public class producer{
public static List produceRequests {
List queue = new ArrayList();
queue.add( new DomesticEngineer() );
queue.add( new Politician() );
queue.add( new Programmer() );
return queue; }
}
这三个命令进入List中后,已经失去了其外表特征,以后再取出,也可能无法分辨出谁是Engineer
谁是Programmer了,看下面如何调用Command模式:
程序代码:
public class TestCommand {
public static void main(String[] args) {
List queue = Producer.produceRequests();
for (Iterator it = queue.iterator(); it.hasNext(); )
//取出List中东东,其他特征都不能确定,只能保证一个特征是100%正确,// 他们至少是接口Command的”儿子”.所以强制转换类型为接口
Command((Command)it.next()).execute();
}
}
DAO:
由此可见,调用者基本只和接口打交道,不合具体实现交互,这也体现了一个原则,面向接口编程,这样,以后增加第四个具体命令时,就不必修改调用者TestCommand中的代码了.
篇7:银行软件开发笔试题
银行软件开发笔试题
一,单选,20道吧,涉及到软件可行性分析,需求分析,计算机基础知识,软件测试(黑白盒测试),数据结构(基本概念、线性表、链式存储等),SQL数据库的查询修改语句,ODBC,等等,具体题目记不清了。有点基础的童鞋,考前花半天时间再复习一下就可以了。没学过的,放弃吧,一星期也看不完。还有几道公务员的逻辑推理题,不是很难。
二。程序填空题,2大段C/C++的程序,每段程序挖5个空让你填,
一段是录入学生成绩和考试科目的(涉及到指针、链式存储等数据结构的知识),一段是数组排序的。10个空让填的基本上都是for语句的'循环条件啦、循环体啦,很晕,因为已设变量就有一堆,一大堆字母搞不清代表什么含义(个人编程水平不高)!~
三。大选择题,共有3篇,每篇都是一小短文,内设5道选择,类似英语的完形填空~对了,最后一篇很变态,居然是英文逻辑推理,句子都很简单,就是得好好想一下~
题型就是这样,一个小时的时间基本够用,但绝对不是太富裕,因为我那个考场30来个考生吧,没有提前交卷的。
篇8:C++和JAVA笔试题
,
2. HashMap与HashTable的区别
3. Collection与Collections的区别
4. Abstract能同时是static吗?native和synchronized呢?
【JAVA软件开发笔试题】相关文章:
4.笔试题
7.CPMP笔试题
8.笔试题继承
9.笔试题编译程序
10.HTC笔试题






文档为doc格式