特定的方法可以改变字符串序列的长度和内容,并且对于多线程操作是安全的。在字符的连接操作上提供了性能和效率都优于String类的”+”的append()方法,因此如果需要大量频繁地进行字符连接操作时,优先采用StringBuffer类的append()方法。
StringBuilder类是StringBuffer类的一个等价类,该类与StringBuffer类具有相同的方法,且同样代表的是可变长的字符串缓冲区,不同的地方在于StringBuilder类是非线程安全的。但是也正是因为少了很多的同步操作,在效率上会高于StringBuffer类。因此如果不涉及多线程操作,可以优先考虑使用StringBuilder类来提高方法的执行效率。
18、 List、Set、Map是否继承自Collection接口:
在Java体系中,容器类库分为两大类,即Collection(集合)和Map(映像)。Collection中存放的是一组各自独立的对象,而Map中存放的是“键——值”对象。
List和Set都是Collection的子接口,List是一个有序可重复列表,Set是一个无序重复集。
19、 遍历Map和Vector集合: Map:
Iterator迭代器遍历:Map.entrySet().iterator(); XX.hasNext();
新式for循环启遍历:for(String key:Map.keySet());
Vector:
a、 Enumeration枚举器遍历:Enumeration
em=Vector.element();em.hasMoreElement();
b、 for循环遍历:for(int i=0;i 20、 反射机机制及作用: 定义: 反射是指程序可以访问、检测和修改其本身状态或行为的一种能力,在Java环境中,反射机制允许程序在执行时获取某个类的自身的定义信息,例如属性和方法等也可以实现动态创建类的对象、变更属性的内容或执行特定的方法的功能。从而使Java具有动态语言的特性,增强了程序的灵活性和可移植性 反射机制的作用: Java反射机制主要用于实现以下功能(在运行时时环境中)。 I、在运行时判断任意一个对象所属的类型 II、在运行时构造任意一个类的对象 III、在运行时判断任意一个类所具有的成员变量和方法 IV、在运行时调用任意一个对象的方法,甚至可以调用private方法 Java反射机制API: 实现Java反射机制的API在java.lang.reflect包下,具有以下几点: (1)、Class类:代表一个类 (2)、Field类:代表类的成员变量 (3)、Method类:代表类的方法 (4)、Constructor类:代表类的构造方法 (5)、Array类:提供了动态创建数组及访问数据的元素的静态方法。该类中的所有方法都是静态的。 难点: 反射机制是Java中非常重要的一项功能,应用也非常广泛,在现在流行的Structs、Hibernate、Spring等各种框架都是基于反射机制实现的,首先需要将XML配置文件的配置信息读取,然后利用反射机制创建对象、执行方法等。 21、 如何使用Java调用系统的exe文件 通过Runtime类可以方便调用外部的exe文件。 Runtime rm = new Runtime.getRuntime(); rm.exec(“notepad.exe”); 22、 如何使用Java调用系统的CMD Process rt; try { rt = Runtime.getRuntime().exec(\); BufferedReader br=new BufferedReader(new InputStreamReader(rt.getInputStream())); while(true){ String s = br.readLine(); if(s==null){ break; } System.out.println(s); } br.close(); rt.waitFor(); if(rt.exitValue()==0){ System.out.println(\运行成功!\); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } 23、 使用MD5和SHA算法加密信息: Java Web程序设计 24、 jsp、java、JavaScript区别: Jsp是由Sun公司建立一种动态网页技术标准,用于编写动态网站程序。JSP技术以Java语言作为脚本,嵌入到JSP页面中,由服务器负责解释运行。JSP运行环境是JRE和服务器 JAVA程序需要由JRE运行环境才能解释运行,面向对象的语言。 JavaScript由Netscape公司基于Java的语法开发的。一种基于对象的脚本语言。可以在浏览器里直接运行,不需服务器的支持。是基于对象的函数式的语 言,在客户端用于实现表单验证和网页特效功能。 25、 Page、request、session、application区别: 类型不同分别:Object 、HttpServletRequest、HttpSession、ServletContext; 作用范围不同分别:全局作用范围,整个应用程序共享,生命周期为从应用程序启动到停止;会话作用域,当用户首次访问,产生一个新的会话,以后服务器就可以记住这个会话状态。生命周期为会话超时或服务器端强制制使会话失效;请求作用域,客户端的一次请求,生命周期为一次请求或使用forward方式执行请求转发;一个页面有效。 26、 forward和redirect区别: forward和redirect都可以实现页面的跳转,但是跳转时的工作原理不现,使用forward时,浏览器请求URL不会改变,request对象不会被销毁;使用redirect时,浏览器请求的URL会改变,request对象会被销毁并重新创建。在使用request对象在页面传值时,需要使用forward方式,而不能使用redirect方式。 27、 多个JSP页面之间传递信息: 使用URL;使用request对象;使用Session对象;使用application对象 28、 页面,前者主要用于引入动态变化的JSP页面;后者主要用于引入HTML静态页面和共通的JSP源代码。 29、 JavaBean就是一个符合JavaBean规范的JAVA类,可用于封装一些共通 的业务逻辑,从而实现重复利用。特点: 放在一个包中 JavaBean类必须要提供一个无参的构造方法。在JSP中使用 JavaBean类通过gettero/setter()方法来读写属性的值,并且将对应的属性首字母改成大写。注意使用setter()时value属性的类型要匹配。 30、 Cookie: Cookie是指存储在客户浏览器目录下的文本文件,文件信息由Web服务器发送到客户浏览器并存储,下次该客户再次访问该web服务器时,可从浏览器读回此信息。使用Cookie,Web服务器可以将一些客户的特定信息存储在客户计算机中,例如上次访问的位置、花费时间或用户密码等不建议使用Cookie保存。 JSP/Servlet操作Cookie: 写入Cookie的示代码如下: Cookie c = new Cookie(“username”,”tom”); c.setMaxAge(120); response.addCookie(c); 上述代码中,如果不使用setMaxAge()方法设置有效期,Cookie信息将在客户关闭浏览器之后删除。 读取Cookie的示例代码如下: Cookie[] c =request.get Cookies(); for(int i=0;i if(c[i].getName().equals(“username”){ username=c[i].getValue(); } } 在客户端的Cookie文件可以存储若干个Cookie对象的信息,在读取时,request.get Cookies()返回一个Cookie数组,可在该数组中遍历寻找指定的Cookie对象。 删除Cookie示例代码如下: Cookie c = new Cookie(“mycookie”,null); c.setMaxAge(0); c.setPath(“/”); response.addCookie(c); JavaScript操作Cookie 写入Cookie的示例代码如下: 略 31、 Servlet生命周期: 加载和实例化、初始化、处理请求、移除实例。 32、