ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:35.19KB ,
资源ID:7914475      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7914475.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JAVA面试题2.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JAVA面试题2.docx

1、JAVA面试题2java面试题(续)4. 多线程:在同一应用程序中,有多个顺序流同时执行。同步和异步有和异同,在什么情况下分别使用他们?临界资源问题线程都是独立的,而且异步执行,也就是说每个线程都包含了运行时所需要的数据或方法,而不需要外部的资源或方法,也不必关心其它线程的状态或行为。但是经常有一些同时运行的线程需要共享数据,此时就需考虑其他线程的状态和行为,否则就不能保证程序的运行结果的正确性。我们需要做的是允许一个线程彻底完成其任务后,再允许下一个线程执行。必须保证一个共享的资源一次只能被一个线程使用。实现此目的的过程称为同步。同步是用于确保资源一次只能被一个线程使用的过程。同步对于单线程

2、程序没有任何好处。使用同步比非同步的性能差三到四倍。线程方法介绍:构造函数:Thread()Thread(Runable target)Thread(Runable target,String name)Thread(ThreadGroup group,Runable target)Thread(ThreadGroup group,Runable target,String name)Thread(ThreadGroup group,String name)用于完成一个线程“实际功能”的代码放在run方法中。Run方法可以在Thread的子类中重写,也可以在Runable对象中重写。一旦线程死

3、去,它就永远不能再重新启动,否则会抛出异常。用start方法启动一个已经启动的线程也会抛出异常。isAlive、interrupt、Thread.currentThread、suspend、resume、stopSleep方法可以使低优先级的线程得到执行的机会,Yield方法只能使同优先级的线程有执行的机会。Join方法能够使调用该方法的线程在此之前执行完毕,在该方法之后,调用join方法的线程不会产生输出了,Wait与notify使用时,需要注意的事项?它们只能用于synchronized同步块中;它们需要配对使用;Wait一般出现在一个while循环中,while语句使用一个boolean

4、标志控制。死锁当被锁定的A对象试图访问另一个被锁定的B对象,B对象同时又要访问已被锁定的A对象。这样导致两个线程都在等待另一个线程释放资源,这样就出现了死锁。16、JAVA多线程编程。 用JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出。 希望大家补上,谢谢 17、STRING与STRINGBUFFER的区别。 答:STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法 Strin

5、g s = new String(xyz);创建了几个String Object? 两个JDBC调用数据库的基本步骤Weblogic Server中的JDBC配置1、建立到指定数据库的连接池Connection Pool2、建立基于该连接池的数据源DataSource3、访问数据库时通过数据源的JNDI名字查找到该数据源,然后通过数据源获得数据库连接对象。得到该对象后就可以依次生成数据库语句对象和结果集对象,进行相应的数据库操作。import java.sql.*;import javax.naming.*;import javax.sql.*;import java.util.*;impor

6、t javax.rmi.*;public class DataSourceTestprivate static Context getInitialContext() throws ExceptionString url=t3:/localhost:7001;String user=system;String password=11111111;Properties properties=null;tryproperties=new Properties();properties.put(Context.INITIAL_CONTEXT_FACTORY,weblogic.jndi.WLIniti

7、alContextFactory);properties.put(Context.PROVIDER_URL,url);if(user!=null)properties.put(Context.SECURITY_PRINCIPAL,user);properties.put(Context.SECURITY_CREDENTIALS,password=null?:password);return new InitialContext(properties);catch(Exception e)throw e;public static void main(String args)UserTransa

8、ction tx=null;DataSource ds=null;Context ctx=null;Connection myConn=null;tryctx=getInitialContext();tx=(UserTranscation)ctx.lookup(javax.transcation.UserTranscation);tx.begin();ds=(DataSource)ctx.lookup(myTxDataSource);catch(Exception e)e.printStackTrace();Statement myStatement=null;ResultSet myResu

9、ltSet=null;trymyConn=ds.getConnection();myStatement=myConn.createStatement();myResultSet=myStatement.executeQuery(select fullname from employee);while(myResultSet.next()System.out.println(myResultSet.getString(fullname);mit();catch(Exception e)trytx.rollback();catch(Exception e)finallymyStatement.cl

10、ose();myConn.close();JavaMail发邮件的步骤:Properties props=System.getProperties();props.put(“mail.smtp.host”,”*”); /设置相关的属性try /创建一个会话对象 Session session=Session.getDefaultInstance(props,null); /创建一个消息对象 MimeMessage message=new MimeMessage(session); message.setText(“*”); /发送文本格式的邮件 message.setSubject(“*”);

11、 message.setFrom(“*”); message.addRecipient(Message.RecipientType.To, new InternetAddress(“*”); /使用传送类的send方法发送消息 Transport.send(message);catch(MessagingException me) me.printStackTrace();解析XML文件的几种方式和区别XML解析器使用的两种基本API是:文档对象模型DOM,一种基于树结构的API。它定义了一组java接口,用于创建、访问和操纵XML文档的内部结构。它是基于对象。整个XML文档被作为对象体系结构

12、排列进行解析和存储,应用程序可以随机访问这些对象。DOM主要用于:在结构上修改XML文档时;在内存中与其他应用程序共享文档时。SAX提供一种用于解析XML文档的事件驱动模型,使用SAX接口的XML处理器并不创建数据结构,而是扫描输入的XML文档,并生成元素开始、元素结束等事件,在发生事件时,解析器会通知应用程序。SAX优点:在解析大型文档时,不必将整个文件加载到内存中,因此占有的内存比DOM少。在只需要一个信息子集时,SAX忽略不需要的数据,而DOM无法做到这点。SAX的缺点是:必须按到达顺序处理数据,不能对文档进行随即访问。SAX是只读的,它是设计来读取XML文档而不是写入的。文档只能遍历一

13、次。使用DOM API查找XML文档中的元素和属性import org.w3c.dom.*;import javax.xml.parsers.*;import java.io.*;import .URL;public class BookDetailspublic BookDetails(String filename)Document doc=null;tryDocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();dbf.setNamespaceAware(true);DocumentBuilder db=dbf.new

14、DocumentBuilder();doc=db.parse(new File(filename);String nm=String local=a;String ob=;System.out.println(nm+名字空间中的元素);NodeList nl=doc.getElementsByTagNameNS(nm,*);for(int i=0;inl.getLength();i+)Node n=nl.item(i);System.out.println(n.getNodeName();System.out.println(n 名称为 +local+ 的元素);nl=doc.getEleme

15、ntsByTagNameNS(*,local);for(int i=0;inl.getLength();i+)Node n=nl.item(i);System.out.println(n.getNodeName();System.out.println(n名字空间 +ob+ 中的属性);nl=doc.getElementsByTagName(*);for(int i=0;inl.getLength();i+)if(nl.item(i) instanceof Element)Text t=(Text)nl.item(i).getFirstChild();Element e=(Element)nl

16、.item(i);Attr a=e.getAttributeNodeNS(ob,class);if(a!=null)String val=a.getNodeValue();System.out.println(+t.getNodeValue()+);catch(Exception e)e.printStackTrace();public static void main(String args)BookDetails nsd=null;if(args.length=1)nsd=new BookDetails(args0);elseSystem.out.println(Books.xml);使用

17、SAX API解析XML文档import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;public class SAXParserHandler extends DefaultHanlderpublic void startDocument() throws SAXExceptionSystem

18、.out.println(起始文档);public void endDocument() throws SAXExceptionSystem.out.println(结束文档);/在遇到字符数据时激发public void characters(char ch,int start,int lenght) throws SAXException)String charString=new String(ch,start,lenght);System.out.println(字符:+charString);public void startElement(String namespaceURI,S

19、tring localName,String qName,Attributes atts)throws SAXExceptionSystem.out.println(起始元素+qName);for(int i=0;iatts.getLength();i+)System.out.println(属性值:+atts.getvalue(i);public void endElement(String namespaceURI,String localName,String qName)throws SAXExceptionSystem.out.println(结束元素+qName);public s

20、tatic void main(String args) throws ExceptionSAXParserFactory factory=SAXParserFactory.newInstance();SAXParser parser=factory.newSAXParser();parser.parse(book.xml,new SAXParserHanlder();使用DOM API写XML文档import org.w3c.dom.*;import javax.xml.parsers.*;import javax.xml.transform.*;import javax.xml.trans

21、form.dom.*;import javax.xml.transform.stream.*;import java.io.*;public class Studentpublic static void main(String args)Document doc;Element students;Element stud;Element fName;Element sName;tryDocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();DocumentBuilder db=dbf.newDocumentBuilder(

22、);doc=db.newDocument();stud=doc.createElement(Student);fName=doc.createElement(FirstName);fName.appendChild(doc.createTextNode(John);stud.appendChild(fName);sName=doc.createElement(Surname);sName.appendChild(doc.createTextNode(David);stud.appendChild(sName);students=doc.createElement(Students);stude

23、nts.setAttribute(Department,Mathematics);students.appendChild(stud);doc.appendChild(students);TransformerFactory tf=TransformerFactory.newInstance();Transformer transformer=tf.newTransformer();transformer.transform(new DOMSource(doc),new StreamResult(System.out);catch(Exception e)e.printStackTrace()

24、;使用DOM API显示现有XML文档内容使用DOM API将XML文档数据插入数据库使用DOM API根据数据库创建XML文档Java的国际化国际化是为了将应用程序发布在多个地区(locale)而进行准备的过程。不同地区标识了各个特定的国家在信息表现上所广泛使用的语言、流通货币、字符集、日期格式及其他要素。支持国际化的应用程序具有以下特点:1、不用改变代码就可以支持另外的语言。2、文本元素、消息和图片保存在源代码之外。3、将于文化背景有关的数据,比如日期和时间、十进制数值以及流通货币,根据用户所用的语言和所在地理位置进行正确格式化。4、支持非标准字符集。5、应用程序可以快速适应新的语言区域。

25、为了使一个应用程序国际化,:1、必须将用户所见到的硬编码字符(如标签、工具提示和错误信息等)替换成包含在资源包ResourceBundle中的字符。它是一个java属性文件,它将关键字映射为字符值。并且可以使用多个不同语言版本的ResourceBundle,这样将可以对于不同语言提供不同的字符串。2、使用Locale对象,可以使数据格式化为与地区相关的数据。3、国际化的应用程序还必须使用统一的字符编码标准字符集。应用服务器有那些?Servlet方面 什么是Servlet?Servlet是J2EE应用框架中部署于Web层的Web组件,运行在支持Servlet的Web服务器或应用服务器上。Serv

26、let为客户端和服务器端的信息处理提供了一种“请求/响应”机制。客户程序将请求发送到服务器;服务器将请求发送到Servlet;依据客户程序的请求,Servlet动态地构造回答信息并返回给服务器;服务器将回答返回给客户程序。什么是JSP?JSP是J2EE应用框架中部署于Web层的Web组件,是对Servlet技术的扩展。它使在静态的页面中加入动态的内容变得非常容易。并且通过使用标签库可以大大节省开发时间;将JavaBean与JSP一起使用可以将数据表示和程序实现分离。在MVC架构模式中:使用Servlet作为控制器,而JSP作为数据视图。CGI与Servlet的区别?CGI(公共网关接口)是一项

27、标准,使WEB服务器可以与外部应用程序交互。但是该技术存在一些严重的限制:1、CGI应用程序占用资源很多。当系统要处理来自一个用户的请求时,就会创建一个新的进程来处理该请求,一旦CGI脚本停止执行,系统就必须收回该进程。这种重量级进程的经常启动和停止非常低效。2、CGI很难链接于请求进程的其他阶段,因为在WEB服务器上它们运行于不同的进程。这就很难处理授权、工作流和日志记录工作。Java Servlet技术提供了一个基于组件、与平台无关的方法来构建WEB应用程序。Servlet没有标准CGI应用程序所遇到的性能局限。Servlet比CGI更高效是因为:Servlet应用中将只创建一个单一个重量

28、级进程,并对每个用户请求使用更轻量级的线程来完成请求处理,并且这些线程是由JVM自动维护。每个客户端请求对应一个线程,每个Servlet类在Servlet容器中只存在一个唯一的对象(实例)。Servlet类首次加载后将常驻内存。1、说一说Servlet的生命周期? 答:在第一次请求Servlet时将创建Servlet实例,容器调用实例的init方法,如果容器有请求要传送给servlet,它就会调用servlet实例的Service方法。一个请求将作为一个线程。如果服务器要销毁servlet实例就会调用servlet实例的destory方法,否则该实例将会常驻内存。2、Servlet版本间(忘了

29、问的是哪两个版本了)的不同? 希望大家补上,谢谢 会话根中技术用户认证:使用用户名和口令进行验证来让客户端访问某些资源。隐藏表单字段:用于保存一个浏览器在服务器中的相关信息。URL重写:在URL后面添加附加信息持久Cookie:在请求和响应头信息中添加和编辑信息什么是会话对象?会话对象用于在用户访问一个Web站点的多个页面时共享信息。任何时候用户第一次访问某个网页,系统都将创建一个会话。如果以后用户访问此网页,JSP将检索有关此会话的信息。只要服务器收到此用户的请求,则会话就会持续,如果经过一段时间没有收到此用户的新请求,会话就会终止。3、JAVA SERVLET API中forward() 与redirect()的区别? 使用重定向:当调用sendRedirect方法时,Web容器就会向浏览器返回响应,指示需要新的URL。因为浏览器发出了完全崭新的请求,所以在重定向之前存储为请求属性的任何对象都会消失。使用转发:当为一个请求调用转发时,请求就发送给服务器上另一个资源,而无需通知客户机由不同的资源处理请求。这个过程完全在Web容器内部进行,客户机绝不知晓。与重定向不同,转发过程中,对象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1