常见的java面试题目是什么?
垃圾回收的优点和原理。
并考虑2种回收机制。
Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。
由于有个垃圾回收机制, Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。
垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。
垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。
回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。
5 2、请说出你所知道的线程同步的方法。
wait():使一个线程处于等待状态,并且释放所持有的对象的lock。
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InteuptedException异常。
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。
5 3、你所知道的集合类都有哪些?主要方法? 最常用的集合类是 List 和 Map。
List 的具体实现包括 AayList 和 Vecto,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。
List 适用于按数值索引访问元素的情形。
Map 提供了一个更通用的元素存储方法。
Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值。
5 4、描述一下JVM加载class文件的原理机制? JVM中类的装载是由ClassLoade和它的子类来实现的,Java ClassLoade 是一个重要的Java运行时系统组件。
它负责在运行时查找和装入类文件的类。
5 5、cha型变量中能不能存贮一个中文汉字?为什么? 能够定义成为一个中文的,因为java中以unicode编码,一个cha占16个字节,所以放一个中文是没问题的5 6、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 多线程有两种实现方法,分别是继承Thead类与实现Runnale接口 同步的实现方面有两种,分别是synchonized,wait与notify5 7、JSP的内置对象及方法。
equest表示HttpSevletRequest对象。
它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, heade, 和session数据的有用的方法。
esponse表示HttpSevletResponse对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies,头信息等) out对象是javax.jsp.JspWite的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。
pageContext表示一个javax.sevlet.jsp.PageContext对象。
它是用于方便存取各种范围的名字空间、sevlet相关的对象的API,并且包装了通用的sevlet相关功能的方法。
session表示一个请求的javax.sevlet.http.HttpSession对象。
Session可以存贮用户的状态信息 applicaton 表示一个javax.sevle.SevletContext对象。
这有助于查找有关sevlet引擎和sevlet环境的信息 config表示一个javax.sevlet.SevletConfig对象。
该对象用于存取sevlet实例的初始化参数。
page表示从该页面产生的一个sevlet实例5 8、线程的基本概念、线程的基本状态以及状态之间的关系 线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。
Java中的线程有四种状态分别是:运行、就绪、挂起、结束。
5 9、JSP的常用指令isEoPage(是否能使用Exception对象),isELIgnoed(是否忽略表达式)60、什么情况下调用doGet()和doPost()? Jsp页面中的fom标签里的method属性为get时调用doGet(),为post时调用doPost()。
6 1、sevlet的生命周期 we容器加载sevlet,生命周期开始。
通过调用sevlet的init()方法进行sevlet的初始化。
通过调用sevice()方法实现,根据请求的不同调用不同的do***()方法。
结束服务,we容器调用sevlet的destoy()方法。
6 2、如何现实sevlet的单线程模式6 3、页面间对象传递的方法equest,session,application,cookie等6 4、JSP和Sevlet有哪些相同点和不同点,他们之间的联系是什么? JSP 是Sevlet技术的扩展,本质上是Sevlet的简易方式,更强调应用的外表表达。
JSP编译后是"类sevlet"。
Sevlet和JSP最主要的不同点在于,Sevlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。
而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。
JSP侧重于视图,Sevlet主要用于控制逻辑。
6 5、四种会话跟踪技术会话作用域SevletsJSP 页面描述page否是代表与一个页面相关的对象和属性。
一个页面由一个编译好的 Java sevlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。
这既包括 sevlet 又包括被编译成 sevlet 的 JSP 页面equest是是代表与 We 客户机发出的一个请求相关的对象和属性。
一个请求可能跨越多个页面,涉及多个 We 组件(由于 fowad 指令和 include...
Java面试题你能做几道?
1、有两根不均匀分布的香,香烧完的时间是一个小时,你能用什么方法来确定一段45分钟的时间? 2、一个工人打工7天,工资一天一结,有一根金条是这七天的总工资,问只能掰两次,而且工资天天发,怎么掰? 3、一个经理有三个女儿,三个女儿的年龄加起来等于13,三个女儿的年龄乘起来等于经理自己的年龄,有一个下属已知道经理的年龄,但仍不能确定经理三个女儿的年龄,这时经理说只有一个女儿的头发是黑的,然后这个下属就知道了经理三个女儿的年龄。
请问三个女儿的年龄分别是多少?为什么? 4、有27个学生运动后,感觉口很渴,打算去买汽水喝,正好小店有个促销活动,就是三个空汽水瓶换一瓶汽水,请问要是他们每人都能喝到一瓶汽水的话,最少需要买几瓶汽水? Whats geate than god, Moe evil than the devil, Rich people want it, Poo people have it, And if you eat it you die? the answe is "nothing". 还有个附加的常识题(这可不是靠智力就能想出来的哦) 我国的“五岳”是哪五座山,分别在哪个省。
答:东岳泰山(1532米),位于山东泰安市。
西岳华山(1997米),位于陕西华阴市。
南岳衡山(1512米),位于湖南省长沙以南的衡山县。
北岳恒山(2017米),位于山西浑源县。
中岳嵩山(1440米),位于河南登封市。
Java面试公司一般提的面试题目
选择DCBCA _CCBB DD第六道题我觉得应该是5,但是没有这个答案所以没写;三:1int find(int a[],int b){//前提b在a数组中确实存在int length= a.length;boolean result = false;int p = length/2;while(!result){if(a[p]p=(p+length)/2;}else if(a[p]>b){p=p/2;}else{result=true;}}return p;}2:int count(int n){int result = 0;for(int i=1;iint a = 1;for(int j=1;ja=a*j;}result+=a;}return result;}3:select distinct name from table where name not in (select name from table where fenshu
多线程面试题,为你解释Java面试?
1进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。
而线程是在进程中执行的一个任务。
Java运行环境是一个包含了不同的类和程序的单一进程。
线程可以被称为轻量级进程。
线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源。
2.&nsp;多线程编程的好处是什么? 在多线程程序中,多个线程被并发的执行以提高程序的效率,CPU不会因为某个线程需要等待资源而进入空闲状态。
多个线程共享堆内存(heap memoy),因此创建多个线程去执行一些任务会比创建多个进程更好。
举个例子,Sevlets比CGI更好,是因为Sevlets支持多线程而CGI不支持。
3.&nsp;用户线程和守护线程有什么区别? 当我们在Java程序中创建一个线程,它就被称为用户线程。
一个守护线程是在后台执行并且不会阻止JVM终止的线程。
当没有用户线程在运行的时候,JVM关闭程序并且退出。
一个守护线程创建的子线程依然是守护线程。
2018年的JAVA面试题及答案
Java知识点很多,每个知识点都可能会有面试题,而且不同的企业的考察点是不一样的。
下面给你整理了几个Java面试题可以参考: 1、面向对象的特征有哪些方面? 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。
多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。
简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。
多态性分为编译时的多态性和运行时的多态性。
方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)。
2、获得一个类的类对象有哪些方式? 答: - 方法1:类型.class,例如:String.class - 方法2:对象.getClass(),例如:"hello".getClass() - 方法3:Class.forName(),例如:Class.forName("java.lang.String") 3、如何通过反射创建对象? 答: - 方法1:通过类对象调用newInstance()方法,例如:String.class.newInstance() - 方法2:通过类对象的getConstructor()或getDeclaredConstructor()方法获得构造器 (Constructor)对象并调用其newInstance()方法创建对象,例如: String.class.getConstructor(String.class).newInstance("Hello");...
求:JAVA程序员面试题
哎 我应聘了N家公司 给你一些题好了 华为的 第一部分:选择题 QUESTION NO: 1 1、public class Test { public static void changeStr(String str){ str="welcome"; } public static void main(String[] args) { String str="1234"; changeStr(str); System.out.println(str); } } Please write the output result : QUESTION NO:2 1. public class Test { 2. static boolean foo(char c) { 3. System.out.print(c); 4. return true; 5. } 6. public static void main( String[] argv ) { 7. int i =0; 8. for ( foo('A'); foo('B')&&(i 9. i++ ; 10. foo('D'); 12. } 13. } 14. } What is the result? A. ABDCBDCB B. ABCDABCD C. Compilation fails. D. An exception is thrown at runtime. QUESTION NO: 3 1. class A { 2. protected int method1(int a, int b) { return 0; } 3. } Which two are valid in a class that extends class A? (Choose two) A. public int method1(int a, int b) { return 0; } B. private int method1(int a, int b) { return 0; } C. private int method1(int a, long b) { return 0; } D. public short method1(int a, int b) { return 0; } E. static protected int method1(int a, int b) { return 0; } QUESTION NO: 4 1. public class Outer{ 2. public void someOuterMethod() { 3. // Line 3 4. } 5. public class Inner{} 6. public static void main( String[]argv ) { 7. Outer o = new Outer(); 8. // Line 8 9. } 10. } Which instantiates an instance of Inner? A. new Inner(); // At line 3 B. new Inner(); // At line 8 C. new o.Inner(); // At line 8 D. new Outer.Inner(); // At line 8//new Outer().new Inner() QUESTION NO: 5 Which method is used by a servlet to place its session ID in a URL that is written to the servlet's response output stream? A. The encodeURL method of the HttpServletRequest interface. B. The encodeURL method of the HttpServletResponse interface. C. The rewriteURL method of the HttpServletRequest interface. D. The rewriteURL method of the HttpServletResponse interface. QUESTION NO: 6 Which two are equivalent? (Choose two) A. B. C. D. E. F. G. QUESTION NO: 7 Which of the following statements regarding the lifecycle of a session bean are correct? 1. java.lang.IllegalStateException is thrown if SessionContext.getEJBObject() is invoked when a stateful session bean instance is passivated. 2. SessionContext.getRollbackOnly() does not throw an exception when a session bean with bean-managed transaction demarcation is activated. 3. An exception is not thrown when SessionContext.getUserTransaction() is called in the afterBegin method of a bean with container-managed transactions. 4. JNDI access to java:comp/env is permitted in all the SessionSynchronization methods of a stateful session bean with container-managed transaction demarcation. 5. Accessing resource managers in the SessionSynchronization.afterBegin method of a stateful session bean with bean-managed transaction does not throw an exception. 第二部分:概念题 1. 描述Struts体系结构?对应各个部分的开发工作主要包括哪些? 3. JSP有哪些内置对象和动作?它们的作用分别是什么? 4、SQL问答题 SELECT * FROM TABLE 和 SELECT * FROM TABLE WHERE NAME LIKE '%%' AND ADDR LIKE '%%' AND (1_ADDR LIKE '%%' OR 2_ADDR LIKE '%%' OR 3_ADDR LIKE '%%' OR 4_ADDR LIKE '%%' ) 的检索结果为何不同? 5、SQL问答题 表结构: 1、 表名:g_cardapply 字段(字段名/类型/长度): g_applyno varchar 8;//申请单号(关键字) g_applydate bigint 8;//申请日期 g_state varchar 2;//申请状态 2、 表名:g_cardapplydetail 字段(字段名/类型/长度): g_applyno varchar 8;//申请单号(关键字) g_name varchar 30;//申请人姓名 g_idcard varchar 18;//申请人身份证号 g_state varchar 2;//申请状态 其中,两个表的关联字段为申请单号。
题目: 1、 查询身份证号码为440401430103082的申请日期 2、 查询同一个身份证号码有两条以上记录的身份证号码及记录个数 3、 将身份证号码为440401430103082的记录在两个表中的申请状态均改为07 4、 删除g_cardapplydetail表中所有姓李的记录");
JAVA程序员面试题库有哪些
Java面试题和答案第一,谈谈final,finally,finalize的区别。
final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。
因此一个类不能既被声明为abstract的,又被声明为final的。
将变量或方法声明为final,可以保证它们在使用中不被改变。
被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
被声明为final的方法也同样只能使用,不能重载finally?再异常处理时提供finally块来执行任何清除操作。
如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果有的话)。
finalize?方法名。
Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。
这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。
它是在Object类中定义的,因此所有的类都继承了它。
子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。
finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
第二,AnonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?匿名的内部类是没有名字的内部类。
不能extends(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现。
第四,&和&&的区别。
&是位运算符。
&&是布尔逻辑运算符。
第五,HashMap和Hashtable的区别。
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap类没有分类或者排序。
它允许一个null键和多个null值。
Hashtable类似于HashMap,但是不允许null键和null值。
它也比HashMap慢,因为它是同步的。
第六,Collection和Collections的区别。
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口。
第七,什么时候用assert。
断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为true。
如果表达式计算为false,那么系统会报告一个AssertionError。
它用于调试目的:assert(a>0);//throwsanAssertionErrorifa>set=map.entrySet();Iterator>itor=set.iterator();while(itor.hasNext()){Entryentry=itor.next();System.out.println(entry.getKey()+""+entry.getValue());}/**第二种*/for(Entryentry:map.entrySet())System.out.println(entry.getKey()+""+entry.getValue());}Jsp方面1、jsp有哪些内置对象?作用分别是什么?答:JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):request用户端请求,此请求会包含来自GET/POST请求的参数response网页传回用户端的回应pageContext网页的属性是在这里管理session与请求有关的会话期applicationservlet正在执行的内容out用来传送回应的输出configservlet的构架部件pageJSP网页本身exception针对错误网页,未捕捉的例外2、jsp有哪些动作?作用分别是什么?答:JSP共有以下6种基本动作jsp:include:在页面被请求的时候引入一个文件。
jsp:useBean:寻找或者实例化一个JavaBean。
jsp:setProperty:设置JavaBean的属性。
jsp:getProperty:输出某个JavaBean的属性。
jsp:forward:把请求转到一个新的页面。
jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记3、JSP中动态INCLUDE与静态INCLUDE的区别?答:动态INCLUDE用jsp:include动作实现它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面4、两种跳转方式分别是什么?有什么区别?答:有两种,分别为:前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。
执行完后还会回来,相当于函数调用。
并且可以带参数.后者完全转向新页面,不会再回来。
相当于goto语句。
Servlet方面1、说一说Servlet的生命周期?答:servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。
这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。
2、Servlet版本间(忘了问的是哪两个版本了)的不同?希望大家补上,谢谢3、JAVASERVLETAPI中forward()与redirect()的区别?答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。
这样,从浏览器的地址栏中可以看到跳转后的链接地址。
所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。
在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
4、Servlet的基本架构publicclassServletNameextendsHttpServlet{publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsS...
求java考题,笔试题
Java面向对象1. super()与this()的区别?This():当前类的对象,super父类对象。
Super():在子类访问父类的成员和行为,必须受类继承规则的约束而this他代表当前对象,当然所有的资源都可以访问.在构造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数的构造函数,或这个函数被私有化了(用private修饰).此时你必须加入对父类的实例化构造.而this就没有这个要求,因为它本身就进行实例化的构造.而在方法中super和this使用的方法就差不多了.只不过super 要考虑是否能访问其父类的资源.2. 作用域public,protected,private,以及不写时的区别?Public:不同包、 同一包、 类内都可用Private: 类内Protected:不同包的子类、同一包、 类内都可用不写时: 同一包内、类内3. 编程输出如下图形。
* * * * ** * * ** * ** **代码如下:public class Print { publicstatic void main(String[] args) { for(int i = 0; i i; j--) { System.out.print("*"); } System.out.println(); } }}4. JAVA的事件委托机制和垃圾回收机制Java事件委托机制的概念,一个源产生一个事件并将它送到一个或多个监听器那里。
在这种方案中,监听器简单的等待,直到它收到一个事件。
一旦事件被接受,监听器将处理这个事件,然后返回。
垃圾回收机制垃圾收集是将分配给对象但不再使用的内存回收或释放的过程。
如果一个对象没有指向它的引用或者其赋值为null,则次对象适合进行垃圾回收5. 在JAVA中,如何跳出当前的多重嵌套循环?用break; return 方法。
6. 什么是java序列化,如何实现java序列化?(写一个实例)序列化:处理对象流的机制,所谓对象流也就是将对象的内容进行流化。
可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。
序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implementsSerializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
7. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?可以。
如果这个类的修饰符是public,其类名与文件名必须相同。
8. 排序都有哪几种方法?请列举。
用JAVA实现一个快速排序?排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)快速排序的伪代码。
9. Overload和Override的区别。
Overloaded的方法是否可以改变返回值的类型?重写Override,子类覆盖父类的方法,将子类传与父类的引用调用的还是子类的方法。
重载Overloading 一个类多个方法,名称相同,参数个数类型不同。
两者都是Java多态性的不同表现。
Overloaded的方法是可以改变返回值的类型。
1, public class Ctest(){ Public static void main(){System.out.prinln(8+8+”88”+8+8);}} 168888(方法的重写Overriding和重载Overloading是Java多态性的不同表现。
重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。
子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。
Overloaded的方法是可以改变返回值的类型。
)10. Final类有什么特点? 属性常量 方法不可以overridding 类不可以继承11. 继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?答:父类:package test;public class FatherClass {public FatherClass() {System.out.println("FatherClassCreate");}}子类:package test;import test.FatherClass;public class ChildClass extends FatherClass{public ChildClass() {System.out.println("ChildClassCreate");}public static void main(String[] args) {FatherClass fc = new FatherClass();ChildClass cc = new ChildClass();}}输出结果:C:>java test.ChildClassFatherClass CreateFatherClass CreateChildClass Create12. 内部类的实现方式?package test;public class OuterClass {private class InterClass {Public Interlass(){System.out.println("InterClassCreate");}}public OuterClass(){InterClass ic = new InterClass();System.out.println("OuterClassCreate");}public static void main(String[] args){OuterClass oc = new OuterClass();}}输出结果:C:>java test/OuterClass InterClass Create OuterClass Create13. 用JAVA实现一种排序,JAVA类实现序列化的方法(二种)?14. 如在COLLECTI...
转载请注明出处51数据库 » 科蓝软件java面试题
水上莲O