金华业Java面试题

2024-07-01

金华业Java面试题(10篇)

1.金华业Java面试题 篇一

1、什么是存储过程和如何编写

1、注册Jdbc驱动程序的三种方式

1、用JDBC如何调用存储过程

1、JDBC中的preparedStatement相比Statement的好处

1. 写一个用jdbc连接并访问oracle数据的程序代码

2、Class.forName的作用?为什么要用?

答:调用该访问返回一个以字符串指定类名的类的对象。

3、大数据量下的分页解决方法。

4、用 JDBC 查询学生成绩单, 把主要代码写出来.

5、这段代码有什么不足之处?

try {

Connection conn = ...;

Statement stmt = ...;

ResultSet rs = stmt.executeQuery(“select * from table1”);

while(rs.next()) {

}

} catch(Exception ex) {

}

36、说出数据连接池的工作机制是什么?

J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。

4、为什么要用 ORM? 和 JDBC 有何不一样?

5. XML部分

1、xml有哪些解析技术?区别是什么?

答:有DOM,SAX,STAX等

DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问

STAX:Streaming ApI for XML (StAX)

讲解这些区别是不需要特别去比较,就像说传智播客与其他培训机构的区别时,我们只需说清楚传智播客有什么特点和优点就行了,这就已经间接回答了彼此的区别。

2、你在项目中用到了xml技术的哪些方面?如何实现的?

答:用到了数据存贮,信息配置两方面。在做数据交换平台时,将不能数据源的数据组装成XML文件,然后将XML文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同XML文件中还原相关信息进行处理。在做软件配置时,利用XML可以很方便的进行,软件的各种配置参数都存贮在XML文件中。

3、用jdom解析xml文件时如何解决中文问题?如何解析?

答:看如下代码,用编码方式加以解决

package test;

import java.io.*;

public class DOMTest

{

private String inFile = “c:people.xml”

private String outFile = “c:people.xml”

public static void main(String args[])

{

new DOMTest();

}

public DOMTest()

{

try

{

javax.xml.parsers.DocumentBuilder builder =

javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();

org.w3c.dom.Document doc = builder.newDocument();

org.w3c.dom.Element root = doc.createElement(“老师”);

org.w3c.dom.Element wang = doc.createElement(“王”);

org.w3c.dom.Element liu = doc.createElement(“刘”);

wang.appendChild(doc.createTextNode(“我是王老师”));

root.appendChild(wang);

doc.appendChild(root);

javax.xml.transform.Transformer transformer =

javax.xml.transform.TransformerFactory.newInstance().newTransformer();

transformer.setOutputproperty(javax.xml.transform.OutputKeys.ENCODING, “gb2312”);

transformer.setOutputproperty(javax.xml.transform.OutputKeys.INDENT, “yes”);

transformer.transform(new javax.xml.transform.dom.DOMSource(doc),

new

javax.xml.transform.stream.StreamResult(outFile));

}

catch (Exception e)

{

System.out.println (e.getMessage());

}

}

}

4、编程用JAVA解析XML的方式.

答:用SAX方式解析XML,XML文件如下:

王小明

信息学院

6258113

男,1955年生,博士,95年调入海南大学

事件回调类SAXHandler.java

import java.io.*;

import java.util.Hashtable;

import org.xml.sax.*;

public class SAXHandler extends HandlerBase

{

private Hashtable table = new Hashtable();

private String currentElement = null;

private String currentValue = null;

public void setTable(Hashtable table)

{

this.table = table;

}

public Hashtable getTable()

{

return table;

}

public void startElement(String tag, AttributeList attrs)

throws SAXException

{

currentElement = tag;

}

public void characters(char[] ch, int start, int length)

throws SAXException

{

currentValue = new String(ch, start, length);

}

public void endElement(String name) throws SAXException

{

if (currentElement.equals(name))

table.put(currentElement, currentValue);

}

}

JSp内容显示源码,SaxXml.jsp:

<%@ page errorpage=Errpage.jsp

contentType=text/html;charset=GB2312 %>

[Java面试题]

2.Java面试题2 篇二

1.抽象:

抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

2.继承:

继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

3.封装:

封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

4.多态性:

多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

2、String是最基本的数据类型吗?

基本数据类型包括byte、int、char、long、float、double、boolean和short。java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类

3、int 和 Integer 有什么区别

Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。

原始类型封装类

booleanBoolean

charCharacter

byteByte

shortShort

intInteger

longLong

floatFloat

doubleDouble

引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。

4、String 和StringBuffer的区别

JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。

5、运行时异常与一般异常有何异同?

异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

6、说出Servlet的生命周期,并说出Servlet和CGI的区别。

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

7、说出ArrayList,Vector, LinkedList的存储性能和特性

ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

8、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。

EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技术实现。

SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。

对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。

Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的 Stateful Session Bean 的实体。Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method。换言之,很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个 Bean 的 Instance 在执行。从内存方面来看,Stateful Session Bean 与 Stateless

Session Bean 比较,Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。

9、Collection 和 Collections的区别。

Collection是集合类的上级接口,继承与他的接口主要有Set 和List.Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

10、&和&&的区别。

&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。

11、HashMap和Hashtable的区别。

HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。

HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。

Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。

最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步(如果是ArrayList:List lst =

Collections.synchronizedList(new ArrayList());如果是HashMap:Map map = Collections.synchronizedMap(new HashMap());)。

Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

12、final, finally, finalize的区别。

final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。

finally是异常处理语句结构的一部分,表示总是执行。

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

13、sleep()和 wait()有什么区别?

sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。

wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

14、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

15、error和exception有什么区别?

error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

16、同步和异步有何异同,在什么情况下分别使用他们?举例说明。

如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。

当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。

17、abstract class和interface有什么区别?

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

18、heap和stack有什么区别。

栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。

堆是栈的一个组成元素

19、forward 和redirect的区别

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。

redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。

20、EJB与JAVA BEAN的区别?

Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。

21、Static Nested Class 和 Inner Class的不同。

Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。

22、JSP中动态INCLUDE与静态INCLUDE的区别?

动态INCLUDE用jsp:include动作实现

flush=“true” />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。

静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file=“included.htm” %>

23、什么时候用assert。

assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。

24、GC是什么? 为什么要有GC?

GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。

25、short s1 = 1;s1 = s1 + 1;有什么错? short s1 = 1;s1 += 1;有什么错?short s1 = 1;s1 = s1 + 1;(s1+1运算结果是int型,需要强制转换类型)short s1 = 1;s1 += 1;(可以正确编译)

26、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math.round(11.5)==12

Math.round(-11.5)==-11

3.Java开发岗位面试题 篇三

1. String类为什么是final的。

2. HashMap的源码,实现原理,底层结构。

3. 说说你知道的几个Java集合类:list、set、queue、map实现类咯。。。

4. 描述一下ArrayList和LinkedList各自实现和区别

5. Java中的队列都有哪些,有什么区别。

6. 反射中,Class.forName和classloader的区别

7. Java7、Java8的新特性(baidu问的,好BT)

8. Java数组和链表两种结构的操作效率,在哪些情况下(从开头开始,从结尾开始,从中间开始),哪些操作(插入,查找,删除)的效率高

9. Java内存泄露的问题调查定位:jmap,jstack的使用等等

10. string、stringbuilder、stringbuffer区别

11. hashtable和hashmap的区别

13 .异常的结构,运行时异常和非运行时异常,各举个例子

14. String a= “abc” String b = “abc” String c = new String(“abc”) String d = “ab” + “c” .他们之间用 == 比较的结果

15. String 类的常用方法

16. Java 的引用类型有哪几种

17. 抽象类和接口的区别

18. java的基础类型和字节大小。

19. Hashtable,HashMap,ConcurrentHashMap 底层实现原理与线程安全问题(建议熟悉 jdk 源码,才能从容应答)

20. 如果不让你用Java Jdk提供的工具,你自己实现一个Map,你怎么做。说了好久,说了HashMap源代码,如果我做,就会借鉴HashMap的原理,说了一通HashMap实现

21. Hash冲突怎么办?哪些解决散列冲突的方法?

22. HashMap冲突很厉害,最差性能,你会怎么解决?从O(n)提升到log(n)咯,用二叉排序树的思路说了一通

23. rehash

24. hashCode() 与 equals() 生成算法、方法怎么重写

二、Java IO

1. 讲讲IO里面的常见类,字节流、字符流、接口、实现类、方法阻塞。

2. 讲讲NIO。

3. String 编码UTF-8 和GBK的区别?

4. 什么时候使用字节流、什么时候使用字符流?

5. 递归读取文件夹下的文件,代码怎么实现

三、Java Web

1. session和cookie的区别和联系,session的生命周期,多个服务部署时session管理。

2. servlet的一些相关问题

3. webservice相关问题

4. jdbc连接,forname方式的步骤,怎么声明使用一个事务。举例并具体代码

5. 无框架下配置web.xml的主要配置内容

6. jsp和servlet的区别

四、JVM

1. Java的内存模型以及GC算法

2. jvm性能调优都做了什么

3. 介绍JVM中7个区域,然后把每个区域可能造成内存的溢出的情况说明

4. 介绍GC 和GC Root不正常引用。

5. 自己从classload 加载方式,加载机制说开去,从程序运行时数据区,讲到内存分配,讲到String常量池,讲到JVM垃圾回收机制,算法,hotspot。反正就是各种扩展

6. jvm 如何分配直接内存, new 对象如何不分配在堆而是栈上,常量池解析

7. 数组多大放在 JVM 老年代(不只是设置 PretenureSizeThreshold ,问通常多大,没做过一问便知)

8. 老年代中数组的访问方式

4.Java程序员面试题 篇四

1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面:1)抽象2)继承3)封装4)多态性

2、作用域public,private,protected,以及不写时的区别 答:区别如下:

作用域 当前类 同包 子类 其他 public √ √√ √ protected√√√ × default √√× × private √×××

类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私有。

3、String 是最基本的数据类型吗? 答:不是。Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type)和枚举类型(enumeration type),剩下的都是引用类型(reference type)。

4、float f=3.4;是否正确? 答:不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4;或者写成float f =3.4F。

5、int 和Integer 有什么区别? 答:Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入不是对象的基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的封装类就是Integer,从JDK 1.5开始引入了自动封箱/解封箱机制,使得二者可以相互转换。

Java 为每个原始类型提供了封装类:

原始类型: boolean,char,byte,short,int,long,float,double 封装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double

6、数组有没有length()方法?String 有没有length()方法?

答:数组没有length()方法,有length 的属性。String 有length()方法。

7、在Java 中,如何跳出当前的多重嵌套循环?

答:在最外层循环前加一个标记如A,然后用break A;可以跳出多重循环。

8、是否可以继承String 类? 答:String 类是final类,不可以被继承。

9、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的属性可以在被调用过程中被改变,但对象的引用是永远不会改变的。C++和C#中可以通过传引用或传输出参数来改变传入的参数的值

10、抽象类(abstract class)和接口(interface)有什么异同? 答:

抽象类和接口都不能够实例化,但可以定义抽象类和接口类型的引用。

一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类。接口比抽象类更加抽象,因为抽象类中可以定义构造器,可以有抽象方法和具体方法,而接口中不能定义构造器而且其中的方法全部都是抽象方法。

抽象类中的成员可以是private、默认、protected、public的,而接口中的成员全都是public的。抽象类中可以定义成员变量,而接口中定义的成员变量实际上都是常量。有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法。

11、静态变量和实例变量的区别?

答:静态变量也称为类变量,属于类,不属于类的任何一个对象,一个类不管创建多少个对象,静态变量在内存中有且仅有一个拷贝;实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。

12、String s=new String(“xyz”);创建了几个字符串对象?

答:两个对象,一个是静态存储区的“xyx”,一个是用new创建在堆上的对象

13、接口是否可继承(extends)接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类可继承具体类,但前提是具体类必须有明确的构造函数

14、Java 中的final关键字有哪些用法?

答:(1)修饰类:表示该类不能被继承;(2)修饰方法:表示方法不能被重写;(3)修饰变量:表示变量只能一次赋值以后值不能被修改(常量)

15、Error 和Exception 有什么区别? 答:Error 表示系统级的错误和程序不必处理的异常,是恢复不是不可能但很困难的情况下的一种严重问题;比如内存溢出,不可能指望程序能处理这样的情况;Exception 表示需要捕捉或者需要程序进行处理的异常,是一种设计或实现问题;也就是说,它表示如果程序运行正常,从不会发生的情况。

选择题

1、在Java

Applet程序用户自定义的Applet子类中,一般需要重载父类的(D)方法来完成一些画图操作。

A.start()

B.stop()

C.init()D.paint()

2、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?(B)

A)安全性

B)多线程

C)跨平台

D)可移植

3、下列哪个类声明是正确的?(D)

A)abstract final class HI{···} B)abstract private move(){···}C)protected private number;

D)public abstract class Car{···

4、在Java语言中,下列哪些语句关于内存回收的说明是正确的?(B)

A.程序员必须创建一个线程来释放内存;

B.内存回收程序负责释放无用内存

C.内存回收程序允许程序员直接释放内存

D.内存回收程序可以在指定的时间释放内存对象

5、字符串是Java已定义的类型,关于它的构造函数,下面说法不正确的是: B

A.String(char[] value, int offset, int count)

B.String(int[] codePoints,int offset,int count)

C.String(String original)

D.String(StringBuffer buffer)

6、下列说法中正确的是: C

A.导入包会影响程序的性能 B.包存储在类库中

C.包是类的容器D.上述说法都不对

7、哪个关键字可以对对象加互斥锁? B

A.transient

B.synchronized

C.serialize

D.static8、下列叙述中,错误的是: D

A、父类不能替代子类

B、子类能够替代父类

C、子类继承父类

D、父类包含子类

9、下列关于Java多线程并发控制机制的叙述中,错误的是:BC

A、Java中对共享数据操作的并发控制是采用加锁技术

B、线程之间的交互,提倡采用suspend()/resume()方法

C、共享数据的访问权限都必须定义为private

D、Java中没有提供检测与避免死锁的专门机制,但应用程序员可以采用某些策略防止死锁的发生

10、下列哪一个方法不是applet程序的组成部分:D

A、init()

B、start()

C、stop()

D、new()

11、下列Applet类的方法中,在Applet的整个生命周期里至多只执行一次的是:A

A、init()

B、start()C、stop()

D、paint()

12、启动一个线程所调用的方法是:C

A、run()

B、init()

C、start()

D、new()

13、编译Java

Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。

A..java

B..class

C..html

D..exe

二、填空题(每空格1分,共20分)

1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。

2、如果一个Java

Applet源程序文件只定义有一个类,该类的类名MyApplet,则类MyApplet必须是Applet类的子类并且存储该源程序文件的文件名为MyApplet。

3、若x=5,y=10,则x=y的逻辑值分别为true和false。

4、抽象(abstract)方法方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。最终(final)方法方法是不能被当前类的子类重新定义的方法。

5.java工程师面试题 篇五

回答:在运行时你输入java package1.class1 -arg1 -arg2,args中就会有两String,一个是arg1,另一个是arg2。

8.当一个同步方法已经执行,线程能够调用对象上的非同步实例方法吗?

回答:可以,一个非同步方法总是可以被调用而不会有任何问题。实际上,Java 没有为非同步方法做任何检查,锁对象仅仅在同步方法或者同步代码块中检查。如果一个方法没有声明为同步,即使你在使用共享数据Java照样会调用,而不会做检查是否安全,所以在这种情况下要特别小心。一个方法是否声明为同步取决于临界区访问,如果方法不访问临界区就没必要声明为同步的。

更多热门的面试试题分享:

财务面试问题

中信证券笔试题

微软面试题

6.java设计模式面试题 篇六

你用过哪种设计模式?

设计:design

模式:pattern

框架:framework

创建模式,结构模式和行为模式

GoF设计模式

A.创建模式

设计模式之Factory(工厂模式)

使用工厂模式就象使用new一样频繁.

设计模式之Prototype(原型模式)

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,

设计模式之Builder

汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件复杂的工作,Builder模式就是将这两种情况分开进行。

设计模式之Singleton(单态模式)

保证一个类只有一个实例,并提供一个访问它的全局访问点

B.结构模式

设计模式之Facade

可扩展的使用JDBC针对不同的`数据库编程,Facade提供了一种灵活的实现.

设计模式之Proxy

以Jive为例,剖析代理模式在用户级别授权机制上的应用

设计模式之Adapter

使用类再生的两个方式:组合(new)和继承(extends),这个已经在“thinking in java”中提到过.

设计模式之Composite

就是将类用树形结构组合成一个单位.你向别人介绍你是某单位,你是单位中的一个元素,别人和你做买卖,相当于和单位做买卖。文章中还对Jive再进行了剖析。

设计模式之Decorator

Decorator是个油漆工,给你的东东的外表刷上美丽的颜色.

设计模式之Bridge

将“牛郎织女”分开(本应在一起,分开他们,形成两个接口),在他们之间搭建一个桥(动态的结合)

设计模式之Flyweight

提供Java运行性能,降低小而大量重复的类的开销.

C.行为模式

设计模式之Template

实际上向你介绍了为什么要使用Java 抽象类,该模式原理简单,使用很普遍.

设计模式之Memento

很简单一个模式,就是在内存中保留原来数据的拷贝.

设计模式之Observer

介绍如何使用Java API提供的现成Observer

设计模式之Chain of Responsibility

各司其职的类串成一串,好象击鼓传花,当然如果自己能完成,就不要推委给下一个.

设计模式之Command

什么是将行为封装,Command是最好的说明.

设计模式之State

状态是编程中经常碰到的实例,将状态对象化,设立状态变换器,便可在状态中轻松切换.

设计模式之Strategy

不同算法各自封装,用户端可随意挑选需要的算法.

设计模式之Mediator

Mediator很象十字路口的红绿灯,每个车辆只需和红绿灯交互就可以.

设计模式之Interpreter

主要用来对语言的分析,应用机会不多.

设计模式之Visitor

访问者在进行访问时,完成一系列实质性操作,而且还可以扩展.

设计模式之Iterator

7.上海爱立信java面试题 篇七

第一套:1.SAX解析xml的方式,与dom4j的区别 2.http和https之间的不同

3.浏览器发起请求到页面展现有那几个步骤 4.linux部署项目出现过什么问题 5.怎么解决线程死锁

6.final 类,方法,变量代表的含义 7.TCP和UDP 8.MapReduce介绍

8.讲一下垃圾回收机制

9.什么时候会引起OutOfMemory异常 10.互斥和同步 11.启动线程的方法

第二套:

1、Filter涉及了哪些设计模式

2、单例模式中的内部静态类为什么能够懒加载

3、ClassLoader相关(2),tomcat中有哪些类加载器

4、线程单例;线程synchronized(静态和非静态有什么区别)

5、一个先递增后递减的数列,如何找到最大值?(使用二叉树,lgn/log2)

6、二叉树的非递归算法(不用栈)

7、Java中的heap和stack

8、事务的传播性

9、找出数组中出现次数为1的数字(其他的出现偶数次)

现场面试

1.ServletDispather 2.Filter是什么模式的体现 3.线程wait和sleep的区别 4.线程的状态

5.除jquery用过什么网页脚本语言 6.在工作中有没有用过设计模式

7.在工作中有没有遇到过难题,怎么解决的 8.servlet同步异步

9.有没有用过远程调试页面 10.linux查看流量的指令

重点考察

1-面向对象思想

8.金华业Java面试题 篇八

1、有哪些XML解析方法?

2、页面间的参数传递方法有哪一些?

3、Session有什么作用?

4、JSP有哪些动作?作用分别是什么?

5、Ajax的基本原理是什么?

6、数据库中存储过程和函数的区别是什么?

7、用SQL实现分页?

8、Hibernate的工作原理是什么?及为什么要用?

9、Public、private、protected和default的作用域是什么?

10、描述“重载”和“重写”?

11、描述下“值传递”“引用传递”或他们的主要区别?

12、描述下set、list、Map各自的特点

13、String在Java里是固定的长度吗?为什么可以用“+”连接

14、描述下Spring对于事务的配置与处理方法?

15、JS:

如何获取页面上的元素(至少两种)如何获取页面上的元素数组

如何给该元素赋值

16、string 类是否可以被继承?

17、String和StringBuffer的区别?

18、==与equals的区别

19、如何将“我爱你”变成“你爱我”

20、在你经历的项目中,是如何定义常量的?又是如何取值的?

21、开发当中如何输出一个某种编码的字符串?

22、Spring是什么?在你的实际项目中如何应用?

23、Struts 在你的项目中是如何运用的?

24、两个项目之间如何实现数据共享?

25、Windows下tomcat如何部署工程?

26、Windows下启动、关闭tomcat命令?

27、请写出JSP的内置对象,以及每个对象的常见使用场景(对象知道几个写几个,场景每个对象写一个)

28、请写出Object类的方法以及方法作用

29、五大框架分别是什么?

30、九大隐士对象其中四个作用是什么?

31、常见的异常有哪些?

32、session cookie 的意义?

33、请描述session的原理

34、hibernate的五大接口是什么? 10月25日笔试题

1、请写出JSP的内置对象,以及每个对象的常见使用场景(对象知道几个写几个,场景每个对象写一个)

2、请写出Object类的方法以及方法作用

3、五大框架分别是什么?

4、JSP九大内置对象及四个作用域是什么?

5、常见的异常有哪些?

6、session cookie 的意义?

7、请描述session的原理

8、hibernate的五大接口是什么?

9、写出一个冒泡排序算法的例子

10、用JavaScript写一个功能,判断页面上,“Name”和“Age”两个输入框都必须填入内容才能提交Form

11、Overload和Override的区别,Overloaded的方法是否可以改变返回值的类型?

12、Hibernate的缓存等级及其特点

13、什么是MVC?分析一下Struts是如何实现mvc的?

14、用简短的代码实现字符“s tr in g”到“s tr in g”转换,即将多个空格转换为一个空格

15、Hashtable和Hashmap的区别是什么?

16、简单描述下面向对象的特征,并举例说明你对面向对象的理解?

17、请说出你知道的线程同步方法

18、ArrayList和Hsahset的区别

19、什么是Ajax,简单描述Ajax的工作过程和机制 20、Hibernate 延时加载的意义是什么?

21、Servlet的生命周期是什么?

22、Doget 和Dopost的区别是什么?

23、Hibernate的优缺点是什么?

24、一级缓存和二级缓存各是如何用的?

25、Error和Exception有什么区别?

26、垃圾回收机制的原理?

27、多线程有几种实现方法?同步有几种实现方法?

28、Spring的工作原理是什么?

29、AOP是什么?

30、Set怎样实现数据不重复?

31、集合有哪几种,他们各自的区别是什么?

32、Hibernate与JDBC的区别是什么?

33、JSP与servlet的区别是什么?

34、用C标签输出1到100中5的倍数的数

35、Singleton的作用

36、接口与抽象类的区别

37、数据库中删除相同记录的SQL语句是什么?

9.10道Java泛型的面试题 篇九

1. Java中的泛型是什么 ? 使用泛型的好处是什么?

这是在各种Java泛型面试中,一开场你就会被问到的问题中的一个,主要集中在初级和中级面试中,那些拥有Java1.4或更早版本的开发背景的人 都知道,在集合中存储对象并在使用前进行类型转换是多么的不方便。泛型防止了那种情况的发生。它提供了编译期的类型安全,确保你只能把正确类型的对象放入 集合中,避免了在运行时出现ClassCastException。

2. Java的泛型是如何工作的 ? 什么是类型擦除 ?

这是一道更好的泛型面试题。泛型是通过类型擦除来实现的,编译器在编译时擦除了所有类型相关的信息,所以在运行时不存在任何类型相关的`信息。例如 List在运行时仅用一个List来表示。这样做的目的,是确保能和Java 5之前的版本开发二进制类库进行兼容。你无法在运行时访问到类型参数,因为编译器已经把泛型类型转换成了原始类型。根据你对这个泛型问题的回答情况,你会 得到一些后续提问,比如为什么泛型是由类型擦除来实现的或者给你展示一些会导致编译器出错的错误泛型代码。请阅读我的Java中泛型是如何工作的来了解更 多信息。

3. 什么是泛型中的限定通配符和非限定通配符 ?

这是另一个非常流行的Java泛型面试题。限定通配符对类型进行了限制。有两种限定通配符,一种是<? extends T>它通过确保类型必须是T的子类来设定类型的上界,另一种是<? super T>它通过确保类型必须是T的父类来设定类型的下界。泛型类型必须用限定内的类型来进行初始化,否则会导致编译错误。另一方面<?>表 示了非限定通配符,因为<?>可以用任意类型来替代。更多信息请参阅我的文章泛型中限定通配符和非限定通配符之间的区别。

4. List<? extends T>和List <? super T>之间有什么区别 ?

这和上一个面试题有联系,有时面试官会用这个问题来评估你对泛型的理解,而不是直接问你什么是限定通配符和非限定通配符。这两个List的声明都是 限定通配符的例子,List<? extends T>可以接受任何继承自T的类型的List,而List<? super T>可以接受任何T的父类构成的List。例如List<? extends Number>可以接受List或List。在本段出现的连接中可以找到更多信息。

5. 如何编写一个泛型方法,让它能接受泛型参数并返回泛型类型?

编写泛型方法并不困难,你需要用泛型类型来替代原始类型,比如使用T, E or K,V等被广泛认可的类型占位符,

泛型方法的例子请参阅Java集合类框架。最简单的情况下,一个泛型方法可能会像这样:

public V put(K key, V value) {

return cache.put(key, value);

}

6. Java中如何使用泛型编写带有参数的类?

这是上一道面试题的延伸。面试官可能会要求你用泛型编写一个类型安全的类,而不是编写一个泛型方法。关键仍然是使用泛型类型来代替原始类型,而且要使用JDK中采用的标准占位符。

7. 编写一段泛型程序来实现LRU缓存?

对于喜欢Java编程的人来说这相当于是一次练习。给你个提示,LinkedHashMap可以用来实现固定大小的LRU缓存,当LRU缓存已经满 了的时候,它会把最老的键值对移出缓存。LinkedHashMap提供了一个称为removeEldestEntry的方法,该方法会被put() 和putAll()调用来删除最老的键值对。当然,如果你已经编写了一个可运行的JUnit测试,你也可以随意编写你自己的实现代码。

8. 你可以把List传递给一个接受List参数的方法吗?

对任何一个不太熟悉泛型的人来说,这个Java泛型题目看起来令人疑惑,因为乍看起来String是一种Object,所以 List应当可以用在需要List的地方,但是事实并非如此。真这样做的话会导致编译错误。如 果你再深一步考虑,你会发现Java这样做是有意义的,因为List可以存储任何类型的对象包括String, Integer等等,而List却只能用来存储Strings。

ListobjectList;

ListstringList;

objectList = stringList; //compilation error incompatible types

9. Array中可以用泛型吗?

这可能是Java泛型面试题中最简单的一个了,当然前提是你要知道Array事实上并不支持泛型,这也是为什么Joshua Bloch在Effective Java一书中建议使用List来代替Array,因为List可以提供编译期的类型安全保证,而Array却不能。

10. 如何阻止Java中的类型未检查的警告?

10.Java经典面试题-带答案 篇十

一、单项选择题

1.Java是从()语言改进重新设计。

A.Ada

B.C++

C.Pasacal

D.BASIC

答案:B

2.下列语句哪一个正确()

A. Java程序经编译后会产生machine code

B.Java程序经编译后会产生byte code(字节码)

C.Java程序经编译后会产生DLL

D.以上都不正确

答案:B

3.下列说法正确的有()

A.class中的constructor不可省略

B. constructor必须与class同名,但方法不能与class同名

C.constructor在一个对象被new时执行(构造器)

D.一个class只能定义一个constructor

答案:C

4.提供Java存取数据库能力的包是()

A.Java.sql /sql/数据库 还有 Oracle 也是一种数据库

B.java.awt

C.java.lang

D.java.swing

答案:A

5.下列运算符合法的是()

A.&&

B.<>

C.if

D.:=

答案:A

6.执行如下程序代码

a=0;c=0;

do{

--c;

a=a-1;

}while(a>0);

后,C的值是()

A.0

B.1

C.-1

D.死循环

答案:C

7.下列哪一种叙述是正确的()

A.abstract修饰符可修饰字段、方法和类

B.抽象方法的body部分必须用一对大括号{}包住

C.声明抽象方法,大括号可有可无

D.声明抽象方法不可写出大括号

答案:D

8.下列语句正确的是()

A.形式参数可被视为localvariable

B.形式参数可被字段修饰符修饰

C.形式参数为方法被调用时,真正被传递的参数

D.形式参数不可以是对象

答案:A

9.下列哪种说法是正确的()

A.实例方法可直接调用超类的实例方法

B.实例方法可直接调用超类的类方法

C.实例方法可直接调用其他类的实例方法

D.实例方法可直接调用本类的类方法

答案:D

二、多项选择题

1.Java程序的种类有()

A.类(Class)

B.Applet

C.Application

D.Servlet

2.下列说法正确的有()

A.环境变量可在编译sourcecode时指定

B.在编译程序时,所能指定的环境变量不包括class path

C.javac一次可同时编译数个Java源文件

D.javac.exe能指定编译结果要置于哪个目录(directory)

答案:BCD

3.下列标识符不合法的有()

A.new

B.$Usdollars

C.1234

D.car.taxi

答案:ACD

4.下列说法错误的有()

A.数组是一种对象

B.数组属于一种原生类

C.intnumber=[]={31,23,33,43,35,63}

D.数组的大小可以任意改变

答案:BCD

5.不能用来修饰interface的有()

A.private

B.public

C.protected

D.static

答案:ACD

6.下列正确的有()

A. call byvalue不会改变实际参数的数值

B. call by reference能改变实际参数的参考地址

C. call byreference不能改变实际参数的参考地址

D. call byreference能改变实际参数的内容

答案: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就是Java API

C.Appletviewer.exe可利用jar选项运行.jar文件

D.能被Appletviewer成功运行的javaclass文件必须有main()方法

答案:BCD

三、判断题

1.Java程序中的起始类名称必须与存放该类的文件名相同。()

答案:正确

2.Unicode是用16位来表示一个字的。()

答案:正确

3.原生类中的数据类型均可任意转换。()

答案:错误

1.分别写出BOOL,int,float,指针类型的变量a 与“零”的比较语句。

答案:

BOOL : if(!a)orif(a)

int : if(a == 0)

float : const EXPRESSION EXP = 0.000001

if(a < EXP && a >-EXP)

pointer : if(a!=NULL)or if(a == NULL)

2.请说出const与#define 相比,有何优点?

答案:1)const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。

2)有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试。

3.简述数组与指针的区别?

数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。

(1)修改内容上的差别

char a[]= “hello”;

a[0] = „X‟;

char *p = “world”;// 注意p 指向常量字符串

p[0] = „X‟;// 编译器不能发现该错误,运行时错误

(2)用运算符sizeof 可以计算出数组的容量(字节数)。sizeof(p),p为指针得到的是一个指针变量的字节数,而不是p 所指的内存容量。C++/C语言没有办法知道指针所指的内存容量,除非在申请内存时记住它。注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。

char a[] =“hello world”;

char *p = a;

cout<< sizeof(a)<< endl;// 12字节

cout<< sizeof(p)<< endl;// 4 字节

计算数组和指针的内存容量

voidFunc(char a[100])

{

cout<< sizeof(a)<< endl;// 4 字节而不是100字节

}

4.类成员函数的重载、覆盖和隐藏区别?

答案:

a.成员函数被重载的特征:

(1)相同的范围(在同一个类中);

(2)函数名字相同;

(3)参数不同;

(4)virtual 关键字可有可无。

b.覆盖是指派生类函数覆盖基类函数,特征是:

(1)不同的范围(分别位于派生类与基类);

(2)函数名字相同;

(3)参数相同;

(4)基类函数必须有virtual 关键字。

c.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:

(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。

(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual 关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)

5.There are two int variables: a and b, don‟t use “if”, “? :”, “switch”orother judgement statements, find out the biggest one of the two numbers.答案:((a + b)+ abs(ai-1;j++){ if(data[j] > data[j+1]){ tag = true;int temp = data[j];data[j] = data[j+1];data[j+1] = temp;} } if(!tag)break;} } void main(void){ vectordata;ifstreamin(“c:data.txt”);if(!in){ cout<<“file error!”;exit(1);} int temp;while(!in.eof()){ in>>temp;data.push_back(temp);

}

in.close();//关闭输入文件流

Order(data);

ofstream out(“c:result.txt”);

if(!out)

{

cout<<“fileerror!”;

exit(1);

}

for(i = 0;i < data.size();i++)

out<

10.链表题:一个链表的结点结构

struct Node

{

int data;

Node *next;

};

typedef struct Node Node;

(1)已知链表的头结点head,写一个函数把这个链表逆序(Intel)

Node * ReverseList(Node*head)//链表逆序

{

if(head == NULL || head->next == NULL)

returnhead;

Node *p1 = head;

Node *p2 = p1->next;

Node *p3 =p2->next;

p1->next = NULL;

while(p3!= NULL)

{

p2->next = p1;

p1 = p2;

p2 = p3;

p3 = p3->next;

}

p2->next = p1;

head = p2;

return head;

} 2)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同)

Node *Merge(Node *head1 , Node *head2)

{

if(head1 == NULL)

return head2;

if(head2 == NULL)

return head1;

Node *head = NULL;

Node*p1 = NULL;

Node *p2 = NULL;

if(head1->data < head2->data)

{

head = head1;

p1 = head1->next;

p2 = head2;

}

else

{

head = head2;

p2 = head2->next;

p1 = head1;

}

Node *pcurrent = head;

while(p1!= NULL && p2!= NULL)

{

if(p1->data <= p2->data)

{

pcurrent->next = p1;

pcurrent = p1;

p1 = p1->next;

}

else

{

pcurrent->next = p2;

pcurrent = p2;

p2 = p2->next;

}

}

if(p1!= NULL)

pcurrent->next = p1;

if(p2!= NULL)

pcurrent->next = p2;

return head;

}

(3)已知两个链表head1 和head2各自有序,请把它们合并成一个链表依然有序,这次要求用递归方法进行。(Autodesk)

答案:

Node *MergeRecursive(Node *head1 , Node *head2)

{

if(head1 == NULL)return head2;if(head2 == NULL)return head1;Node *head =NULL;if(head1->data < head2->data){ head = head1;head->next = MergeRecursive(head1->next,head2);} else { head = head2;head->next = MergeRecursive(head1,head2->next);} return head;}

Substring charAt 大小写转换

熟练使用dbcp、c3p0 druid

解释get和post的区别?

1、安全性、如果使用get方式发送到服务器数据会拼接到url的后面,这样的话会完全暴露出发送到服务器的数据,因此不安全,而post会把发送到服务器的数据放到请求体中,相对来说比较安全

2、get方式发送到服务器的数据有限制,而post的方式发送到服务器原则上是没有限制

介绍tcp和upd的区别 Tcp:传输控制协议

Udp---user data protocol:用户数据报协议 共同点:都是用来在2台设备直接传递数据的协议 不同点:

Tcp协议会在传递数据之前要3次握手,之后建立连接。这样的话就可以传递数据。是一种可靠的传输协议,就是说可以保证百分百把数据传递到对方设备,传输效率低

Udp:不可靠传输,不能保证把数据百分百把数据传输到对方设备上,传输效率高

表:销售表,客户表。两个表的关系,一个卖一个买共同的产物表:ID name 单子表

上一篇:生物入侵研究概况与发展趋势下一篇:快乐夏令营的作文