CoreJava部分

1、面向对象的特征有哪些方面?
2、作用域public,private,protected,以及不写时的区别?
3、String 是最基本的数据类型吗?
4、float 型float f=3.4是否正确?
5、语句float f=1.3;编译能否通过?
6、short s1 = 1; s1 = s1 + 1;有什么错?short s1 = 1; s1 += 1;有什么错?
7、Java 有没有goto?
8、int 和Integer 有什么区别?
9、&和&&的区别?
10、简述逻辑操作(&,|,^)与条件操作(&&,||)的区别?
11、heap 和stack 有什么区别?
12、Math.round(11.5) 等于多少? Math.round(-11.5)等于多少?
13、swtich 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?
14、编程题: 用最有效率的方法算出2 乘以8 等於几?
15、有没有length()这个方法? String 有没有length()这个方法?
16、在JAVA 中,如何跳出当前的多重嵌套循环?
17、构造器Constructor 是否可被override?
18、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
19、是否可以继承String 类?
20、以下二条语句返回值为true 的有:
21、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
22、我们在web 应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
23、String 和StringBuffer 的区别?
24、String, StringBuffer StringBuilder 的区别。
25、Overload 和Override 的区别。Overloaded 的方法是否可以改变返回值的类型?
26、定义类A 和类B 如下:
27、描述一下JVM 加载class 文件的原理机制?
28、char 型变量中能不能存贮一个中文汉字?为什么?
29、abstract class 和interface 有什么区别?
30、Static Nested Class 和Inner Class 的不同?
31、java 中会存在内存泄漏吗,请简单描述。
32、abstract 的method 是否可同时是static,是否可同时是native,是否可同时是synchronized?
33、静态变量和实例变量的区别?
34、是否可以从一个static 方法内部发出对非static 方法的调用?
35、写clone()方法时,通常都有一行代码,是什么?
36、GC 是什么? 为什么要有GC?
37、垃圾回收的优点和原理。并考虑2 种回收机制。
38、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
39、String s=new String(―xyz‖);创建了几个String Object?
40、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
41、Java 的接口和C++的虚类的相同和不同处。
42、一个―.java‖源文件中是否可以包含多个类(不是内部类)?有什么限制?
43、说出一些常用的类,包,接口,请各举5 个。
44、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类?是否可以implements(实现)interface(接口)?
45、内部类可以引用他包含类的成员吗?有没有什么限制?
46、java 中实现多态的机制是什么?
47、在java 中一个类被声明为final 类型,表示了什么意思?
48、下面哪些类可以被继承?
49、指出下面程序的运行结果: 【基础】
50、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
51、内部类的实现方式?
52、关于内部类:
53、数据类型之间的转换:
54、字符串操作:如何实现字符串的反转及替换?
55、编码转换:怎样将GB2312 编码的字符串转换为ISO-8859-1 编码的字符串?
56、写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔.
57、写一个函数,2 个参数,1 个字符串,1 个字节数,返回截取的字符串,要求字符串中的中文不能出现乱码:
58、日期和时间:
1)如何取得年月日、小时分秒?
2)如何取得从1970 年到现在的毫秒数?
3)如何取得某个日期是当月的最后一天?
4)如何格式化日期?
59、Java 编程,打印昨天的当前时刻。
60、java 和javasciprt 的区别。
61、什么时候用assert?
62、error和exception有什么区别
63、ArrayList和Vector的区别
64、Collection 和 Collections的区别
65、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别
66、HashMap和Hashtable的区别
67、说出ArrayList,Vector, LinkedList的存储性能和特性
68、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
69、文件读写的基本类
70、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
71、启动一个线程是用run()还是start()?
72、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
73、线程的基本概念、线程的基本状态以及状态之间的关系
74、sleep() 和 wait() 有什么区别?
75、socket通信(tcp/udp区别及JAVA的实现方式)
76、什么是java序列化,如何实现java序列化?
77、简述synchronized和java.util.concurrent.locks.Lock的异同 ?
78、abstract class Name { private String name; public abstract boolean isStupidName(String name) {}}大侠们,这有何错误?
79、public class Something { void doSomething () { private String s = ""; int l = s.length(); } }有错吗?
80、abstract class Something { private abstract String doSomething ();}这好像没什么错吧?
81、public class Something { public int addOne(final int x) { return ++x; }}这个比较明显
82、public class Something
83、class Something { int i; public void doSomething() { System.out.println("i = " + i); }} 有什么错呢? 看不出来啊
84、class Something { final int i; public void doSomething() { System.out.println("i = " + i); }}和上面一题只有一个地方不同,就是多了一个final。这难道就错了吗?
85、public class Something { public static void main(String[] args) { Something s = new Something(); System.out.println("s.doSomething() returns " + doSomething()); } public String doSomething() { return "Do something ..."; }} 看上去很完美
86、此处,Something类的文件名叫OtherThing.javaclass Something { private static void main(String[] something_to_do) { System.out.println("Do something ..."); }} 这个好像很明显。
87、 interface A{ int x = 0;} class B{ int x =1;} class C extends B implements A { public void pX(){ System.out.println(x); } public static void main(String[] args) { new C().pX(); }}


在数据库中条件查询速度很慢的时候,如何优化
1.建索引
2.减少表之间的关联
3.优化sql,尽量让sql很快定位数据,不要让sql做全表查询,应该走索引
4.简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据

jsp

jsp有哪些内置对象?作用分别是什么?
JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): 
request 用户端请求,此请求会包含来自GET/POST请求的参数 
response 网页传回用户端的回应 
pageContext 网页的属性是在这里管理 
session 与请求有关的会话期 
application servlet 正在执行的内容 
out 用来传送回应的输出 
config servlet的构架部件 
page JSP网页本身 
exception 针对错误网页,未捕捉的例外
 

ajax 

1.AJAX的全称是什么? 介绍一下AJAX
AJAX的全称是Asynchronous JavaScript And XML.
AJAX是2005年由Google发起并流行起来的编程方法, 
AJAX不是一个新的编程语言,但是它是一个使用已有标准的新的编程技术。
使用AJAX可以创建更好,更快,更用户界面友好的Web应用。
AJAX技术基于Javascript和HTTP Request.

2.二级联动

3.AJAX都有哪些有点和缺点?
 1、最大的一点是页面无刷新,用户的体验非常好。 
 2、使用异步方式与服务器通信,具有更加迅速的响应能力。 
 3、可以把以前一些服务器负担的工作转嫁到客户端,
  利用客户端闲置的能力来处理,减轻服务器和带宽的负担,
  节约空间和宽带租用成本。并且减轻服务器的负担,
  ajax的原则是―按需取数据‖,可以最大程度的减少冗余请求,
  和响应对服务器造成的负担。
 4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。 
ajax的缺点 
 1、ajax不支持浏览器back按钮。 
 2、安全问题 AJAX暴露了与服务器交互的细节。 
 3、对搜索引擎的支持比较弱。 
 4、破坏了程序的异常机制。 
 5、不容易调试。

 

servlet

1.Servlet的生命周期?
2.forward() 与redirect()的区别
3.doGet()和doPost()
4.JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
  JSP是Servlet技术的扩展,本质上是Servlet的简易方式,
  更强调应用的外表表达。JSP编译后是"类servlet"。
  Servlet和JSP最主要的不同 点在于,Servlet的应用逻辑是在Java文件中,
  并且完全从表示层中的HTML里分离开来。
  而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。
  JSP侧重于视图,Servlet主要用于控制逻辑
5.四种会话跟踪技术
会话作用域ServletsJSP 
        页面描述page否是代表与一个页面相关的对象和属性。
一个页面由一个编译好的 
  Java servlet 类(可以带有任何的 include 指令,
但是没有 include 动作)表示。
这既包括 servlet 又包括被编译成 servlet 的 JSP 页面
  request是是代表与 Web 客户机发出的一个请求相关的对象和属性。
一个请求可能跨越多个页面,
涉及多个 Web 组件(由于 forward 指令和 include 动作的关系) 
  session是是代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。
一个 Web 会话可以也经常会跨越多个客户机请求 
  application是是代表与整个 Web 应用程序相关的对象和属性。
这实质上是跨越整个 Web 应用程序,
包括多个页面、请求和会话的一个全局作用域
6.、JAVA SERVLET API中forward() 与redirect()的区别?

EJB

EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别?
规范内容包括Bean提供者,应用程序装配者,EJB容器,EJB配置工具,EJB服务提供者,系统管理
员。这里面,EJB容器是EJB之所以能够运行的核心。EJB容器管理着EJB的创建,撤消,激活,去活,与
数据库的连接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS.....


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组件。


UML方面
标准建模语言UML。
用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图,


开发中都用到了那些设计模式?用在什么场合?
每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过
这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。主要用到了MVC的设计模
式。用来开发JSP/Servlet或者J2EE的相关应用。简单工厂模式等。


WEB容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接更容器
中的环境变量接口交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:
TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION
标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。


应用服务器与WEB SERVER的区别?
应用服务器:Weblogic、Tomcat、Jboss
WEB SERVER:IIS、 Apache


应用服务器有那些?
BEA WebLogic Server,IBM WebSphere Application Server,Oracle9i Application Server,jBoss,Tomcat


EJB容器:Enterprise java bean 容器。更具有行业领域特色。
他提供给运行在其中的组件EJB各种管理功能。
只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。
并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。


EJB容器提供的服务
主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和并发行管理等服务。


EJB的角色和三个对象
EJB角色主要包括Bean开发者 应用组装者 部署者 系统管理员 EJB容器提供者 EJB服务器提供者
三个对象是Remote(Local)接口、Home(LocalHome)接口,Bean类


EJB的几种类型
会话(Session)Bean ,实体(Entity)Bean 消息驱动的(Message Driven)Bean
会话Bean又可分为有状态(Stateful)和无状态(Stateless)两种
实体Bean可分为Bean管理的持续性(BMP)和容器管理的持续性(CMP)两种


说说你所熟悉或听说过的j2ee中的几种常用模式(EJB架构的设计)?及对设计模式的一些看法
Session Facade Pattern:使用SessionBean访问EntityBean
Message Facade Pattern:实现异步调用
EJB Command Pattern:使用Command JavaBeans取代SessionBean,实现轻量级访问
Data Transfer Object Factory:通过DTO Factory简化EntityBean数据提供特性
Generic Attribute Access:通过AttibuteAccess接口简化EntityBean数据提供特性
Business Interface:通过远程(本地)接口和Bean类实现相同接口规范业务逻辑一致性
EJB架构的设计好坏将直接影响系统的性能、可扩展性、可维护性、组件可重用性及开发效率。项目越
复杂,项目队伍越庞大则越能体现良好设计的重要性


存储过程和函数的区别
存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,
用户可以调用存储过程,而函数通常是数据库已定义的方法,
它接收参数并返回某种类型的值并且不涉及特定用户表。

触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。
事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取
事件之前和新的字段值。
语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。


事务是什么?
事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,
称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:
原子性
事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。
一致性
事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修
改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是
正确的。
隔离性
由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么
是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。
这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事
务执行的状态相同。
持久性
事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持


什么是Java序列化,如何实现Java 序列化?
序列化就是一种用来处理对象流的机制,
所谓对象流也就是将对象的内容进行流化。
可以对流化后的对象进行读写操作,
也可将流化后的对象传输于网络之间。
序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现Serializable接口,
该接口没有需要实现的方法,implements Serializable只是
为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)
来构造一个ObjectOutputStream(对象流)对象,
接着,使用ObjectOutputStream 对象的writeObject(Object obj)
方法就可以将参数为obj 的对象写出(即保存其状态),
要恢复的话则用输入流。


实现字符串的反转,如:输入abc,输出cba

public static String reverse(String s){
int length=s.length();
StringBuffer result=new StringBuffer(length);
for(int i=length-1;i>=0;i--)
result.append(s.charAt(i));
return result.toString();
}