[Java类面试题目]1.xml在项目中的作用 2.s-EJB 与 e-EJB的区别 3.会话面的作用 4.cmp与bmp的优缺点 5.j2me程序的必需的几个部分 6.c/s与b/s的区别 7.构建一个connect pool,然后再调用它, 8.j...+阅读
JAVA面试题目
一、抽象策略角色: public interface SuperCash { public double acceptCash(); }
二、具体策略角色: a..策略角色1(普通时间) public class NormalCash implements SuperCash{ Override public double acceptCash() { return 0.2; } } b.策略角色2(5-8点) public class MorningCash implements SuperCash{ Override public double acceptCash() { return 0.4; } } c.策略角色3(7-9点) public class ForenoonCash implements SuperCash{ Override public double acceptCash() { return 0.3; } }
三、环境角色 public class CashContext { SuperCash superCash = null; public CashContext(int time) { if(time>=5&time=7&time
JAVA面试题:3道问答题!
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
在C++中,一个类被允许继承多个类。但是在Java以后的语言不被允许。
这样,如果想继承多个类时便非常困难。所以开发方想出了新办法:接口。
一个接口内,允许包含变量、常量等一个类所包含的基本内容。但是,接口中的函数不允许设定代码,也就意味着不能把程序入口放到接口里。由上可以理解到,接口是专门被继承的。接口存在的意义也是被继承。和C++里的抽象类里的纯虚函数是相同的。不能被实例化。
3.import java.util.*;
public class Test{
public static void main(String[] args){
int[] list=new int[1000000];
int i =0;
for (; i <1000000; i++) {
list[i]=i;
}
list[600000]=90000;
Set set=new HashSet();
for(i=0;i { if(!set.add(list[i])) break;} System.out.println(i); System.out.println("the same number is "+list[i]); } } 如果说是一个企业急需招人,我想那就得多准备一些框架方面的知识,毕竟做项目是用的框架!下面进入主题:大概的流程是这样吧 框架——》Java基础——》数据库相关点——》页面注意技巧 一:框架——》 1,)Struts2是如何实现MVC的?M(模型):这个一般不由Struts来做V (视图):视图也不算struts的强项,但是struts提供优秀的标签来支持视图的展示,利用标签,可以将数据合理的展示给用户控制器:struts的重要功能,提供struts的过滤器,拦截用户的请,查找struts配置文件,为其匹配一个对应的Action,这个Action负责调用模型,获得数据,然后对数据做部分处理,接着Action再将处理后的数据,为其选择一个视图进行输出。 2) Struts工作机制?为什么要使用Struts? 工作机制: Struts的工作流程: 在web应用启动时就会加载初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象当ActionServlet接收到一个客户请时,将执行如下流程. (1)检索和用户请匹配的ActionMapping实例,如果不存在,就返回请路径无效信息; (2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中; (3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法; (4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象, 就表示表单验证成功; (5)ActionServlet根据ActionMapping所包含的映射信息决定将请转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法; (6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请转发给ActionForward对象指向的JSP组件; (7)ActionForward对象指向JSP组件生成动态网页,返回给客户;为什么要用: JSP、Servlet、JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。但用这些技术构建的系统非常的繁乱,所以在此之上,我们需要一个规则、一个把这些技术组织起来的规则,这就是框架,Struts便应运而生。基于Struts开发的应用由3类组件构成:控制器组件、模型组件、视图组件 Struts的validate框架是如何验证的? 在struts配置文件中配置具体的错误提示,再在FormBean中的validate()方法具体调用。 3)spring工作机制及为什么要用? 1.spring mvc请所有的请都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请进行真正的处理工作。 2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请的Controller. 3.DispatcherServlet请请提交到目标Controller 4.Controller进行业务逻辑处理后,会返回一个ModelAndView 5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象 6.视图对象负责渲染返回给客户端。为什么用: AOP 让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。使用 AOP 后,公共服务 (比 如日志、持久性、事务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。IOC 允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。正如单词 倒置 所表明的,IOC 就像反 过来的 JNDI。没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straight construction),每一个对象都是用 其协作对象构造的。因此是由容器管理协作对象(collaborator)。 4)Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory为什么要用: 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。2. Hibernate是如何延迟加载? 1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection)2. Hibernate3 提供了属性的延迟加载功能当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many。 5)Hibernate的一级缓存与二级缓存的区别? 一级缓存就是Session级别的缓存,一个... 第一,谈谈final, finally, finalize的区别。 final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally 是异常处理语句结构的一部分,表示总是执行。 finalize 是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 可以继承其他类或完成其他接口,在swing编程中常用此方式。 第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。 Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。 第四,&和&的区别。 &是位运算符,表示按位与运算,&是逻辑运算符,表示逻辑与(and)。 第五,HashMap和Hashtable的区别。 HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。 第六,Collection 和 Collections的区别。 Collection是集合类的上级接口,继承与他的接口主要有Set 和List.Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 第七,什么时候用assert。 Java1.4新增关键字(语法),用于测试boolean 表达式状态,可用于调试程序。使用方法 assert ,表示如果表达式为真(true),则下面的语句执行,否则抛出AssertionError。 另外的使用方式assert boolean表达式,表示如果表达式为真,后面的表达式忽略,否则后面表达式的值用于AssertionError的构建参数。注意编译时要增加 -source 1.4 参数,否则报错。运行时要增加 –ea参数,否则assert行被忽略。 第八,GC是什么?为什么要有GC? GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。 第九,String s = new String("xyz"); 创建了几个String Object? 2个。首先在数据段创建一个"xyz"对象,再根据该对象在堆区创建一个新的对象,在栈区创建变量s,该变量是指向堆区对象的引用。 所以一共两个String对象。 第十,Math.round(11.5)等於多少 Math.round(-11.5)等於多少? Math.round(11.5)==12 Math.round(-11.5)==-11 round方法返回与参数最接近的长整数,参数加12后其floor。 第十一,short s1 = 1; s1 = s1 + 1; 有什么错?short s1 = 1; s1 += 1; 有什么错? s1 + 1运算结果是int型,需要强制转换类型。 s1 += 1; 可以正确编译。 第十二,sleep() 和 wait() 有什么区别 sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用 sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。 第十三,Java有没有goto 没有 第十四,数组有没有length()这个方法 String有没有length()这个方法? 数组没有length()这个方法,有length的属性。 String有length()这个方法。 来 第十五,Overload和Override的区别。 Overloaded的方法是否可以改变返回值的类型? 方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。 Overloaded的方法是可以改变返回值的类型。 第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别? Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。 equals()和==方法决定引用值是否指向同一对象。equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。 第十七,给我一个你最常见到的runtime exception。 NullPointerException或者IndexOutOfBoundsException。 (其它:ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ... 延伸阅读: java面试题目最全的ja面试题目,请您对此进行阅读与参考:JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目... 中软Java笔试题目Ja笔试题目 (一) 一、判断题(30分) 1.Ja程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 2.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属... java笔试题目及答案1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package 子孙类 其他package public protected friendly private 不写时默认为friendl... 哪位大侠有java的面试题目JAVA程序员面试32问(建议至顶) 第一,谈谈final, finally, finalize的区别。 final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此... java基础题目public class TestEmployee { public static void main(String[] args) { // 在这里面可以测试 } } class Employee{ private String name; private int birthMonth; public... java经典编程题目import java.util.*; import javax.swing.JOptionPane; class abc { public static void main(String args[]) { for(int i=10;i>0;i++) { max(); } } public static void y... java编程题目楼上正解,很好的面向对象的思想^-^ 这里从另外的一个角度来实现: 分析一下,这道题是比较圆面积,而圆面积=PAI * r^2,只与半径r有关,所以,这道题的本质是比较,三个圆的半径大小。 pub... java初学者题目第一题: (输入每个值的时候都按回车,这个值中夹杂"stop"列入停止范围) 具体程序如下: import java.util.Scanner; public class WhenStopOthers1 { public static void main(String... Java上机题目public class Book { private String title; private int pageNum; public String getTitle() { return title; } public void setTitle(String title) { this.title = titl...java常见的面试题和面试技巧谁能告诉我
Java面试技巧和常用问题解答