下载

2下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 00JAVA题目集合

00JAVA题目集合.doc

00JAVA题目集合

李浩
2018-09-08 0人阅读 举报 0 0 暂无简介

简介:本文档为《00JAVA题目集合doc》,可适用于IT/计算机领域

JAVA相关基础知识、面向对象的特征有哪些方面抽象:抽象就是忽略一个主题中与当前目标无关的那些方面以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题而只是选择其中的一部分暂时不用部分细节。抽象包括两个方面一是过程抽象二是数据抽象。继承:继承是一种联结类的层次模型并且允许和鼓励类的重用它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生这个过程称为类继承。新类继承了原始类的特性新类称为原始类的派生类(子类)而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量并且类可以修改或增加新的方法使之更适合特殊的需要。封装:封装是把过程和数据包围起来对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念即现实世界可以被描绘成一系列完全自治、封装的对象这些对象通过一个受保护的接口访问其他对象。多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势很好的解决了应用程序函数同名问题。、String是最基本的数据类型吗基本数据类型包括byte、int、char、long、float、double、boolean和short。javalangString类是final类型的因此不可以继承这个类、不能修改这个类。为了提高效率节省空间我们应该用StringBuffer类、int和Integer有什么区别Java提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。原始类型封装类booleanBooleancharCharacterbyteByteshortShortintIntegerlongLongfloatFloatdoubleDouble引用类型和原始类型的行为完全不同并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法它们包括:大小和速度问题这种类型以哪种类型的数据结构存储当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为而原始类型实例变量的缺省值与它们的类型有关。、String和StringBuffer的区别JAVA平台提供了两个类:String和StringBuffer它们可以储存和操作etConfig()publicStringgetServletInfo()publicvoidservice(ServletRequestrequest,ServletResponseresponse)publicvoiddestroy()、jee常用的设计模式?说明工厂模式。Java中的种设计模式:Factory(工厂模式)Builder(建造模式)FactoryMethod(工厂方法模式)Prototype(原始模型模式)Singleton(单例模式)Facade(门面模式)Adapter(适配器模式)Bridge(桥梁模式)Composite(合成模式)Decorator(装饰模式)Flyweight(享元模式)Proxy(代理模式)Command(命令模式)Interpreter(解释器模式)Visitor(访问者模式)Iterator(迭代子模式)Mediator(调停者模式)Memento(备忘录模式)Observer(观察者模式)State(状态模式)Strategy(策略模式)TemplateMethod(模板方法模式)ChainOfResponsibleity(责任链模式)工厂模式:工厂模式是一种经常被使用到的模式根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例通常这一组类有一个公共的抽象父类并且实现了相同的方法但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类工厂类可以根据条件生成不同的子类实例。当得到子类的实例后开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。、EJB需直接实现它的业务接口或Home接口吗请简述理由。远程接口和Home接口不需要直接实现他们的实现代码是由服务器产生的程序运行中对应实现类会作为对应接口类型的实例被使用。、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。排序的方法有:插入排序(直接插入排序、希尔排序)交换排序(冒泡排序、快速排序)选择排序(直接选择排序、堆排序)归并排序分配排序(箱排序、基数排序)快速排序的伪代码。使用快速排序方法对a:n排序从a:n中选择一个元素作为middle该元素为支点把余下的元素分割为两段left和right使得left中的元素都小于等于支点而right中的元素都大于等于支点递归地使用快速排序方法对left进行排序递归地使用快速排序方法对right进行排序所得结果为leftmiddleright、请对以下在JEE中常用的名词进行解释(或简单描述)web容器:给处于其中的应用程序组件(JSPSERVLET)提供一个环境使JSP,SERVLET直接更容器中的环境变量接口交互不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守JEE规范中的WEBAPPLICATION标准。我们把遵守以上标准的WEB服务器就叫做JEE中的WEB容器。EJB容器:Enterprisejavabean容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足JEE规范的EJB放入该容器马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。JNDI:(JavaNamingDirectoryInterface)JAVA命名目录服务。主要提供的功能是:提供一个目录系统让其它各地的应用程序在其上面留下自己的索引从而满足快速查找和定位分布式应用程序的功能。JMS:(JavaMessageService)JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。JTA:(JavaTransactionAPI)JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。JAF:(JavaActionFrameWork)JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。RMIIIOP:(RemoteMethodInvocationinternet对象请求中介协议)他们主要用于通过远程调用服务。例如远程有一台计算机上运行一个程序它提供股票分析服务我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。、JAVA语言如何进行异常处理关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?Java通过面向对象的方法进行异常处理把各种不同的异常进行分类并提供了良好的接口。在Java中每个异常都是一个对象它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象该对象中包含有异常信息调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序如果出现异常系统会抛出(throws)一个异常这时候你可以通过它的类型来捕捉(catch)它或最后(finally)由缺省处理器来处理。用try来指定一块预防所有“异常”的程序。紧跟在try程序后面应包含一个catch子句来指定你想要捕捉的“异常”的类型。throw语句用来明确地抛出一个“异常”。throws用来标明一个成员函数可能抛出的各种“异常”。Finally为确保一段代码不管发生什么“异常”都被执行一段代码。可以在一个成员函数调用的外面写一个try语句在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句“异常”的框架就放到堆栈上面直到所有的try语句都完成。如果下一级的try语句没有对某种“异常”进行处理堆栈就会展开直到遇到有处理这种“异常”的try语句。、一个“java”源文件中是否可以包括多个类(不是内部类)?有什么限制?可以。必须只有一个类名与文件名相同。、MVC的各个部分都有那些技术来实现如何实现MVC是Model-View-Controller的简写。"Model"代表的是应用的业务逻辑(通过JavaBeanEJB组件实现)"View"是应用的表示面(由JSP页面产生)"Controller"是提供应用的处理过程控制(一般是一个Servlet)通过这种设计模型把应用逻辑处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法stop()和suspend()方法为何不推荐使用?有两种实现方法分别是继承Thread类与实现Runnable接口用synchronized关键字修饰同步方法反对使用stop()是因为它不安全。它会解除由线程获取的所有锁定而且如果对象处于一种不连贯状态那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候目标线程会停下来但却仍然持有在这之前获得的锁定。此时其他任何线程都不能访问锁定的资源除非被“挂起”的线程恢复运行。对任何线程来说如果它们想恢复目标线程同时又试图使用任何一个锁定的资源就会造成死锁。所以不应该使用suspend()而应在自己的Thread类中置入一个标志指出线程应该活动还是挂起。若标志指出线程应该挂起便用wait()命其进入等待状态。若标志指出线程应当恢复则用一个notify()重新启动线程。、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承请说出他们分别是哪些类?字节流字符流。字节流继承于InputStreamOutputStream字符流继承于InputStreamReaderOutputStreamWriter。在javaio包中还有许多其他的流主要是为了提高性能和使用方便。、java中会存在内存泄漏吗请简单描述。会。如:inti,ireturn(ii)wheni为足够大的正数,i为足够大的负数。结果会造成溢位导致错误。、java中实现多态的机制是什么?方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现重载Overloading是一个类中多态性的一种表现。、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?对于GC来说当程序员创建对象时GC就开始监控这个对象的地址、大小以及使用情况。通常GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的"哪些对象是"不可达的"。当GC确定一些对象为"不可达"时GC就有责任回收这些内存空间。可以。程序员可以手动执行Systemgc()通知GC运行但是Java语言规范并不保证GC一定会执行。、静态变量和实例变量的区别?statici=常量classAaai=可变、什么是java序列化如何实现java序列化?序列化就是一种用来处理对象流的机制所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。序列化的实现:将需要被序列化的类实现Serializable接口该接口没有需要实现的方法implementsSerializable只是为了标注该对象是可被序列化的然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象接着使用ObjectOutputStream对象的writeObject(Objectobj)方法就可以将参数为obj的对象写出(即保存其状态)要恢复的话则用输入流。、是否可以从一个static方法内部发出对非static方法的调用?不可以,如果其中包含对象的method()不能保证对象初始化、写clone()方法时通常都有一行代码是什么?Clone有缺省行为superclone()他负责产生正确大小的空间并逐位复制。、在JAVA中如何跳出当前的多重嵌套循环?用breakreturn方法。、List、Map、Set三个接口存取元素时各有什么特点?List以特定次序来持有元素可有重复元素。Set无法拥有重复元素,内部排序。Map保存keyvalue值value可多值。、JEE是什么?JEE是Sun公司提出的多层(multidiered),分布式(distributed),基于组件(componentbase)的企业级应用模型(enterprieseapplicationmodel)在这样的一个应用系统中可按照功能划分为不同的组件这些组件又可在不同计算机上并且处于相应的层次(tier)中。所属层次包括客户层(clietntier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。、UML方面标准建模语言UML。用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图。、说出一些常用的类包接口请各举个常用的类:BufferedReaderBufferedWriterFileReaderFileWirterStringInteger常用的包:javalangjavaawtjavaiojavautiljavasql常用的接口:RemoteListMapDocumentNodeList、开发中都用到了那些设计模式用在什么场合每个模式都描述了一个在我们的环境中不断出现的问题然后描述了该问题的解决方案的核心。通过这种方式你可以无数次地使用那些已有的解决方案无需在重复相同的工作。主要用到了MVC的设计模式。用来开发JSPServlet或者JEE的相关应用。简单工厂模式等。、jsp有哪些动作作用分别是什么JSP共有以下种基本动作jsp:include:在页面被请求的时候引入一个文件。jsp:useBean:寻找或者实例化一个JavaBean。jsp:setProperty:设置JavaBean的属性。jsp:getProperty:输出某个JavaBean的属性。jsp:forward:把请求转到一个新的页面。jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。、AnonymousInnerClass(匿名内部类)是否可以extends(继承)其它类是否可以implements(实现)interface(接口)可以继承其他类或完成其他接口在swing编程中常用此方式。、应用服务器与WEBSERVER的区别?应用服务器:Weblogic、Tomcat、JbossWEBSERVER:IIS、Apache、BS与CS的联系与区别。CS是ClientServer的缩写。服务器通常采用高性能的PC、工作站或小型机并采用大型数据库系统如Oracle、Sybase、Informix或SQLServer。客户端需要安装专用的客户端软件。BS是BrowerServer的缩写客户机上只要安装一个浏览器(Browser)如NetscapeNavigator或InternetExplorer服务器安装Oracle、Sybase、Informix或SQLServer等数据库。在这种结构下用户界面完全通过WWW浏览器实现一部分事务逻辑在前端实现但是主要事务逻辑在服务器端实现。浏览器通过WebServer同数据库进行数据交互。CS与BS区别:1.硬件环境不同:  CS一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务  BS建立在广域网之上的,不必是专门的网络硬件环境,例与电话上网,租用设备信息自己管理有比CS更强的适应范围,一般只要有操作系统和浏览器就行2.对安全要求不同  CS一般面向相对固定的用户群,对信息安全的控制能力很强一般高度机密的信息系统采用CS结构适宜可以通过BS发布部分可公开信息  BS建立在广域网之上,对安全的控制能力相对弱,可能面向不可知的用户。3.对程序架构不同  CS程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑  BS对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上比CS有更高的要求BS结构的程序架构是发展的趋势,从MS的Net系列的BizTalkExchange等,全面支持网络的构件搭建的系统SUN和IBM推的JavaBean构件技术等,使BS更加成熟4.软件重用不同  CS程序可以不可避免的整体性考虑,构件的重用性不如在BS要求下的构件的重用性好  BS对的多重结构,要求构件相对独立的功能能够相对较好的重用就入买来的餐桌可以再利用,而不是做在墙上的石头桌子5.系统维护不同  CS程序由于整体性,必须整体考察,处理出现的问题以及系统升级升级难可能是再做一个全新的系统  BS构件组成,方面构件个别的更换,实现系统的无缝升级系统维护开销减到最小用户从网上自己下载安装就可以实现升级6.处理问题不同  CS程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操作系统相关应该都是相同的系统  BS建立在广域网上,面向不同的用户群,分散地域,这是CS无法作到的与操作系统平台关系最小7.用户接口不同  CS多是建立的Window平台上,表现方法有限,对程序员普遍要求较高  BS建立在浏览器上,有更加丰富和生动的表现方式与用户交流并且大部分难度减低,减低开发成本8.信息流不同  CS程序一般是典型的中央集权的机械式处理,交互性相对低  BS信息流向可变化,BBBCBG等信息、流向的变化,更像交易中心。、LINUX下线程GDI类的解释。LINUX实现的就是基于核心轻量级进程的"一对一"线程模型一个线程实体对应一个核心轻量级进程而线程之间的管理在核外函数库中实现。GDI类为图像设备编程接口类库。、STRUTS的应用(如STRUTS架构)Struts是采用JavaServletJavaServerPages技术开发Web应用程序的开放源码的framework。采用Struts能开发出基于MVC(ModelViewController)设计模式的应用构架。Struts有如下的主要功能:一包含一个controllerservlet能将用户的请求发送到相应的Action对象。二JSP自由tag库并且在controllerservlet中提供关联支持帮助开发员创建交互式表单应用。三提供了一系列实用对象:XML处理、通过JavareflectionAPIs自动处理JavaBeans属性、国际化的提示和消息。、Jdo是什么JDO是Java对象持久化的新的规范为javadataobject的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储因此对开发人员来说存储数据对象完全不需要额外的代码(如JDBCAPI的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上使开发人员解脱出来从而集中时间和精力在业务逻辑上。另外JDO很灵活因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用提供到任何数据底层的存储功能比如关系数据库、文件、XML以及对象数据库(ODBMS)等等使得应用可移植性更强。、内部类可以引用他包含类的成员吗?有没有什么限制?一个内部类对象可以访问创建它的外部类对象的内容、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注册以使别的企业能够发现的访问协议的实现标准。JAVA代码查错abstractclassName{privateStringnamepublicabstractbooleanisStupidName(Stringname){}}大侠们这有何错误答案:错。abstractmethod必须以分号结尾且不带花括号。publicclassSomething{voiddoSomething(){privateStrings=""intl=slength()}}有错吗答案:错。局部变量前不能放置任何访问修饰符(privatepublic和protected)。final可以用来修饰局部变量(final如同abstract和strictfp都是非访问修饰符strictfp只能修饰class和method而非variable)。abstractclassSomething{privateabstractStringdoSomething()}这好像没什么错吧答案:错。abstract的methods不能以private修饰。abstract的methods就是让子类implement(实现)具体细节的怎么可以用private把abstractmethod封锁起来呢(同理abstractmethod前不能加final)。publicclassSomething{publicintaddOne(finalintx){returnx}}这个比较明显。答案:错。intx被修饰成final意味着x不能在addOnemethod中被修改。publicclassSomething{publicstaticvoidmain(Stringargs){Othero=newOther()newSomething()addOne(o)}publicvoidaddOne(finalOthero){oi}}classOther{publicinti}和上面的很相似都是关于final的问题这有错吗答案:正确。在addOnemethod中参数o被修饰成final。如果在addOnemethod里我们修改了o的reference(比如:o=newOther())那么如同上例这题也是错的。但这里修改的是o的membervairable(成员变量)而o的reference并没有改变。classSomething{intipublicvoiddoSomething(){Systemoutprintln("i="i)}}有什么错呢看不出来啊。答案:正确。输出的是"i="。inti属於instantvariable(实例变量或叫成员变量)。instantvariable有defaultvalue。int的defaultvalue是。classSomething{finalintipublicvoiddoSomething(){Systemoutprintln("i="i)}}和上面一题只有一个地方不同就是多了一个final。这难道就错了吗答案:错。finalinti是个final的instantvariable(实例变量或叫成员变量)。final的instantvariable没有defaultvalue必须在constructor(构造器)结束之前被赋予一个明确的值。可以修改为"finalinti="。publicclassSomething{publicstaticvoidmain(Stringargs){Somethings=newSomething()Systemoutprintln("sdoSomething()returns"doSomething())}publicStringdoSomething(){return"Dosomething"}}看上去很完美。答案:错。看上去在main里calldoSomething没有什么问题毕竟两个methods都在同一个class里。但仔细看main是static的。staticmethod不能直接callnonstaticmethods。可改成"Systemoutprintln("sdoSomething()returns"sdoSomething())"。同理staticmethod不能访问nonstaticinstantvariable。此处Something类的文件名叫OtherThingjavaclassSomething{privatestaticvoidmain(Stringsomethingtodo){Systemoutprintln("Dosomething")}}这个好像很明显。答案:正确。从来没有人说过Java的Class名字必须和其文件名相同。但publicclass的名字必须和文件名相同。.interfaceA{intx=}classB{intx=}classCextendsBimplementsA{publicvoidpX(){Systemoutprintln(x)}publicstaticvoidmain(Stringargs){newC()pX()}}答案:错误。在编译时会发生错误(错误描述不同的JVM有不同的信息意思就是未明确的x调用两个x都匹配(就象在同时importjavautil和javasql两个包时直接声明Date一样)。对于父类的变量,可以用superx来明确而接口的属性默认隐含为publicstaticfinal所以可以通过Ax来明确。interfacePlayable{voidplay()}interfaceBounceable{voidplay()}interfaceRollableextendsPlayable,Bounceable{Ballball=newBall("PingPang")}classBallimplementsRollable{privateStringnamepublicStringgetName(){returnname}publicBall(Stringname){thisname=name}publicvoidplay(){ball=newBall("Football")Systemoutprintln(ballgetName())}}这个错误不容易发现。答案:错。"interfaceRollableextendsPlayable,Bounceable"没有问题。interface可继承多个interfaces所以这里没错。问题出在interfaceRollable里的"Ballball=newBall("PingPang")"。任何在interface里声明的interfacevariable(接口变量也可称成员变量)默认为publicstaticfinal。也就是说"Ballball=newBall("PingPang")"实际上是"publicstaticfinalBallball=newBall("PingPang")"。在Ball类的Play()方法中"ball=newBall("Football")"改变了ball的reference而这里的ball来自RollableinterfaceRollableinterface里的ball是publicstaticfinal的final的object是不能被改变reference的。因此编译器将在"ball=newBall("Football")"这里显示有错。JAVA编程题.现在输入n个数字以逗号分开然后可选择升或者降序排序按提交键就在另一页面显示按什么排序结果为提供resetimportjavautil*publicclassbycomma{publicstaticStringsplitStringByComma(Stringsource){if(source==||sourcetrim()equals(""))returnStringTokenizercommaToker=newStringTokenizer(source,",")Stringresult=newStringcommaTokercountTokens()inti=while(commaTokerhasMoreTokens()){resulti=commaTokernextToken()i}returnresult}publicstaticvoidmain(Stringargs){Strings=splitStringByComma(",,,,,,")intii=newintslengthfor(inti=i<slengthi){iii=IntegerparseInt(si)}Arrayssort(ii)ascfor(inti=i<slengthi){Systemoutprintln(iii)}descfor(inti=(slength)i>=i){Systemoutprintln(iii)}}}.金额转换阿拉伯数字的金额转换成中国传统的形式如:(¥)->(一千零一拾一元整)输出。packagetestformatimportjavatextNumberFormatimportjavautilHashMappublicclassSimpleMoneyFormat{publicstaticfinalStringEMPTY=""publicstaticfinalStringZERO="零"publicstaticfinalStringONE="壹"publicstaticfinalStringTWO="贰"publicstaticfinalStringTHREE="叁"publicstaticfinalStringFOUR="肆"publicstaticfinalStringFIVE="伍"publicstaticfinalStringSIX="陆"publicstaticfinalStringSEVEN="柒"publicstaticfinalStringEIGHT="捌"publicstaticfinalStringNINE="玖"publicstaticfinalStringTEN="拾"publicstaticfinalStringHUNDRED="佰"publicstaticfinalStringTHOUSAND="仟"publicstaticfinalStringTENTHOUSAND="万"publicstaticfinalStringHUNDREDMILLION="亿"publicstaticfinalStringYUAN="元"publicstaticfinalStringJIAO="角"publicstaticfinalStringFEN="分"publicstaticfinalStringDOT=""privatestaticSimpleMoneyFormatformatter=privateHashMapchineseNumberMap=newHashMap()privateHashMapchineseMoneyPattern=newHashMap()privateNumberFormatnumberFormat=NumberFormatgetInstance()privateSimpleMoneyFormat(){numberFormatsetMaximumFractionDigits()numberFormatsetMinimumFractionDigits()numberFormatsetGroupingUsed(false)chineseNumberMapput("",ZERO)chineseNumberMapput("",ONE)chineseNumberMapput("",TWO)chineseNumberMapput("",THREE)chineseNumberMapput("",FOUR)chineseNumberMapput("",FIVE)chineseNumberMapput("",SIX)chineseNumberMapput("",SEVEN)chineseNumberMapput("",EIGHT)chineseNumberMapput("",NINE)chineseNumberMapput(DOT,DOT)chineseMoneyPatternput("",TEN)chineseMoneyPatternput("",HUNDRED)chineseMoneyPatternput("",THOUSAND)chineseMoneyPatternput("",TENTHOUSAND)chineseMoneyPatternput("",TEN)chineseMoneyPatternput("",HUNDRED)chineseMoneyPatternput("",THOUSAND)chineseMoneyPatternput("",HUNDREDMILLION)}publicstaticSimpleMoneyFormatgetInstance(){if(formatter==)formatter=newSimpleMoneyFormat()returnformatter}publicStringformat(StringmoneyStr){checkPrecision(moneyStr)Stringresultresult=convertToChineseNumber(moneyStr)result=addUnitsToChineseMoneyString(result)returnresult}publicStringformat(doublemoneyDouble){returnformat(numberFormatformat(moneyDouble))}publicStringformat(intmoneyInt){returnformat(numberFormatformat(moneyInt))}publicStringformat(longmoneyLong){returnformat(numberFormatformat(moneyLong))}publicStringformat(NumbermoneyNum){returnformat(numberFormatformat(moneyNum))}privateStringconvertToChineseNumber(StringmoneyStr){StringresultStringBuffercMoneyStringBuffer=newStringBuffer()for(inti=i<moneyStrlength()i){cMoneyStringBufferappend(chineseNumberMapget(moneyStrsubstring(i,i)))}拾佰仟万亿等都是汉字里面才有的单位加上它们intindexOfDot=cMoneyStringBufferindexOf(DOT)intmoneyPatternCursor=for(inti=indexOfDoti>i){cMoneyStringBufferinsert(i,chineseMoneyPatternget(EMPTYmoneyPatternCursor))moneyPatternCursor=moneyPatternCursor==:moneyPatternCursor}StringfractionPart=cMoneyStringBuffersubstring(cMoneyStringBufferindexOf(""))cMoneyStringBufferdelete(cMoneyStringBufferindexOf(""),cMoneyStringBufferlength())while(cMoneyStringBufferindexOf("零拾")!=){cMoneyStringBufferreplace(cMoneyStringBufferindexOf("零拾"),cMoneyStringBufferindexOf("零拾"),ZERO)}while(cMoneyStringBufferindexOf("零佰")!=){cMoneyStringBufferreplace(cMoneyStringBufferindexOf("零佰"),cMoneyStringBufferindexOf("零佰"),ZERO)}while(cMoneyStringBufferindexOf("零仟")!=){cMoneyStringBufferreplace(cMoneyStringBufferindexOf("零仟"),cMoneyStringBufferindexOf("零仟"),ZERO)}while(cMoneyStringBufferindexOf("零万")!=){cMoneyStringBufferreplace(cMoneyStringBufferindexOf("零万"),cMoneyStringBufferindexOf("零万"),TENTHOUSAND)}while(cMoneyStringBufferindexOf("零亿")!=){cMoneyStringBufferreplace(cMoneyStringBufferindexOf("零亿"),cMoneyStringBufferindexOf("零亿"),HUNDREDMILLION)}while(cMoneyStringBufferindexOf("零零")!=){cMoneyStringBufferreplace(cMoneyStringBufferindexOf("零零"),cMoneyStringBufferindexOf("零零"),ZERO)}if(cMoneyStringBufferlastIndexOf(ZERO)==cMoneyStringBufferlength())cMoneyStringBufferdelete(cMoneyStringBufferlength(),cMoneyStringBufferlength())cMoneyStringBufferappend(fractionPart)result=cMoneyStringBuffertoString()returnresult}privateStringaddUnitsToChineseMoneyString(StringmoneyStr){StringresultStringBuffercMoneyStringBuffer=newStringBuffer(moneyStr)intindexOfDot=cMoneyStringBufferindexOf(DOT)cMoneyStringBufferreplace(indexOfDot,indexOfDot,YUAN)cMoneyStringBufferinsert(cMoneyStringBufferlength(),JIAO)cMoneyStringBufferinsert(cMoneyStringBufferlength(),FEN)if(cMoneyStringBufferindexOf("零角零分")!=)没有零头加整cMoneyStringBufferreplace(cMoneyStringBufferindexOf("零角零分"),cMoneyStringBufferlength(),"整")elseif(cMoneyStringBufferindexOf("零分")!=)没有零分加整cMoneyStringBufferreplace(cMoneyStringBufferindexOf("零分"),cMoneyStringBufferlength(),"整")else{if(cMoneyStringBufferindexOf("零角")!=)cMoneyStringBufferdelete(cMoneyStringBufferindexOf("零角"),cMoneyStringBufferindexOf("零角"))tmpBufferappend("整")}result=cMoneyStringBuffertoString()returnresult}privatevoidcheckPrecision(StringmoneyStr){intfractionDigits=moneyStrlength()moneyStrindexOf(DOT)if(fractionDigits>)thrownewRuntimeException("金额"moneyStr"的小数位多于两位。")精度不能比分低}publicstaticvoidmain(Stringargs){Systemoutprintln(getInstance()format(newDouble()))}}、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么答:父类:packagetestpublicclassFatherClass{publicFatherClass(){Systemoutprintln("FatherClassCreate")}}子类:packagetestimporttestFatherClasspublicclassChildClassextendsFatherClass{publicChildClass(){Systemoutprintln("ChildClassCreate")}publicstaticvoidmain(Stringargs){FatherClassfc=newFatherClass()ChildClasscc=newChildClass()}}输出结果:C:>javatestChildClassFatherClassCreateFatherClassCreateChildClassCreate、内部类的实现方式答:示例代码如下:packagetestpublicclassOuterClass{privateclassInterClass{publicInterClass(){Systemoutprintln("InterClassCreate")}}publicOuterClass(){InterClassic=newInterClass()Systemoutprintln("OuterClassCreate")}publicstaticvoidmain(Stringargs){OuterClassoc=newOuterClass()}}输出结果:C:>javatestOuterClassInterClassCreateOuterClassCreate再一个例题:publicclassOuterClass{privatedoubled=insertcodehere}YouneedtoinsertaninnerclassdeclarationatlineWhichtwoinnerclassdeclarationsarevalid(Choosetwo)AclassInnerOne{publicstaticdoublemethoda(){returnd}}BpublicclassInnerOne{staticdoublemethoda(){returnd}}CprivateclassInnerOne{doublemethoda(){returnd}}DstaticclassInnerOne{protecteddoublemethoda(){returnd}}EabstractclassInnerOne{publicabstractdoublemethoda()}说明如下:一静态内部类可以有静态成员而非静态内部类则不能有静态成员。故A、B错二静态内部类的非静态成员可以访问外部类的静态变量而不可访问外部类的非静态变量returnd出错。故D错三非静态内部类的非静态成员可以访问外部类的非静态变量。故C正确四答案为C、E、Java的通信编程编程题(或问答)用JAVASOCKET编程读服务器几个字符再写入本地显示?答:Server端程序:packagetestimportjavanet*importjavaio*publicclassServer{privateServerSocketssprivateSocketsocketprivateBufferedReaderinprivatePrintWriteroutpublicServer(){try{ss=newServerSocket()while(true){socket=ssaccept()StringRemoteIP=socketgetInetAddress()getHostAddress()StringRemotePort=":"socketgetLocalPort()Systemoutprintln("Aclientcomein!IP:"RemoteIPRemotePort)in=newBufferedReader(newInputStreamReader(socketgetInputStream()))Stringline=inreadLine()Systemoutprintln("Cleintsendis:"line)out=newPrintWriter(socketgetOutputStream(),true)outprintln("YourMessageReceived!")outclose()inclose()socketclose()}}catch(IOExceptione){outprintln("wrong")}}publicstaticvoidmain(Stringargs){newServer()}}Client端程序:packagetestimportjavaio*importjavanet*publicclassClient{SocketsocketBufferedReaderinPrintWriteroutpublicClient(){try{Systemoutprintln("TrytoConnectto:")socket=newSocket("",)Systemoutprintln("TheServerConnected!")Systemoutprintln("PleaseentersomeCharacter:")BufferedReaderline=newBufferedReader(newInputStreamReader(Systemin))out=newPrintWriter(socketgetOutputStream(),true)PAG

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/18

00JAVA题目集合

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利