Java面试题大全(答案版)

Java面试题大全(答案版)
Java面试题大全(答案版)

1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?

可以,但是只能有一个类用public修饰,并且用public修饰的类名与文件名要一致

2、&和&&的区别。

&和&&都可以用作逻辑与;

&&还具有短路功能,即如果第一个表达式的结果为false,则不再计算第二个表达式;

&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作。

3、Java有没有goto?

java中的保留字,现在没有在java中使用。

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

break+变量控制与return

5、switch是否能作用在byte(拜特)上,是否能作用在long上,是否能作用在String上?

Switch可以作用在int上,而byte可以隐式转换为int 所以能作用在byte上

不能作用在long上,也不能作用在String上

6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

1在java中为int数据类型,short+int=int,大类型转为小类型,编译时,会报告需要强制转换类型的错误。s1+=1不会报,因为JVM会对它特殊处理(自动强转)

7、char型变量中能不能存贮一个中文汉字?为什么?

可以,char型变量是用来存储unicode(依妮Q特)编码的,而unicode编码包含了中文,所以是可以保存的

8、编程题: 用最有效率的方法算出2乘以8等於几?

2<<3,表示将2左移3位;一个数左移几位就表示这个数乘以了2的几次方,左移运算,CPU直接支持,所以是最有效率的

9、请设计一个一百亿的计算器

思路:用两个数组分别保存两个操作数,再新建一个数组保存结果。

10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?

引用变量不能变

11、"=="和equals方法究竟有什么区别?

==和equals方法都可以用来比较两个对象是否是同一个对象。

==还可以比较两个变量的值是否相等。

equals是Object类中的方法,可以由子类重写此方法,实现内容相等。

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

语法上不同: 静态变量前要加static关键字,实例变量不需要

程序运行时不同: 实例变量是属于某个对象的,只有创建了对象,才会为这个对象的实例变量分配空间。静态变量是属于类的,当程序加载了这个类的字节码文件,就会为静态变量分配空间,并且所有对象共享这个变量

13、是否可以从一个static方法内部发出对非static方法的调用?

不可以,非static方法需要与对象关联在一起的,而static方法调用时不需要对象,可以直接调用,也就是说调用static方法时,可能还没有创建任何实例

14、Integer与int的区别

int是java中的8种基本数据类型之一,默认值是0,Integer是int的包装类,默认值是null,即Integer可以表示未赋值和赋值为0

15、(麦死)Math.round(乱的)(11.5)等於多少? Math.round(-11.5)等於多少?

12,-11,Math.round()方法的实现是: Math.floor(n+0.5);

16、作用域public,private,protected,以及不写时的区别

本类同包子类其他类

public ????

protected ????

friendly ????

private ????

17、Overload(喔我楼的)和Override的区别。Overloaded的方法是否可以改变返回值的类型?

Overload是重载,Override是重写。

Overload是指在一个类中,方法名相同,参数列表不同,那么这些方法之间构成重载。

Override是指在父子类之间,子类的方法签名和父类的方法签名完全一样,那么这两个方法构成重写。

Overload的方法可以改变返回值。因为调用方法时,返回值可以接受也可以不接受,所以编译器无法根据返回值来判断是否重载。

18、构造器Constructor(看似爪克特)是否可被override?

Constructor不能被继承,所以不能override

19、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?

接口可以继承接口,抽象类可以实现接口,抽象类可以继承具体类,抽象类中可以有静态的main方法

20、写clone()方法时,通常都有一行代码,是什么?

super.clone();克隆时,首先得将父类的成员克隆完。

21、面向对象的特征有哪些方面

封装

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

继承

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

抽象

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

多态

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

22、java中实现多态的机制是什么?

靠的是父类或接口能够指向子类或实现类。程序运行时,JVM会根据内存中实际的对象调用方法。

23、abstract(抽象)class和interface有什么区别?

1、abstract class 本质是类,用abstract修饰类,而interface是接口,将class替换为interface

2、abstract class可以有构造方法,interface不能有

3、abstract class中可以包含普通变量,interface所有的变量都是final static的

4、abstract class中可以包含普通方法,interface中所有的方法都是抽象的。

5、abstract class中除抽象方法不可以是private修饰符外,其它成员任意;而interface

中所有成员的修饰符都为public

6、abstract class可以继承一个类实现多个接口,interface只能继承接口

24、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

abstract的方法不可以是static,abstract方法必须由子类去实现,而static方法可以由当前类调用。

abstract的方法不可以是native,abstract方法必须由子类去实现,而native是调用其它程序语言的代码,所以不存在由子类去实现的问题,矛盾。

关于abstract和synchronized同用的问题,我觉得也不行,因为在这几年的开发中,从没见过这种情况,而且我觉得synchronized应该是作用在一个具体的方法上才有意义。25、什么是内部类?

在一个类的内部定义的类叫做内部类。

26、内部类可以引用外部类的成员吗?有没有什么限制?

如果不是静态内部类,完全可以。

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

Nested Class一般是C++的说法,Inner Class一般是Java的说法,指的是同一意思。

内部类分为静态内部类和非静态内部类。

静态内部类中可以包含静态成员,非静态内部类中不可以包含静态成员。

静态内部类中不能引用外部类中的实例成员。非静态内部类则没有这个限制。

28、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

可以继承其它类,可以实现接口

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

不是,基本数据类型是:byte short int long float double char boolean

30、String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有?

没有,String类被设计为不可变的类。所以它的所有对象都不可变。

31、是否可以继承String类?

不可以。String被final修饰,被final修饰的类不可被继承。

32、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别?

2个对象。一个放在常量区,不管写多少遍,永远只有一个。一个放在堆内存中。每次new String就产生一个新的。

33、String 和StringBuffer的区别

String和StringBuffer都是操作字符串的类。

String类被设计为不可变,而StringBuffer可变。

34、如何把一段逗号分割的字符串转换成一个数组?

第一种用正则表达式的方式:String类的split方法

第二种方式:StringTokenizer,代码为: new StringTokenizer(“1,2,3,4”,”,”);

35、数组有没有length()这个方法? String有没有length()这个方法?

数组是length属性,String有length()这个方法

36、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

会,return前

38、final, finally, finalize的区别。

final用来修饰类,变量,方法的。修饰类表示类不可被继承,修饰变量表示变量的引用不可变,修饰方法表示方法不可被重写。

finally是异常处理结构中的一部分,表示一定会执行。

finalize是Object类的方法,当垃圾收集器执行的时候会调用此对象的这个方法。39、运行时异常与一般异常有何异同?

一般异常强制要求捕获或声明。

运行时异常可以捕获,也可以不捕获。

40、error和exception有什么区别?

error表示恢复不是不可能但是很困难的情况下的一种严重问题。例如:内存溢出

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

41、Java中的异常处理机制的简单原理和应用。

当Java程序违反了Java的语义规则时,JVM就会将发生的错误表示为一个异常。违反语义规则包括两种:一种是Java类库内置的语义检查,另一种是程序员自己定义的异常。

42、给我一个你最常见到的runtime(茹二楼)exception。

ArithMaticException NullPointException IndexOfBoundException

HibernateException(子类:CacheException,LazyInitializationException,MappingException) NestedRuntimeException(AopConfigException,AopInvocationException)

43、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?

throws 用来表名方法可能抛出异常。

throw 用来明确的抛一个异常。

try 用来监控一段可能出现异常的代码。当出现异常后进入catch块,进行异常类型匹配

finally表示无论是否出现异常都要执行的代码。

44、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?

有两种实现方法,分别是继承Thread(斯read)类与实现Runnable(软的包)接口用synchronized(新鬼耐斯特)关键字修饰同步方法

因为他们是线程的方法,不安全,当已启动后,就想脱缰野马难以把控

45、sleep() (斯瑞谱)和wait() (外特)有什么区别?

1、sleep是线程类的方法wait 是Object类的方法

2、sleep会自动醒来wait需要notify唤醒

3、sleep不会释放锁wait会释放锁

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

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

多线程有两种实现方法,分别是继承Thread类与实现Runnable接口

同步的实现方面有三种:

1、同步代码块

2、同步方法

3、Lock

49、启动一个线程是用run()还是start()? .

Start()(斯达特)

50、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

分几种情况:

1.其他方法前是否加了synchronized关键字,如果没加,则能。

2.如果这个方法内部调用了wait,则可以进入其他synchronized方法。

3.如果其他个方法都加了synchronized关键字,并且内部没有调用wait,则不能。51、线程的基本概念、线程的基本状态以及状态之间的关系

线程就是进程中的一个执行线路。

新建new Thread(); 就绪:thread.start(); 运行,阻塞,挂起,结束。

创建一个线程,这时状态为新建,当调用start方法后转为就绪,再由线程调度器将就绪状态转为运行状态,遇到synchronized语句后,可能由运行状态改为阻塞状态,当获得synchronized锁后由阻塞状态转为运行,这时调用wait方法转为挂起状态。当线程关联的代码执行完成后。线程转为结束。

52、简述synchronized和java.util.concurrent.locks.Lock的异同?

主要相同点:Lock(拉克)能完成synchronized所实现的所有功能

主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。54、ArrayList和Vector的区别

ArrayList和Vector都实现了List接口。

ArrayList是线程不安全的,Vector是线程安全的。

ArrayList的增长方式为*3/2+1 Vector的增长方式为*2,Vector还可以设置增长量。55、HashMap和Hashtable的区别

Hashtable和HashMap都实现了Map接口。

Hashtable是线程安全的,HashMap是线程不安全的。

Hashtable不允许键值为null,HashMap允许。

Hashtable自JDK1.0就有了,HashMap到1.2才出来。

Map中有2个方法分别是containsKey(康腾思Key)和containsValue;Hashtable中还有个contains方法,容易让人误解,HashMap没有。

56、List 和Map 区别?

List是存储单列数据的有序集合,允许重复。而Map是键值对双列数据的集合。键不允许重复,值可以重复。

57、List, Set, Map是否继承自Collection接口?

Collection(克莱克神)是集合类的顶级接口,其子接口分别是List和Set

List下有ArrayList,LinkedList Set下有HashSet TreeSet

Collection和Map没有关系,Map是HashMap的父接口

58、List、Map、Set三个接口,存取元素时,各有什么特点?

List以特定的次序来持有元素,允许重复。

Set无法拥有重复元素,内部排序。

Map保存key-value值,key不可重复,value可重复。

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

ArrayList和Vector都是使用数组存储数据。查找快,插入慢。由于Vector是线程安全的,所以性能上比ArrayList差。

LinkedList是链表结构。插入快,查找慢。

60、去掉一个Vector集合中重复的元素

最简单的方式:HashSet set = new HashSet(vector);

61、Collection 和Collections的区别。

Collection是集合类的顶级接口,而Collections是集合类的辅助类,如:将一个数组的元素copy到另一个集合。

62、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

equals,区别见11题

63、你所知道的集合类都有哪些?主要方法?

集合类有(画集合类的体系结构)

ArrayList的主要方法:add,get,remove,contains,indexOf,isEmpty,toArray,iterator

LinkedList的主要方法:add,get,remove,addFirst,addLast,getFirst,getLast,iterator

HashSet的主要方法:add,iterator,remove

HashMap的主要方法:put,get,remove,entrySet,keyset,values

64、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?

对。+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 65、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

根据功能分:输入流,输出流根据类型分:字节流,字符流

输入字节流的抽象类:InputStream 输出字节流的抽象类:OutputStream(Stream斯俊木)

输入字符流的抽象类:Reader(瑞得)输出字符流的抽象类:Writer(ruai 的)66、什么是java序列化,如何实现java序列化?

序列化就是指将内存中的一个对象存储到硬盘中或者转为字节码作网络传输。

实现Serializable(修儿奈斯啵)接口。

67、描述一下JVM加载class文件的原理机制?

JVM中类的加载是由ClassLoad er和它的子类来实现的。Java Class Loader是一个重要的Java运行时系统组件。它是一个负责查找和装入类文件的类。

68、heap(细谱)和stack(死大克)有什么区别。

stack是用来保存基本数据类型,以及变量的引用。小,速度快

heap是用来保存new 出来的对象。大,速度慢。

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

GC是Garbage Collection(垃圾回收)。内存处理是程序员容易出现问题的地方。忘记回收或错误的内存回收会导致程序或系统的不稳定甚至崩溃。Java提供的GC可以自动检测对象是否已经死亡,从而进行回收内存。

70、垃圾回收的优点和原理。并考虑2种回收机制。

垃圾回收机制使得程序员不需要关注内存的回收和释放,提高了程序的健壮性。

垃圾回收器通常是作为一个单独的低级别线程运行。当程序员创建对象时,GC就开始监测这个对象的地址、大小及使用情况,通常,GC采用有向图的方式记录和管理堆中的所有对象。通过这种方式确定哪些对象是”不可达”时,GC就有责任回收这些内存空间。

标记垃圾回收机制和分带复制垃圾回收机制。

71、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

垃圾回收器通常是作为一个单独的低级别线程运行。当程序员创建对象时,GC就开始监测这个对象的地址、大小及使用情况,通常,GC采用有向图的方式记录和管理堆中的所有对象。通过这种方式确定哪些对象是”不可达”时,GC就有责任回收这些内存空间。

可以。通过System.gc();或者Runtime.getRuntime().gc();来通知GC回收内存,但是Java 语言规范不保证GC一定会执行。

72、什么时候用assert(额色特)。

assert(断言)是程序开发中一种常见的调试方式。

73、java中会存在内存泄漏吗,请简单描述。

会。内存泄漏就是指一个不再被程序使用的对象一直占据着内存。

长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是java 中内存泄露的发生场景

75、说出一些常用的类,包,接口,请各举5个

包:(Spring)org.springframework.context,org.springframework.web.context,

org.springframework.web.context.filter,org.springframework.orm.hibernate3.support (Hibernate)org.hibernate,org.hibernate.cfg

(Struts)org.apache.struts.actions,org.apache.struts.upload

(DWR)org.directwebremoting.servlet

接口:(Spring)ApplicationContext,

(Hibernate)SessionFactory,Session,Query,Criteria,SQLQuery,Transaction

(Struts)FormFile

类:(Spring)ClassPathApplicationContext, OpenSessionInViewFilter,CharacterEncodingFilter (Hibernate)Configuration,Hibernate

(Struts)ActionForm,Action,DispatchAction,MappingDisactionAction

(DWR)DwrServlet

77、能不能自己写个类,也叫https://www.360docs.net/doc/286413892.html,ng.String?

能,但是没什么价值。

79、说明生活中遇到的二叉树,用java实现二叉树

81、写一个Singleton(省构腾)出来。

1、构造私有

2、一个静态的自身属性,初始化

3、提供共有的访问自身属性的方法

84、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。

冒泡排序,插入排序,选择排序,快速排序

90、HTTP请求的GET与POST方式的区别

1、Get方式请求的字符串长度不能超过255,Post理论上没有限制。

2、Get方式会将请求的内容在地址栏显示,Post不会。所以Get方式不安全,Post方式安全。

91、解释一下什么是servlet;

servlet就是运行在服务器端的java小程序。

92、说一说Servlet的生命周期?

出生(new),学习(init),服务(service),死亡(destroy)

93、Servlet的基本架构

public MyServlet extends HttpServlet{

public void doGet(HttpServletRequest req,HttpServletResponse resp)throws IOException,ServletException{}

public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{}

}

94、SERVLET API中forward() 与redirect()(瑞滴ruai克特)的区别?

1、forward是请求对象的方法,redirect是响应对象的方法;

2、forward是转发,地址栏不会显示转发后的路径,redirect是重定向,地址栏会显示

3、forward比redirect效率更高

4、forward是1次请求,redirect是2次请求

5、forward只能在本工程内转向,redirect可以跳转到其他工程

95、什么情况下调用doGet()和doPost()?

jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。

96、Request对象的主要方法:

setAttribute(String name,Object):设置名字为name的request的参数值

getAttribute(String name):返回由name指定的属性值

getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组

getCharacterEncoding():返回请求中的字符编码方式

getContentLength():返回请求的Body的长度

getHeader(String name):获得HTTP协议定义的文件头信息

getHeaders(String name):返回指定名字的request Header的所有值,结果是一个枚举

的实例

getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例

getInputStream():返回请求的输入流,用于获得请求中的数据

getMethod():获得客户端向服务器端传送数据的方法

getParameter(String name):获得客户端传送给服务器端的有name指定的参数值

getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚

举的实例

getParametervalues(String name):获得有name指定的参数的所有值

getProtocol():获取客户端向服务器端传送数据所依据的协议名称

getQueryString():获得查询字符串

getRequestURI():获取发出请求字符串的客户端地址

getRemoteAddr():获取客户端的IP地址

getRemoteHost():获取客户端的名字

getSession([Boolean create]):返回和请求相关Session

getServerName():获取服务器的名字

getServletPath():获取客户端所请求的脚本文件的路径

getServerPort():获取服务器的端口号

removeAttribute(String name):删除请求中的一个属性

97、forward 和redirect的区别

98、request.getAttribute() 和request.getParameter() 有何区别?

1、request.getParameter() 从请求中的参数中取值;request.getAttribute() 从请求的作用域中取值

2、request.getParameter() 返回String类型; request.getAttribute()返回Object类型

99、jsp有哪些内置对象?作用分别是什么? 分别有什么方法?

JSP共有以下9个内置的对象:

request----用户端请求,此请求会包含来自GET/POST请求的参数

response----网页传回用户端的回应

pageContext----网页的属性是在这里管理

session----与请求有关的会话期

application servlet 正在执行的内容

out----用来传送回应的输出

config---- servlet的构架部件

page----JSP网页本身

exception----针对错误网页,未捕捉的例外

100、jsp有哪些动作?作用分别是什么?

JSP共有以下6种基本动作

jsp:include:在页面被请求的时候引入一个文件。

jsp:useBean:寻找或者实例化一个JavaBean。

jsp:setProperty:设置JavaBean的属性。

jsp:getProperty:输出某个JavaBean的属性。

jsp:forward:把请求转到一个新的页面。

jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记

101、JSP的常用指令

page指令属性: language(指示使用什么语言编译JSP网页,暂时只支持Java语言,默认java)、extends(定义JSP网页产生的Servlet继承的父类)、import(同Java的import)、session(设置当前网页是否可以使用Session对象,默认为true)、buffer(设置输出流是否有缓冲区,默认为8KB)、autoFlush(设置是否自动清除缓冲区,缓冲区如果溢出会产生异常,默认true)、isThreadSafe(设置当前页面是否允许处理超过1个以上的请求,不建议更改,默认为true)、info(设置当前JSP网页的相关信息)、errorPage(设置一旦发生异常后重新定向哪个url)、isErrorPage(设置该JSP页面是否为异常处理的页面)、contentType(置MIME类型和编码方式:text/html;charset=GBK)、pageEncoding(设置编码方式)、isELIgnored(设置是否忽略EL表达式,默认值为false)

taglib指令

include指令

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

1、静态是指令动态是动作

2、静态只产生一个文件动态产生两个

3、静态不可以带参数动态可以带参数

4、静态不会动态更新动态可以。。

104、页面间对象传递的方法

session、cookie、隐藏表单域、url重写

105、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?

JSP 转义以后就是servlet

1、jsp后缀名是.jsp servlet的后缀名是.java

2、jsp 侧重于显示servlet侧重于逻辑

3、jsp在mvc中属于view servlet属于controller

106、MVC的各个部分都有那些技术来实现?如何实现?

MVC 是Model-View-Controller的简写."Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), "View" 是应用的表示面(由JSP页面产生),"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现.这些组件可以进行交互和重用。

107、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?

new String(str.getByte(“原编码”),”新编码”);

108、现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset

109、数据库三范式是什么?

第一范式:保证每列的原子性。

第二范式:必须要有主键[,并且其它列都依赖于该主键];

第三范式:取消传递依赖

110、说出一些数据库优化方面的经验?

1、存储优化

A、通过表空间将数据分散到不同的硬盘上

B、通过表分区分散数据,方便备份还原

2、查询优化

A、通过表分区方便查询

B、为表建立索引

C、SQL语句

111、union(优妮安)和union all(哦)有什么不同?

union去重复union all不去重复

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

存储过程就是存储在数据库中带有名字的PL/SQL块,完成一定的功能。

Create or replace procedure procName(参数in,out,in out)

As|is

Variable….

Begin

exception

end

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

Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);

System.setProperty(“jdbc.drivers”,”com.microsoft.sqlserver.jdbc.SQLServerDriver”);

DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver()); 115、、用JDBC如何调用存储过程

CallableStatement callSta = con.prepareCall (“{call 过程名}”);

callSta.execute();

116、JDBC中的PreparedStatement相比Statement的好处

速度快,可以防止sql 注入攻击。

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

加载类文件,创建类对象。注册驱动。

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

我们一般采用后台SQL语句分页

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

因为我们在操作数据库的时候,打开连接和关闭连接是耗时,耗性能,我们希望通过一种机制减少这种开销,这就是数据连接池的初衷;

J2EE服务器启动时会建立一定数量的池连接,并放入到一个池中,当我需要获得连接的时候,只需要从此池中拿到连接并标记为繁忙,用完之后放回池中并标记为空闲,这样就能提高我们的访问性能。

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

ORM就是Object Relational Mapping 对象关系映射,因为用jdbc操作数据库代码非常繁琐,ORM可以将表映射成实体,与我们的OOP编程思想完全一致的,方便程序开发。但速度比jdbc慢

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

DOM、SAX

DOM是一次性将一个文件载入内存,产生DOM树,适合多次读写操作,适合操作小型文档

SAX 是事件驱动的解析方式,它不是一次性载入整个文件,而是遇到文档开头标记等等触发事件来处理,适合解析大型文档

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

1、数据交换

2、配置文件

3、存储数据

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

import javax.xml.transform.*;

Transformer transformer = TransformerFactory.newInstance().newTransformer();

transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "gb2312");

transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, "yes");

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

127、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?

a: 两种形式dtd schema,(是给帽)

b: 本质区别:schema本身是xml的,比DTD有更精确的规则定义;

128、BS与CS的联系与区别。

C/S是Client/Server的缩写。B/S是Brower/Server的缩写,

1、硬件不同,一个是局域网,一个是广域网

2、安全不同C/S安全高B/S

3、速度不同C/S速度块

4、维护C/S不方便维护B/S方便维护

129、应用服务器与WEB SERVER的区别?

1、应用服务器处理业务逻辑,web服务器则主要是让客户可以通过浏览器进行访问。

2、应用服务器处理业务逻辑,web服务器是用于处理HTML文件的。web服务器通常

比应用服务器简单,如apache就是web服务器,Jboss就是EJB应用服务器。

应用服务器:Weblogic、Tomcat、Jboss WEB SERVER:IIS、Apache

130、应用服务器有那些?

BEA WebLogic Server,IBM WebSphere Application Server,

Oracle9i Application Server,jBoss,Tomcat

131、J2EE是什么?

J2EE是应用平台,是标准,是框架

133、请对以下在J2EE中常用的名词进行解释(或简单描述)

Web容器:能解析Jsp和Servlet的应用服务器

EJB 容器:就是能解析EJB组件的应用服务器

JNDI(Java Naming And Directory Interface) Java命名与目录接口

JMS(Java Message Service)Java 消息服务

JTA(Java Transaction API)Java事务接口

JAF(Java Action Framework)Java 安全认证框架

RMI/IIOP(Remote Method Invocation/Internet Inter Object Request Broker Protocol)远程方法调用/互联网内部对象请求代理协议

150、WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL 解释。

JAXP(Java API for XML Parsing)

JAXM(Java API for XML Messaging)

SOAP(Simple Object Access Protocol)

UDDI(Universal Description, Discovery and Integration)

WSDL(Web Services Description Language)

151、CORBA是什么?用途是什么?

CORBA(Common Object Request Broker Architecture,公共对象代理体系结构

为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案;152、流行的框架与新技术

Apache Struts,Spring Hibernate,Ibatis,

JQuery,ext,JSF

153、谈谈Struts中的Action servlet。

154、Struts优缺点

优点:简化了mvc的开发,标签库提高开发效率

缺点:1、每个action都要配一个form

2、action、form之间紧耦合

3、action与web对象也是紧耦合

4、它是单实例,多线程的,安全,速度慢

5、扩展不灵活

155、STRUTS的应用(如STRUTS架构)

Struts是采用Servlet和Jsp技术开发的Web应用程序的framework。

采用Struts能开发基于MVC设计模式的应用架构,Struts有如下的主要功能,

1、包含一个Controller Servlet,将用户的请求发送到不同的Action

2、为JSP页面提供了大量的标签库

3、支持国际化

156、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。

update()方法将游离对象转变为持久化对象,然后计划执行一条update语句。

saveOrUpdate()方法包含了save()和update(),如果传入的参数是自由对象,则调用save() 如果是游离对象,则调用update()方法

1、当数据库中的记录不存在时load()方法抛出ObjectNotFoundException()而get()返回null

2、load()默认采用的是延迟加载策略,返回的是代理对象;

get()方法总是采用立即检索策略,返回的是实际对象

157、简述Hibernate 和JDBC 的优缺点? 如何书写一个one to many 配置文件.

Hibernate其实就是对JDBC的封装。

Hibernate操作简单,性能差。

JDBC操作复杂,性能好。

158、iBatis与Hibernate有什么不同?

iBatis介于Hibernate与JDBC之间,性能比Hibernate好,操作比JDBC简单,都是持久层的框架。

159、介绍一下Hibernate的二级缓存

缓存就是指把查询出来的数据或对象保存在内存(Hashmap)中,以减少查询除数。

Session是Hibernate的一级缓存。只能是当前Session共享缓存。

SessionFactory是Hibernate的二级缓存,它可以使多个Session中共享缓存。

160、Spring 的依赖注入是什么意思? 给一个Bean 的message 属性, 字符串类型, 注入值为"Hello" 的XML 配置文件该怎么写?

161、Jdo是什么?

Java Data Object,java数据对象,比jdbc更通用

162、什么是spring的IOC AOP

163、STRUTS的工作流程!

164、怎样消除递归?

使用栈和循环。

165、UML方面

Unified Modeling Language统一建模语言,用来画用例图,静态图(包括类图,对象图和包图),行为图,交互图(顺序图,合作图),实现图,流程图

166、软件开发的

167、j2ee常用的设计模式?说明工厂模式。

工厂模式,代理模式,单例模式,责任链,观察者

168、开发中都用到了那些设计模式?用在什么场合?

工厂模式,代理模式,单例模式

170、LINUX下线程,GDI类的解释。

LINUX实现的就是基于核心轻量级进程的"一对一"线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现.

GDI类为图像设备编程接口类库

172、四种会话跟踪技术

URL重写,Cookie,Session,隐藏表单域

173、简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。

174、请用英文简单介绍一下自己.

175、请把https://www.360docs.net/doc/286413892.html,/ 首页的这一段话用中文翻译一下?

176、美资软件公司JAVA工程师电话面试题目

177、左联跟外联各指什么?有什么区别?

178、javascript怎么创建一个xml document

Java笔试题及答案

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 详解:见下面代码,很明显方法是可以和类名同名的,和构造方法唯一的区别就是,构造方法没有返回值。 package net.study; public class TestConStructor { public TestConStructor() {

} public void TestConStructor() { } public static void main(String[] args) { TestConStructor testConStructor = new TestConStructor(); testConStructor.TestConStructor(); } } 4.提供Java存取数据库能力的包是() 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 详解: java 中没有<> := 这种运算符,if else不算运算符 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是()

Java面试题带答案

J a v a面试题带答案 Document number:BGCG-0857-BTDO-0089-2022

湖南世杰Java工程师面试题 选择题: 单选题 1,以下java程序代码,执行后的结果是( ) map= ("name",null); ("name","Jack"); 0 B: null C: 1 D: 2 答案:C 2,执行以下程序后的输出结果是( ) Public class Test { Public static void main(String[] args) { StringBuffer a = new StringBuffer("A"); StringBuffer b = new StringBuffer("B"); operator(a, b);

+","+ b); } Public static void operator(StringBuffer x, StringBuffer y) { (y); y = x; } } A: A,A B: A,B C: B,B D: AB,B 答案:D 3,关于依赖注入,下列选项中说法错误的是( ) A:依赖注入能够独立开发各组件,然后根据组件间关系进行组装 B:依赖注入使组件之间相互依赖,相互制约 C:依赖注入提供使用接口编程 D:依赖注入指对象在使用时动态注入 答案:B

4,关于spring说法错误的是( ) A: spring是一个轻量级JAVA EE的框架集合 B: spring是“依赖注入”模式的实现 C: 使用spring可以实现声明事务 D: spring提供了AOP方式的日志系统 答案:D 5,要在session对象中保存属性,可以使用以下哪个语句( ) A: (“key”,”value”) B: (“key”,”value”) C: (“key”) D: (“key”) 答案:B 6,关于以下程序代码的说明正确的是( ) Public class HasStatic{ Private static int x = 100; Public static void main(String args[]){

Java工程师面试题(含答案)

1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 5、String是最基本的数据类型吗 基本数据类型包括byte、int、char、long、float、double、boolean和short。 类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 6、int 和Integer 有什么区别 Java提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int 提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与它们的类型有关。 7、String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String 类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。 8、运行时异常与一般异常有何异同 异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。 9、说出Servlet的生命周期,并说出Servlet和CGI的区别。 Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求

Java面试题大全(答案版)

1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以,但是只能有一个类用public修饰,并且用public修饰的类名与文件名要一致 2、&和&&的区别。 &和&&都可以用作逻辑与; &&还具有短路功能,即如果第一个表达式的结果为false,则不再计算第二个表达式; &还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作。 3、Java有没有goto? java中的保留字,现在没有在java中使用。 4、在JAVA中,如何跳出当前的多重嵌套循环? break+变量控制与return 5、switch是否能作用在byte(拜特)上,是否能作用在long上,是否能作用在String上? Switch可以作用在int上,而byte可以隐式转换为int 所以能作用在byte上 不能作用在long上,也不能作用在String上 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 1在java中为int数据类型,short+int=int,大类型转为小类型,编译时,会报告需要强制转换类型的错误。s1+=1不会报,因为JVM会对它特殊处理(自动强转) 7、char型变量中能不能存贮一个中文汉字?为什么? 可以,char型变量是用来存储unicode(依妮Q特)编码的,而unicode编码包含了中文,所以是可以保存的 8、编程题: 用最有效率的方法算出2乘以8等於几? 2<<3,表示将2左移3位;一个数左移几位就表示这个数乘以了2的几次方,左移运算,CPU直接支持,所以是最有效率的 9、请设计一个一百亿的计算器 思路:用两个数组分别保存两个操作数,再新建一个数组保存结果。 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 引用变量不能变 11、"=="和equals方法究竟有什么区别? ==和equals方法都可以用来比较两个对象是否是同一个对象。 ==还可以比较两个变量的值是否相等。 equals是Object类中的方法,可以由子类重写此方法,实现内容相等。 12、静态变量和实例变量的区别? 语法上不同: 静态变量前要加static关键字,实例变量不需要 程序运行时不同: 实例变量是属于某个对象的,只有创建了对象,才会为这个对象的实例变量分配空间。静态变量是属于类的,当程序加载了这个类的字节码文件,就会为静态变量分配空间,并且所有对象共享这个变量 13、是否可以从一个static方法内部发出对非static方法的调用? 不可以,非static方法需要与对象关联在一起的,而static方法调用时不需要对象,可以直接调用,也就是说调用static方法时,可能还没有创建任何实例 14、Integer与int的区别 int是java中的8种基本数据类型之一,默认值是0,Integer是int的包装类,默认值是null,即Integer可以表示未赋值和赋值为0 15、(麦死)Math.round(乱的)(11.5)等於多少? Math.round(-11.5)等於多少?

java笔试题及答案.doc

java笔试题及答案 有了下面java笔试题及答案,进行java笔试时就容易多了,请您对下文进行参考: 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package子孙类其他package public 7 7 7 7 protected 7 7 7 X friendly 7 7 X X private 7 X X X 不写时默认为friendly 2、Anonymouslnner Class (匿名内部类)是否可以exte nd s (继承)其它类,是否可以imple ment s (实现)i nterf ace (接口) 答:匿名的内部类是没有名字的内部类。不能exte n ds (继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Sta ti cNestedC las s 和Inner Clas s 的不同答: Nes tedC lass (一般是C+ +的说法),In ne rClass (—般是JAVA的说法)。J ava内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(I

nn erClass)意味着1创建一个st atic内部类的对象,不需要一个外部类对象,2不能从一个st atic内部类的一个对象访问一个外部类对象 4、和的区别 答:是位运算符,表示按位与运算,是逻辑运算符,表示遷辑与(and ) 5、Coll ect ion 和Col lect ions 的区别 答:Coll ect ion是集合类的上级接口,继承与他的接口主要有Set和List. Col lections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:asserti on (断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,a ssertion 就是在程序中的一条语句,它对一个boolea n表 达式进行检查,一个正确程序必须保证这个bool ean表达 式的值为tr ue;如果该值为fal se,说明程序己经处于不正确的状态下,系统将给出警告或退出。一般来说,

Java经典面试题大全_带答案

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.https://www.360docs.net/doc/286413892.html,ng 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的有()

java笔试题含答案

班级:_______________ 学号:______________ 姓名:___________ Java 笔试题 (可多选) 1. 下面哪些是Thread类的方法( ABD) A start() B run() C exit() D getPriority() 2. 下面关于类的说法正确的是(A) A 继承自Throwable B Serialable C 该类实现了Throwable 接口 D 该类是一个公共类 3. 下面程序的运行结果是( false ) String str1 = "hello"; String str2 = "he" + new String("llo"); == str2); 4. 下列说法正确的有( C) A. class中的constructor不可省略

B. constructor必须与class同名,但方法不能与class同名C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 5. 指针在任何情况下都可进行>, <, >=, <=, ==运算( true ) 6. 下面程序的运行结果:(B) public static void main(String args[]) { Thread t = new Thread() { public void run() { pong(); } }; (); "ping"); } static void pong() { "pong"); } A pingpong

B pongping C pingpong和pongping都有可能 D 都不输出 7. 下列属于关系型数据库的是(AB) A. Oracle B MySql C IMS D MongoDB 8. GC(垃圾回收器)线程是否为守护线程( true ) 9. volatile关键字是否能保证线程安全( false ) 10. 下列说法正确的是(AC) A LinkedList继承自List B AbstractSet继承自Set C HashSet继承自AbstractSet D WeakMap继承自HashMap 11. 存在使i + 1 < i的数吗(存在) 12. 的数据类型是(B) A float B double C Float D Double

java笔试题及答案

java笔试题及答案(必背) 来源:黄德洋的日志 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package 子孙类其他package public √√√√ protected √√√× friendly √√ × × private √××× 不写时默认为friendly 2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实 现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Static Nested Class 和Inner Class的不同 答:Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(Inner Class)意味着1创建一个static 内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象 4、&和&&的区别 答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collection 和Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的

Java开发工程师笔试题(带答案)

Java开发工程师笔试试题 (请不要在试题上留任痕迹,所有答案均写在答题纸上) 一.编程题(共26分) 1.任意写出一种排序算法。(6分) public void sort(int [] array){ //代码区 } 2.求1+2+3+..n(不能使用乘除法、for 、while 、if 、else 、switch 、case 等关键字 以及条件判断语句)(8分) public int sum(int n){ //代码区 return 0; } 3.完成下面法,输入一个整数,输出如下指定样式图案。(12分) 输入:3, 输出: 1*2*3 7*8*9 4*5*6

输入:4 输出: 1*2*3*4 9*10*11*12 13*14*15*16 5*6*7*8 public void drawNumPic(int n){ //代码区 } 二.选择题(定项选择每题3分,不定项选择每题4分,共63分) 1.在基本JAVA类型中,如果不明确指定,整数型的默认是__类型,带小数的默认是__类型?( B ) A.int float B.int double C.long float D.long double 2.只有实现了__接口的类,其对象才能序列化( A ) A.Serializable B.Cloneable https://www.360docs.net/doc/286413892.html,parable

D.Writeable 3.代码System. out. println(10 % 3 * 2);将打印出?( B ) A. 1 B.2 C.4 D.6 4.以下程序运行的结果为( A ) public class Example extends Thread{ @Override public void run(){ try{ Thread.sleep(1000); }catch (InterruptedException e){ e.printStackTrace(); } System.out.print("run"); } public static void main(String[] args){ Example example=new Example(); example.run(); System.out.print("main"); } } A.run main B.main run C.main D.run E.不能确定 5.下面有关java实例变量,局部变量,类变量和final变量的说法,错误的是?( B ) A.实例变量指的是类中定义的变量,即类成员变量,如果没有初始化,会有默认值

javaWeb面试题(含答案)

1、jsp和servlet的区别、共同点、各自应用的围?? JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层. 2、cookie和session的作用、区别、应用围,session的工作原理??? Cookie:主要用在保存客户端,其值在客户端与服务端之间传送,不安全,存储的数据量有限。 Session:保存在服务端,每一个session在服务端有一个sessionID作一个标识。存储的数据量大,安全性高。占用服务端的存资源。 3、jstl是什么?优点有哪些?? JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。优点有: 1、在应用程序服务器之间提供了一致的接口,最大程序地提高了WEB应用在各应用服务器之间的移植。 2、简化了JSP和WEB应用程序的开发。 3、以一种统一的方式减少了JSP中的scriptlet代码数量,可以达到没有任何scriptlet 代码的程序。在我们公司的项目中是不允许有任何的scriptlet代码出现在JSP中。 4、允许JSP设计工具与WEB应用程序开发的进一步集成。相信不久就会有支持JSTL的IDE 开发工具出现。 4、j2ee的优越性主要表现在哪些方面?MVC模式 a、 J2EE基于JAVA 技术,与平台无关 b、 J2EE拥有开放标准,许多大型公司实现了对该规支持的应用服务器。如BEA ,IBM,ORACLE

最新最新java笔试题及答案

一.选择题(1-10题每题2分,11-15题每题4分) 1.下面关于Java语言说法错误的是:() A.java语言是完全面向对象的 B。java语言支持多继承 C.java语言支持多线程 D。java语言最早是为消费电子产品领域设计的 2.下面标识符中正确的是:() A.*123 B。12java C.continue D。java$next 3.下列关于注释语句的描述中,正确的一项是() A。以//开始的是多行注释语句 B。以/*开始,*/结束的是单行注释语句 C。以/**开始,*/结束的是可以用于生成帮助文档的注释语句 D。以/**开始,*/结束的是单行注释语句 4.为了区分重载多态中同名的不同方法,要求()。 A)形式参数个数或者类型不同 B)返回值类型不同 C)调用时用类名或对象名做前缀 D)形式参数名称不同 5.下面定义数组的格式中正确的是:() A.int a[10] B。int a=new int[10] C.int []a=new int[5] D.int a[] 6.下面说法中不正确的是:() A.类是对象的抽象,对象是类的实例 B。类是组成java程序的最小的单位 C.java语言支持多继承 D。java一个程序中只能有一个public类 7.定义类时,不可能用到的保留字是()。 A) private B) class C) extends D) implements 8.为 AB 类的定义一个公共的构造函数,该方法头的形式为()

A.void AB( ) B。public void method( ) C.public method ( ) D。public AB( ) 9.下面说法中不正确的是:() A.java中一个类只允许实现一个接口 B。抽象类中允许有非抽象方法的存在 C.类变量(实例变量)可以直接用类名调用 D。通过super可以调用基类的构造函数 10.容器JFrame 默认使用的布局编辑策略是() A.BorderLayout B。FlowLayout C。GridLayout D。CardLayout 11.以下哪个表达式是不合法的() A.String x=”Hello”; int y=9; x+=y; B.String x=”Hello”; int y=9; if(x= =y) { } C.String x=”Hello”; int y=9; x=x+y; D.String x=null; int y=(x!=null)&&(x.length()>0) 12.class person { public int addvalue(int a,int b) { int s; s=a+b; return s; } }

北大青鸟推荐:Java精选笔试题(含答案解析)

北大青鸟推荐:Java精选笔试题(含答案解析)如果你是计算机专业出生,但是还没有找到工作的话,你就得补补技术了,一些关于面试、笔试的题要多刷一刷。有可能你知道答案,但是由于语言组织能力有所欠缺,所以面试官的印象不是很好,下面分享一些Java精选的鄙视题,希望对面试这者有帮助。 1,volatile关键字是否能保证线程安全?() 答案:否 volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对volatile的写操作,无法保证线程安全。 假如线程1,线程2 在进行read,load 操作中,发现主内存中count的值都是5,那么都会加载这个最新的值,在线程1对count进行修改之后,会write到主内存中,主内存中的count变量就会变为6;线程2由于已经进行read,load操作,在进行运算之后,也会更新主内存count的变量值为6;导致两个线程及时volatile关键字修改之后,还是会存在并发的情况。 2,下面哪个流类属于面向字符的输入流( ) A、BufferedWriter B、FileInputStream C、ObjectInputStream D、InputStreamReader 答案:D Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式。

面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和OutputStream的子类。 面向字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是Reader和Writer的子类。 3,Java能不能不通过构造函数创建对象() A、能 B、不能 答案:A Java创建对象的几种方式: (1) 用new语句创建对象,这是最常见的创建对象的方法。 (2) 运用反射手段,调用https://www.360docs.net/doc/286413892.html,ng.Class或者https://www.360docs.net/doc/286413892.html,ng.reflect.Constructor类的newInstance()实例方法。 (3) 调用对象的clone()方法。 (4) 运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法。 (1)和(2)都会明确的显式的调用构造函数;(3)是在内存上对已有对象的影印,所以不会调用构造函数;(4)是从文件中还原类的对象,也不会调用构造函数。 4,下列哪个叙述是正确的() A.子类继承父类的构造方法。 B.abstract类的子类必须是非abstract类。 C.子类继承的方法只能操作子类继承和隐藏的成员变量。 D.子类重写或新增的方法也能直接操作被子类隐藏的成员变量。 答案:C 子类是不继承父类的构造方法的,而是必须调用其父类的构造方法。

Java面试题(带答案)

湖南世杰Java工程师面试题选择题: 单选题 1,以下java程序代码,执行后的结果是( ) java.util.HashMap map=newjava.util.HashMap(); map.put("name",null); map.put("name","Jack"); System.out.println(map.size()); A: 0 B: null C: 1 D: 2 答案:C 2,执行以下程序后的输出结果是( ) Public class Test { Public static void main(String[] args) { StringBuffer a = new StringBuffer("A"); StringBuffer b = new StringBuffer("B"); operator(a, b); System.out.println(a +","+ b); } Public static void operator(StringBuffer x, StringBuffer y) { x.append(y); y = x; }

} A: A,A B: A,B C: B,B D: AB,B 答案:D 3,关于依赖注入,下列选项中说法错误的是( ) A:依赖注入能够独立开发各组件,然后根据组件间关系进行组装 B:依赖注入使组件之间相互依赖,相互制约 C:依赖注入提供使用接口编程 D:依赖注入指对象在使用时动态注入 答案:B 4,关于spring说法错误的是( ) A: spring是一个轻量级JAVA EE的框架集合 B: spring是“依赖注入”模式的实现 C: 使用spring可以实现声明事务 D: spring提供了AOP方式的日志系统 答案:D 5,要在session对象中保存属性,可以使用以下哪个语句( ) A: session.getAttribute(“key”,”value”) B: session.setAttribute(“key”,”value”) C: session.setAttribute(“key”) D: session.getAttribute(“key”) 答案:B 6,关于以下程序代码的说明正确的是?( ) Public class HasStatic{ Private static int x = 100;

java笔试题大集合及答案Java基础方面

Java基础方面: 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package 子孙类其他package public √√√√ protected √√√× friendly √√×× private √××× 不写时默认为friendly 2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Static Nested Class 和Inner Class的不同 答:Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象 4、&和&&的区别 答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collection 和 Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确

Java企业面试题填空题及标准答案

Java企业面试题填空题及答案

————————————————————————————————作者:————————————————————————————————日期:

Java填空题 1 一个Java源程序是由若干个类组成。 2 class 是Java的关键字,用来定义类。 3 Java应用程序中有多个类时,java命令后的类名必须是包含了main 方法的那个类的名字。 4 一个Java应用程序必须且只有一个类含有main 方法。 5 在一个Java应用程序中main方法必须被说明为public static void 。 6 Java中所有程序都使用方法,应用程序以main 方法开始。 7 Java源文件中有多个类,但只能有一个类是public 类。 8 Java源程序编译后生成的字节码文件扩展名为class 。 9 用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。 10 Java语言规定标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字。 11 关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把这类词作为名字来用。 12 使用关键字boolean 来定义逻辑变量。 13 关键字就是Java语言中已经被赋予特定意义的一些单词。 14 结构化程序设计的基本数据类型包括逻辑类型、整数类型、字符类型、浮点类型。 15 Java中byte型数组在内存中的存储形式是补码。 16 对于int型变量,内存分配 4 个字节。 17 对于byte型变量,内存分配 1 个字节。 18 对于long型变量,内存分配8 个字节。 19 对于short型变量,内存分配 2 个字节。 20 结构化程序设计的基本数据类型包括整数类型、逻辑类型、字符类型、浮点类型。 21 使用关键字char 来定义字符变量。 22 结构化程序设计的基本数据类型包括字符类型、逻辑类型、整数类型、浮点类型。 23 java中,浮点型变量的类型有float和double 两种。 24 对于float型变量,内存分配 4 个字节。 25 对于double型变量,内存分配8 个字节。 26 结构化程序设计的基本数据类型包括浮点类型、逻辑类型、整数类型、字符类型。 27 Java使用Unicode 字符集。 28 混合运算中不同类型的数据先转化为同一类型,然后运算,其中不包括逻辑类型和字符类型。 29 混合运算中不同类型的数据先转化为同一类型,然后运算,其中不包括字符类型、逻辑类型。 30 当把级别高的变量的值赋予级别低的变量时,必须使用强制类型转换。 31 Java中关系运算符的运算结果是boolean 型。 32 Java中逻辑运算符的操作元必须是boolean 型数据。 33 整数类型数据在内存中以二进制的方式表示。 34 Java语言的控制语句有3种类型,即条件语句、循环语句、和转移语句。 35 Java中有两种类型的控制语句即if和switch 。 36 Java语言的控制语句有3种类型,即条件语句、循环语句、和转移语句。

2017年最新Java经典笔试面试题笔试题目及答案

2017年最新Java经典笔试面试题 2017年最新Java经典笔试面试题 想要成为java程序员可不是容易的事情,下面YJBYS小编为大家精心搜集了关于Java 经典笔试的面试题,欢迎大家参考借鉴,希望可以帮助到大家! 一.选择题(共50题,每题1.5分,共75分。多选题选不全或选错都不得分。) 1. 以下属于面向对象的特征的是(C,D)。(两项) A) 重载 B) 重写 C) 封装 D) 继承 2. 以下代码运行输出是(C) public class Person{ private String name=”Person”; int age=0; } public class Child extends Person{

public String grade; public static void main(String[] args){ Person p = new Child(); System.out.println(https://www.360docs.net/doc/286413892.html,); } } A) 输出:Person B) 没有输出 C) 编译出错 D) 运行出错 3. 在使用super 和this关键字时,以下描述正确的是(A) A) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过 B) super()和this()不一定要放在构造方法内第一行 C) this()和super()可以同时出现在一个构造函数中

D) this()和super()可以在static环境中使用,包括static方法和static语句块 4. 以下对封装的描述正确的是(D) A) 只能对一个类中的方法进行封装,不能对属性进行封装 B) 如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用 C) 封装的意义不大,因此在编码时尽量不要使用 D) 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性 5. 以下对继承的描述错误的是(A) A) Java中的继承允许一个子类继承多个父类 B) 父类更具有通用性,子类更具体 C) Java中的继承存在着传递性 D) 当实例化子类时会递归调用父类中的构造方法 6. 以下程序的运行结果是(D) class Person{ public Person(){ System.out.println(“this is a Person”);

(完整版)2019最新Java面试题,常见面试题及答案汇总

ava最新常见面试题+ 答案汇总 1、面试题模块汇总 面试题包括以下十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示: 可能对于初学者不需要后面的框架和JVM 模块的知识,读者朋友们可根据自己的情况,选择对应的模块进行阅读。 适宜阅读人群 需要面试的初/中/高级java 程序员 想要查漏补缺的人 想要不断完善和扩充自己java 技术栈的人 java 面试官 具体面试题 下面一起来看208 道面试题,具体的内容。 一、Java 基础 1.JDK 和JRE 有什么区别? 2.== 和equals 的区别是什么? 3.两个对象的hashCode()相同,则equals()也一定为true,对吗? 4.final 在java 中有什么作用? 5.java 中的Math.round(-1.5) 等于多少? 6.String 属于基础的数据类型吗? 7.java 中操作字符串都有哪些类?它们之间有什么区别? 8.String str="i"与String str=new String(“i”)一样吗? 9.如何将字符串反转? 10.String 类的常用方法都有那些? 11.抽象类必须要有抽象方法吗? 12.普通类和抽象类有哪些区别? 13.抽象类能使用final 修饰吗?

14.接口和抽象类有什么区别? 15.java 中IO 流分为几种? 16.BIO、NIO、AIO 有什么区别? 17.Files的常用方法都有哪些? 二、容器 18.java 容器都有哪些? 19.Collection 和Collections 有什么区别? 20.List、Set、Map 之间的区别是什么? 21.HashMap 和Hashtable 有什么区别? 22.如何决定使用HashMap 还是TreeMap? 23.说一下HashMap 的实现原理? 24.说一下HashSet 的实现原理? 25.ArrayList 和LinkedList 的区别是什么? 26.如何实现数组和List 之间的转换? 27.ArrayList 和Vector 的区别是什么? 28.Array 和ArrayList 有何区别? 29.在Queue 中poll()和remove()有什么区别? 30.哪些集合类是线程安全的? 31.迭代器Iterator 是什么? 32.Iterator 怎么使用?有什么特点? 33.Iterator 和ListIterator 有什么区别? 34.怎么确保一个集合不能被修改?

相关文档
最新文档