JAVA笔试题目及JAVA常考知识点总结.docx
- 文档编号:7749700
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:29
- 大小:43.71KB
JAVA笔试题目及JAVA常考知识点总结.docx
《JAVA笔试题目及JAVA常考知识点总结.docx》由会员分享,可在线阅读,更多相关《JAVA笔试题目及JAVA常考知识点总结.docx(29页珍藏版)》请在冰豆网上搜索。
JAVA笔试题目及JAVA常考知识点总结
JAVA笔试题目
一、Java笔试题·单项选择题
1.Java是从()语言改进重新设计。
A.AdaB.C++C.PasacalD.BASIC答案:
B
2.下列语句哪一个正确()
A.Java程序经编译后会产生machinecodeB.Java程序经编译后会产生bytecode
C.Java程序经编译后会产生DLLD.以上都不正确答案:
B
3.下列说法正确的有()
A.class中的constructor不可省略B.constructor必须与class同名,但方法不能与class同名
C.constructor在一个对象被new时执行D.一个class只能定义一个constructor答案:
C
4.提供Java存取数据库能力的包是()
A.java.sqlB.java.awtC.java.langD.java.swing答案:
A
5.下列运算符合法的是()
A.&&B.<>C.ifD.:
=答案:
A
6.执行如下程序代码
a=0;c=0;
do{
--c;
a=a-1;
}while(a>0);
后,C的值是()
A.0B.1C.-1D.死循环答案:
C
7.下列哪一种叙述是正确的()
A.abstract修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{}包住
C.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号答案:
D
8.下列语句正确的是()
A.形式参数可被视为localvariableB.形式参数可被字段修饰符修饰
C.形式参数为方法被调用时,真正被传递的参数D.形式参数不可以是对象答案:
A
9.下列哪种说法是正确的()
A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法
C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法答案:
D
二、Java笔试题·多项选择题
1.Java程序的种类有()
A.类(Class)B.AppletC.ApplicationD.ServletBCD
2.下列说法正确的有()
A.环境变量可在编译sourcecode时指定B.在编译程序时,所能指定的环境变量不包括classpath
C.javac一次可同时编译数个Java源文件D.javac.exe能指定编译结果要置于哪个目录(directory)答案:
BCD
3.下列标识符不合法的有()
A.newB.$UsdollarsC.1234D.car.taxi答案:
ACD
4.下列说法错误的有()
A.数组是一种对象B.数组属于一种原生类
C.intnumber=[]={31,23,33,43,35,63}D.数组的大小可以任意改变答案:
BCD
5.不能用来修饰interface的有()
A.privateB.publicC.protectedD.static答案:
ACD
6.下列正确的有()
A.callbyvalue不会改变实际参数的数值B.callbyreference能改变实际参数的参考地址
C.callbyreference不能改变实际参数的参考地址D.callbyreference能改变实际参数的内容答案:
ACD
7.下列说法错误的有()
A.在类方法中可用this来调用本类的类方法B.在类方法中调用本类的类方法时可直接调用
C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法答案:
ACD
8.下列说法错误的有()
A.Java面向对象语言容许单独的过程与函数存在B.Java面向对象语言容许单独的方法存在
C.Java语言中的方法属于类中的成员(member)
D.Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同答案:
ABC
9.下列说法错误的有()
A.能被java.exe成功运行的javaclass文件必须有main()方法B.J2SDK就是JavaAPI
C.Appletviewer.exe可利用jar选项运行.jar文件
D.能被Appletviewer成功运行的javaclass文件必须有main()方法答案:
BCD
三、Java笔试题·判断题
1.Java程序中的起始类名称必须与存放该类的文件名相同。
()答案:
正确
2.Unicode是用16位来表示一个字的。
()答案:
正确
3.原生类中的数据类型均可任意转换。
()答案:
错误
Java笔试题集锦
1.MVC的各个部分都有那些技术来实现?
如何实现?
答:
MVC是Model-View-Controller的简写。
"Model"代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),"View"是应用的表示面(由JSP页面产生),"Controller"是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。
这些组件可以进行交互和重用。
2.J2EE是什么?
答:
Je22是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterprieseapplicationmodel).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。
所属层次包括客户层(clietntier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。
3.J2EE是技术还是平台还是框架?
答:
J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。
J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。
4.STRUTS的应用(如STRUTS架构)
答:
Struts是采用JavaServlet/JavaServerPages技术,开发Web应用程序的开放源码的framework。
采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。
Struts有如下的主要功能:
一.包含一个controllerservlet,能将用户的请求发送到相应的Action对象。
二.JSP自由tag库,并且在controllerservlet中提供关联支持,帮助开发员创建交互式表单应用。
三.提供了一系列实用对象:
XML处理、通过JavareflectionAPIs自动处理JavaBeans属性、国际化的提示和消息。
5.WEBSERVICE名词解释。
JSWDL开发包的介绍。
JAXP、JAXM的解释。
SOAP、UDDI,WSDL解释。
答:
WebServiceWebService是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得WebService能与其他兼容的组件进行互操作。
JAXP(JavaAPIforXMLParsing)定义了在Java中使用DOM,SAX,XSLT的通用的接口。
这样在你的程序中你只要使用这些通用的接口,当你需要改变具体的实现时候也不需要修改代码。
JAXM(JavaAPIforXMLMessaging)是为SOAP通信提供访问方法和传输机制的API。
WSDL是一种XML格式,用于将网络服务描述为一组端点,这些端点对包含面向文档信息或面向过程信息的消息进行操作。
这种格式首先对操作和消息进行抽象描述,然后将其绑定到具体的网络协议和消息格式上以定义端点。
相关的具体端点即组合成为抽象端点(服务)。
SOAP即简单对象访问协议(SimpleObjectAccessProtocol),它是用于交换XML编码信息的轻量级协议。
UDDI的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为WebService提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的WebService注册,以使别的企业能够发现的访问协议的实现标准。
6.C/S与B/S区别:
答:
有如下八个方面的不同:
(1)硬件环境不同:
C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务.
B/S建立在广域网之上的,不必是专门的网络硬件环境,例与电话上网,租用设备.信息自己管理.有比C/S更强的适应范围,一般只要有操作系统和浏览器就行
(2)对安全要求不同
C/S一般面向相对固定的用户群,对信息安全的控制能力很强.一般高度机密的信息系统采用C/S结构适宜.可以通过B/S发布部分可公开信息.
B/S建立在广域网之上,对安全的控制能力相对弱,可能面向不可知的用户。
(3)对程序架构不同
C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑.
B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上.比C/S有更高的要求B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统.SUN和IBM推的JavaBean构件技术等,使B/S更加成熟.
(4)软件重用不同
C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好.
B/S对的多重结构,要求构件相对独立的功能.能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子
(5)系统维护不同
C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级.升级难.可能是再做一个全新的系统
B/S构件组成,方面构件个别的更换,实现系统的无缝升级.系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.
(6)处理问题不同
C/S程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操作系统相关.应该都是相同的系统
B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的.与操作系统平台关系最小.
(7)用户接口不同
C/S多是建立的Window平台上,表现方法有限,对程序员普遍要求较高
B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流.并且大部分难度减低,减低开发成本.
(8)信息流不同
C/S程序一般是典型的中央集权的机械式处理,交互性相对低
B/S信息流向可变化,B-BB-CB-G等信息、流向的变化,更像交易中心。
7.什么是JNDI
答:
(JavaNaming&DirectoryInterface)JAVA命名目录服务。
主要提供的功能是:
提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。
8.什么是JMS
答:
(JavaMessageService)JAVA消息服务。
主要实现各个应用程序之间的通讯。
包括点对点和广播
9.什么是JTA
答:
(JavaTransactionAPI)JAVA事务服务。
提供各种分布式事务服务。
应用程序只需调用其提供的接口即可。
10.开发中都用到了那些设计模式?
用在什么场合?
答:
每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。
通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。
主要用到了MVC的设计模式。
用来开发JSP/Servlet或者J2EE的相关应用。
简单工厂模式等。
11.、j2ee常用的设计模式?
说明工厂模式。
答:
Java中的23种设计模式:
Factory(工厂模式),Builder(建造模式),FactoryMethod(工厂方法模式),
Prototype(原始模型模式),Singleton(单例模式),Facade(门面模式),
Adapter(适配器模式),Bridge(桥梁模式),Composite(合成模式),
Decorator(装饰模式),Flyweight(享元模式),Proxy(代理模式),
Command(命令模式),Interpreter(解释器模式),Visitor(访问者模式),
Iterator(迭代子模式),Mediator(调停者模式),Memento(备忘录模式),
Observer(观察者模式),State(状态模式),Strategy(策略模式),
TemplateMethod(模板方法模式),ChainOfResponsibleity(责任链模式)
工厂模式:
工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。
首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。
然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。
当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。
12.UML方面
答:
标准建模语言UML。
用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图
13.RMI
RMI指的是远程方法调用(RemoteMethodInvocation)。
它是一种机制,能够让在某个Java虚拟机上的对象调用另一个Java虚拟机中的对象上的方法。
可以用此方法调用的任何对象必须实现该远程接口。
调用这样一个对象时,其参数为"marshalled"并将其从本地虚拟机发送到远程虚拟机(该远程虚拟机的参数为"unmarshalled")上。
该方法终止时,将编组来自远程机的结果并将结果发送到调用方的虚拟机。
如果方法调用导致抛出异常,则该异常将指示给调用方。
JAVA基础
1.如何获得数组的长度?
数组名.length
2.访问修饰符“public/private/protected/缺省的修饰符”的使用类?
public:
公共,均可访问
private:
私有的,同一个java类中可以访问.子类不能访问.
protected:
同一个包中的类都可访问.子类可以访问.缺省,friendly:
当前类,同一个包,都可以访问.
作用域当前类同一package子孙类其他package
public√√√√
protected√√√×
friendly√√××
private√×××
3.AnonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
匿名内部类是没有名字的内部类,不能继承其它类,但一个内部类可以作为一个接口,由另一个内部类实现.
一、由于匿名内部类没有名字,所以它没有构造函数。
因为没有构造函数,所以它必须完全借用父类的构造函数来实例化,换言之:
匿名内部类完全把创建对象的任务交给了父类去完成。
二、在匿名内部类里创建新的方法没有太大意义,但它可以通过覆盖父类的方法达到神奇效果,如上例所示。
这是多态性的体现。
三、因为匿名内部类没有名字,所以无法进行向下的强制类型转换,持有对一个匿名内部类对象引用的变量类型一定是它的直接或间接父类类型。
new<类或接口><类的主体>
匿名类
匿名类是不能有名称的类,所以没办法引用它们。
必须在创建时,作为new语句的一部分来声明它们。
这就要采用另一种形式的new语句,如下所示:
new<类或接口><类的主体>
这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。
它还创建那个类的一个新实例,并把它作为语句的结果而返回。
要扩展的类和要实现的接口是new语句的操作数,后跟匿名类的主体。
如果匿名类对另一个类进行扩展,它的主体可以访问类的成员、覆盖它的方法等等,这和其他任何标准的类都是一样的。
如果匿名类实现了一个接口,它的主体必须实现接口的方法。
注意匿名类的声明是在编译时进行的,实例化在运行时进行。
这意味着for循环中的一个new语句会创建相同匿名类的几个实例,而不是创建几个不同匿名类的一个实例。
从技术上说,匿名类可被视为非静态的内部类,所以它们具有和方法内部声明的非静态内部类一样的权限和限制。
如果要执行的任务需要一个对象,但却不值得创建全新的对象(原因可能是所需的类过于简单,或者是由于它只在一个方法内部使用),匿名类就显得非常有用。
匿名类尤其适合在Swing应用程序中快速创建事件处理程序。
exp:
returnnewContents(){
privateinti=11;
publicintvalue(){returni;}
};
这种奇怪的语法要表达的意思是:
“创建从Contents衍生出来的匿名类的一个对象”。
由new表达式返回的句柄会自动上溯造型成一个Contents句柄。
匿名内部类的语法其实要表达的是:
classMyContentsextendsContents{
privateinti=11;
publicintvalue(){returni;}
}
returnnewMyContents();
若试图定义内部类,并想使用在匿名内部类外部定义的一个对象,则编译器要求外部对象必须是final属性.
publicclassParcel9{
publicDestination
dest(finalStringdest,finalfloatprice){
returnnewDestination(){
privateintcost;
//Instanceinitializationforeachobject:
{
cost=Math.round(price);
if(cost>100)
System.out.println("Overbudget!
");
}
privateStringlabel=dest;
publicStringreadLabel(){returnlabel;}
};
}
publicstaticvoidmain(String[]args){
Parcel9p=newParcel9();
Destinationd=p.dest("Tanzania",101.395F);
}
}
4.staticnestedclass和innerclass的不同?
nestedclass在c++中是嵌套类,innerclass在java中是内部类.不同就是在于是否有指向外部的引用上.静态内部类意味着创建一个static内部类的对象,不需要一个外部类对象;不能从一个static内部类的一个对象访问到一个外部类的对象.
5.&和&&的区别
&是位运算符,表示按位与运算;&&是逻辑运算符,表示逻辑与(and)
6.Collection和Collections的区别
collection是集合类的上级接口,继承与它的接口主要是set和list
其中list必须以特定的顺序容纳元素;而一个set不能包含重复的元素.
映射(Map)一系列"键-值"对.可以返回自己键的一个set,一个包含自己值的list,或者包含自己(键-值)对的一个list.
均可构建自己的反复器.
collections类是针对集合类的一个帮助类.它提供一系列的静态方法对各种集合的搜索,排序,线程安全化等操作.
publicclassSimpleCollection{
publicstaticvoidmain(String[]args){
Collectionc=newArrayList();
for(inti=0;i<10;i++)
c.add(Integer.toString(i));
Iteratorit=c.iterator();
while(it.hasNext())
System.out.println(it.next());
}
}
7.什么时候用assert
assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。
在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。
一般来说,assertion用于保证程序最基本、关键的正确性。
assertion检查通常在开发和测试时开启。
为了提高性能,在软件发布后,assertion检查通常是关闭的.
8.Strings=newString("xyz");创建了几个StringObject***
两个,一个字符对象,一个字符对象引用对象
9.math.round(11.5)和math.round(-11.5)
前者等于12,后者等于-11.round方法返回与参数最接近的长整数.参数加0.5,求其floor
10.shorts1=1;s1=s1+1;是否有错误?
shorts1=1;s1+=1;是否有错误?
前者s1+1返回一个int型,需要强制类型转换.
后者正确.
11.java种有没有goto?
有,为保留字.但是尚未使用.
12.Overload和Override的区别。
Overloaded的方法是否可以改变返回值的类型?
答:
方法的重写Overriding和重载Overloading是Java多态性的不同表现。
重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。
子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。
Overloaded的方法是可以改变返回值的类型
13.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
是用==还是equals()?
它们有何区别
答:
Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。
equals()是判读两个Set是否相等
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 笔试 题目 知识点 总结