java笔试试题一及答案.docx
- 文档编号:10155423
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:14
- 大小:21.95KB
java笔试试题一及答案.docx
《java笔试试题一及答案.docx》由会员分享,可在线阅读,更多相关《java笔试试题一及答案.docx(14页珍藏版)》请在冰点文库上搜索。
java笔试试题一及答案
JAVA笔试试题
(一)
一,选择题:
1,设置JavaBean属性的基本动作为:
(B)
A,jsp:
include:
B,jsp:
useBean:
C,jsp:
setProperty:
D,jsp:
getProperty:
2,把高级语言写的源程序变为目标程序要经过C。
A..汇编B.编辑C.编译D.解释
对于一个大型的软件项目,由于项目的复杂性,需要进行一系列的估算处理。
主要按3和类推手段进行。
估算的方法分为三类,其中从项目的整体出发,进行4的方法称为自顶向下估算法。
而把待开发的软件项目与过去已完成的软件项目做类比,区分出类似部分和不同部分分别处理的方法称为5估算法。
3,A类推B类比C分解D综合
4,A类推B类比C分解D综合
5,A差别B自顶而下C自底而上D专家判定技术
与IP为192.168.0.251的计算机上的服务器程序的6666端口进行Socket通讯。
并发送字符串”HelloJava”。
超时时间定义为30s。
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;
import.Socket;
import.UnknownHostException;
/**
*Test类,包含入口main方法。
*@authorPengPanYaShi
*/
6publicclassTest
{
/**
*待发送字符串。
*/
privateStringm_strChr;
/**
*Socket.
*/
privateSocketm_sSocket;
/**
*服务器IP地址。
*/
privateStringm_strAddress;
/**
*服务器端口。
*/
privateintm_iPort;
publicTest()
{
this.m_strAddress="192.168.0.251";
this.m_iPort=6666;
}
publicTest(Stringstr)
{
this.m_strChr=str;
this.m_strAddress="192.168.0.251";
this.m_iPort=6666;
}
publicvoidconnect()throwsUnknownHostException,IOException
{
this.m_sSocket=7;
this.m_sSocket.setSoTimeout(30000);
}
publicvoidsendData()throwsIOException
{
this.m_sSocket.8.9;
}
publicvoidclose()throwsIOException
{
this.m_sSocket.close();
}
/**
*main方法。
*@paramargs
*/
publicstaticvoidmain(String[]args)
{
Testtest=10;
try
{
test.connect();
test.sendData();
test.close();
}
catch(Exceptione)
{
System.out.println("error");
}
}
}
6,ApublicBprivateCprotectedDfinally
7,AnewSocket(this.m_iPort,this.m_strAddress)
BnewSocket(this.m_strAddress,this.m_iPort)
CnewSocket(this.m_iPort,this.m_strAddress).connect()
DnewSocket(this.m_strAddress,this.m_iPort).connect()
8,AgetInputStream()
BgetOutputStream()
CgetSendBufferSize()
DgetReceiveBufferSize()
9,Aread()
Bread(newStringBuffer())
Cwrite(this.m_strChr)
Dwrite(this.m_strChr.getBytes())
10,ATest()
BnewTest()
CnewTest(“HelloJava”)
DnewTest(“HelloJava”,”192.168.0.251”,6666)
二,判断题:
1,两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话不对.
有相同的hashcode。
2,char型变量中不能存贮一个中文汉字.
答:
是能够定义成为一个中文的,因为java中以unicode编码,一个char占16位,所以放一个中文是没问题的。
3,数组有length()这个方法.
数组没有length()这个方法,有length的属性。
String有length()这个方法。
4,float型floatf=3.4不正确.
答:
正确。
精度不准确,应该用强制类型转换,如下所示:
floatf=(float)3.4
5,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里是值传递.
答案:
是值传递。
Java编程语言只由值传递参数。
当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。
对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
6,swtich能作用在byte上,能作用在long上,不能作用在String上.
switch(expr1)中,expr1是一个整数表达式。
因此传递给switch和case语句的参数应该是int、short、char或者byte。
long,string都不能作用于swtich。
(它能使用长度是在int范围之内的)
7,进程和线程是没有区别的.
进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。
进程和线程的区别在于:
简而言之,一个程序至少有一个进程,一个进程至少有一个线程.
线程的划分尺度小于进程,使得多线程程序的并发性高。
另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了
程序的运行效率。
线程在执行过程中与进程还是有区别的。
每个独立的线程有一个程序运行的入口、顺序执行了序列和程序的出口。
但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。
但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。
这就是进程和线程的重要区别。
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.
8,启动一个线程是用run().
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。
这并不意味着线程就会立即运行。
run()方法可以产生必须退出的标志来停止一个线程。
9,String类也可以继承.
String类是final类故不可以继承。
10,&运算符是一个逻辑运算符.
&是位运算符。
三,简答题:
1、Strings=newString("abs");创建了几个StringObject?
两个对象,一个是“abs”,一个是指向“abs”的引用对象s。
2、JSP有哪些内置对象?
作用分别是什么?
Request,response,out,page,session,pagecontextconfigapplicationexception
答:
JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):
request用户端请求,此请求会包含来自GET/POST请求的参数
response网页传回用户端的回应
pageContext网页的属性是在这里管理
session与请求有关的会话期
applicationservlet正在执行的内容
out用来传送回应的输出
configservlet的构架部件
pageJSP网页本身
exception针对错误网页,未捕捉的例外
3、JSP中动态INCLUDE与静态INCLUDE的区别?
答:
动态INCLUDE用jsp:
include动作实现
includepage="included.jsp"flush="true"/>它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数 静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面 <%@includefile="included.htm"%> 4、ArrayList和Vector的区别,HashMap和Hashtable的区别 答: 就ArrayList与Vector主要从二方面来说. 一.同步性: Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的 二.数据增长: 当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半 就HashMap与HashTable主要从三方面来说。 一.历史原因: Hashtable是基于陈旧的Dictionary类的,HashMap是Java1.2引进的Map接口的一个实现 二.同步性: Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的 三.值: 只有HashMap可以让你将空值作为一个表的条目的key或value。 都属于Map接口的类,实现了将惟一键映射到特定的值上。 HashMap类没有分类或者排序。 它允许一个null键和多个null值。 Hashtable类似于HashMap,但是不允许null键和null值。 它也比HashMap慢,因为它是同步的。 5、abstractclass和interface有什么区别? 6、try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后? 7、B/S与C/S的联系与区别? C/S是Client/Server的缩写。 服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。 客户端需要安装专用的客户端软件。 B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。 在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。 浏览器通过WebServer同数据库进行数据交互。 C/S与B/S区别: a.硬件环境不同: C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务. B/S建立在广域网之上的,不必是专门的网络硬件环境,例与电话上网,租用设备.信息自己管理.有比C/S更强的适应范围,一般只要有操作系统和浏览器就行 b.对安全要求不同 C/S一般面向相对固定的用户群,对信息安全的控制能力很强.一般高度机密的信息系统采用C/S结构适宜.可以通过B/S发布部分可公开信息. B/S建立在广域网之上,对安全的控制能力相对弱,可能面向不可知的用户。 c.对程序架构不同 C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑. B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上.比C/S有更高的要求B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统.SUN和IBM推的JavaBean构件技术等,使B/S更加成熟. d.软件重用不同 C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好. B/S对的多重结构,要求构件相对独立的功能.能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子 e.系统维护不同 C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级.升级难.可能是再做一个全新的系统 B/S构件组成,方面构件个别的更换,实现系统的无缝升级.系统维护开销减到最小.用户从网上自己下载安装就可以实现升级. f.处理问题不同 C/S程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操作系统相关.应该都是相同的系统 B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的.与操作系统平台关系最小. g.用户接口不同 C/S多是建立的Window平台上,表现方法有限,对程序员普遍要求较高 B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流.并且大部分难度减低,减低开发成本. h.信息流不同 C/S程序一般是典型的中央集权的机械式处理,交互性相对低 B/S信息流向可变化,B-BB-CB-G等信息、流向的变化,更像交易中心。 四,编程题: 1、写一段Jdbc连Oracle的程序Java类,并实现数据查询,表名: table1 表的结构如下: idint Namevarchar20 Phonevarchar20 Addervarchar50 2、编程: 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 答: 代码如下: packagetest; classSplitString { StringSplitStr; intSplitByte; publicSplitString(Stringstr,intbytes) { SplitStr=str; SplitByte=bytes; System.out.println("TheStringis: ′"+SplitStr+"′;SplitBytes="+SplitByte); } publicvoidSplitIt() { intloopCount; loopCount=(SplitStr.length()%SplitByte==0)? (SplitStr.length()/SplitByte): (SplitStr.length()/Split Byte+1); System.out.println("WillSplitinto"+loopCount); for(inti=1;i<=loopCount;i++) { if(i==loopCount){ System.out.println(SplitStr.substring((i-1)*SplitByte,SplitStr.length())); }else{ System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte))); } } } publicstaticvoidmain(String[]args) { SplitStringss=newSplitString("test中dd文dsaf中男大3443n中国43中国人 0ewldfls=103",4); ss.SplitIt(); } } 3、JAVA多线程编程。 用JAVA写一个多线程程序,如写四个线程,二个线程对J变量加1,二个线程对J变量减一,输出。 注: 因为这4个线程共享J,所以线程类要写到内部类中。 加线程: 每次对j加一。 减线程: 每次对j减一。 publicclassTestThreads { privateintj=1; //加线程 privateclassIncimplementsRunnable { publicvoidrun() { for(inti=0;i<10;i++) { inc(); } } } //减线程 privateclassDecimplementsRunnable { publicvoidrun() { for(inti=0;i<10;i++) { dec(); } } } //加1 privatesynchronizedvoidinc() { j++; System.out.println(Thread.currentThread().getName()+"-inc: "+j); } //减1 privatesynchronizedvoiddec() { j--; System.out.println(Thread.currentThread().getName()+"-dec: "+j); } //测试程序 publicstaticvoidmain(String[]args) { TestThreadstest=newTestThreads(); //创建两个线程类 Threadthread=null; Incinc=test.newInc(); Decdec=test.newDec(); //启动4个线程 for(inti=0;i<2;i++) { thread=newThread(inc); thread.start(); thread=newThread(dec); thread.start(); } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 笔试 试题 答案