Java大量面试题目Word格式文档下载.docx
- 文档编号:5949273
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:30
- 大小:30.31KB
Java大量面试题目Word格式文档下载.docx
《Java大量面试题目Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Java大量面试题目Word格式文档下载.docx(30页珍藏版)》请在冰点文库上搜索。
因此传递给switch和case语句的参数应该是int、short、char或者byte。
long,string都不能作用于swtich。
(它能使用长度是在int范围之内的)
2.4下面都是正确的main方法签名。
publicstaticvoidmain(String[]args)
publicstaticfinalvoidmain(String[]args)
staticpublicvoidmain(String[]args)
staticpublicsynchronizedvoidmain(String[]args)
2.5说出一些常用的类,包,接口,请各举5个?
答案:
常用类-System,ArrayList,FileInputStream,Thread,Socket.
常用的包常用接口-Collection,Connection,Cloneable,Comparable,Serializable
2.6进程和线程的区别:
进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。
进程和线程的区别在于:
简而言之,一个程序至少有一个进程,一个进程至少有一个线程.
线程的划分尺度小于进程,使得多线程程序的并发性高。
另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了
程序的运行效率。
线程在执行过程中与进程还是有区别的。
每个独立的线程有一个程序运行的入口、顺序执行了序列和程序的出口。
但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。
但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。
这就是进程和线程的重要区别。
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
一个线程可以创建和撤销另一个线程;
同一个进程中的多个线程之间可以并发执行.
3、char型变量中能不能存贮一个中文汉字为什么(方正简答题)
是能够定义成为一个中文的,因为java中以unicode编码,一个char占16位,所以放一个中文是没问题的。
3.1Overload和Override的区别。
Overloaded的方法是否可以改变返回值的类型
方法的重写Overriding和重载Overloading是Java多态性的不同表现。
重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。
子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。
Overloaded的方法是可以改变返回值的类型。
3.2Set里的元素是不能重复的,那么用什么方法来区分重复与否呢是用==还是equals()它们有何区别
Set里的元素是不能重复的,用iterator()方法来区分重复与否。
equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
3.3error和exception有什么区别
error表示恢复不是不可能但很困难的情况下的一种严重问题。
比如说内存溢出。
不可能指望程序能处理这样的情况。
exception表示一种设计或实现问题。
也就是说,它表示如果程序运行正常,从不会发生的情况。
3.4abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized
都不能
3.5接口是否可继承接口抽象类是否可实现(implements)接口抽象类是否可继承实体类(concreteclass)
接口可以继承接口。
抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。
3.6启动一个线程是用run()还是start()
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。
这并不意味着线程就会立即运行。
run()方法可以产生必须退出的标志来停止一个线程。
3.7构造器Constructor是否可被override
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。
3.8是否可以继承String类
String类是final类故不可以继承。
3.9当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法
不能,一个对象的一个synchronized方法只能由一个线程访问。
4、多线程有几种实现方法,都是什么同步有几种实现方法,都是什么
多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
同步的实现方面有两种,分别是synchronized,wait与notify
4.1谈谈final,finally,finalize的区别。
final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。
因此一个类不能既被声明为abstract的,又被声明为final的。
将变量或方法声明为final,可以保证它们在使用中不被改变。
被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
被声明为final的方法也同样只能使用,不能重载
finally再异常处理时提供finally块来执行任何清除操作。
如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果有的话)。
finalize方法名。
Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。
这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。
它是在Object类中定义的,因此所有的类都继承了它。
子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。
finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
4.2&
和&
&
的区别。
是位运算符。
是布尔逻辑运算符。
4.3HashMap和Hashtable的区别。
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap类没有分类或者排序。
它允许一个null键和多个null值。
Hashtable类似于HashMap,但是不允许null键和null值。
它也比HashMap慢,因为它是同步的。
4.4Collection和Collections的区别。
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口。
4.5Strings=newString("
xyz"
);
创建了几个StringObject(方正选择题)
两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。
4.6Math.round(11.5)等於多少Math.round(-11.5)等於多少
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;
4.7shorts1=1;
s1=s1+1;
有什么错shorts1=1;
s1+=1;
有什么错(方正选择题)
shorts1=1;
有错,s1是short型,s1+1是int型,不能显式转化为short型。
可修改为s1=(short)(s1+1)。
s1+=1正确。
4.8sleep()和wait()有什么区别搞线程的最爱
sleep()方法是使线程停止一段时间的方法。
在sleep时间间隔期满后,线程不一定立即恢复执行。
这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级
(b)正在运行的线程因为其它原因而阻塞。
wait()是线程交互时,如果线程对一个同步对象x发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。
4.9数组有没有length()这个方法String有没有length()这个方法?
数组没有length()这个方法,有length的属性。
String有length()这个方法。
valid(Choosetwo.)
A.classInnerOne{
publicstaticdoublemethoda(){returnd1;
}
B.publicclassInnerOne{
staticdoublemethoda(){returnd1;
C.privateclassInnerOne{
doublemethoda(){returnd1;
D.staticclassInnerOne{
protecteddoublemethoda(){returnd1;
E.abstractclassInnerOne{
publicabstractdoublemethoda();
说明如下:
一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。
故A、B错
二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;
returnd1出错。
故D错
三.非静态内部类的非静态成员可以访问外部类的非静态变量。
故C正确
四.答案为C、E
7、垃圾回收机制,如何优化程序
希望大家补上,谢谢
8、float型floatf=3.4是否正确
答:
不正确。
精度不准确,应该用强制类型转换,如下所示:
floatf=(float)3.4
9、介绍JAVA中的CollectionFrameWork(包括如何写自己的数据结构)
CollectionFrameWork如下:
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)
Map提供key到value的映射
10、Java中异常处理机制,事件机制?
11、JAVA中的多态与继承?
12、抽象类与接口?
抽象类与接口都用于抽象,但是抽象类(JAVA中)可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)。
13、Java的通信编程,编程题(或问答),用JAVASOCKET编程,读服务器几个字符,再写入本地显示?
Server端程序:
packagetest;
import.*;
importjava.io.*;
15、编程:
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
(方正编程题)
代码如下:
loopCount=(SplitStr.length()%SplitByte==0)(SplitStr.length()/SplitByte):
(SplitStr.length()/Split
0ewldfls=103"
4);
ss.SplitIt();
16、JAVA多线程编程。
用JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出。
注:
因为这4个线程共享J,所以线程类要写到内部类中。
加线程:
每次对j加一。
减线程:
每次对j减一。
publicclassTestThreads
{
privateintj=1;
//加线程
privateclassIncimplementsRunnable
{
publicvoidrun()
{
for(inti=0;
i<
10;
i++)
{
inc();
}
}
}
//减线程
privateclassDecimplementsRunnable
dec();
//加1
privatesynchronizedvoidinc()
j++;
Thread.currentThread().getName()+"
-inc:
"
+j);
//减1
privatesynchronizedvoiddec()
j--;
-dec:
//测试程序
publicstaticvoidmain(String[]args)
TestThreadstest=newTestThreads();
//创建两个线程类
Threadthread=null;
Incinc=test.newInc();
Decdec=test.newDec();
//启动4个线程
for(inti=0;
2;
thread=newThread(inc);
thread.start();
thread=newThread(dec);
}
17、STRING与STRINGBUFFER的区别。
STRING的长度是不可变的,STRINGBUFFER的长度是可变的。
如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法
Jsp方面
1、jsp有哪些内置对象作用分别是什么
JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):
request用户端请求,此请求会包含来自GET/POST请求的参数
response网页传回用户端的回应
pageContext网页的属性是在这里管理
session与请求有关的会话期
applicationservlet正在执行的内容
out用来传送回应的输出
configservlet的构架部件
pageJSP网页本身
exception针对错误网页,未捕捉的例外
2、jsp有哪些动作作用分别是什么
JSP共有以下6种基本动作
jsp:
include:
在页面被请求的时候引入一个文件。
useBean:
寻找或者实例化一个JavaBean。
setProperty:
设置JavaBean的属性。
getProperty:
输出某个JavaBean的属性。
forward:
把请求转到一个新的页面。
plugin:
根据浏览器类型为Java插件生成OBJECT或EMBED标记
3、JSP中动态INCLUDE与静态INCLUDE的区别?
动态INCLUDE用jsp:
include动作实现
<
includepage="
included.jsp"
flush="
true"
/>
它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数
静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面
%@includefile="
included.htm"
%>
4、两种跳转方式分别是什么有什么区别
有两种,分别为:
>
forwardpage="
nextpage.jsp"
/>
前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。
执行完后还会回来,相当于函数调用。
并且可以带参数.后者完全转向新页面,不会再回来。
相当于goto语句。
Servlet方面
2、Servlet版本间(忘了问的是哪两个版本了)的不同
3、JAVASERVLETAPI中forward()与redirect()的区别?
前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;
后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。
这样,从浏览器的地址栏中可以看到跳转后的链接地址。
所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。
在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
4、Servlet的基本架构
publicclassServletNameextendsHttpServlet{
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throws
ServletException,IOException{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throws
Jdbc、Jdo方面
1、可能会让你写一段Jdbc连Oracle的程序,并实现数据查询.(方正编程题)
2、Class.forName的作用为什么要用
调用该访问返回一个以字符串指定类名的类的对象。
3、Jdo是什么
JDO是Java对象持久化的新的规范,为javadataobject的简称,也是一个用于存取某种数据仓库中的对象的标准化API。
JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBCAPI的使用)。
这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。
另外,JDO很灵活,因为它可以在任何数据底层上运行。
JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。
4、在ORACLE大数据量下的分页解决方法。
一般用截取ID方法,还有是三层嵌套方法。
一种分页方法
%
inti=1;
intnumPages=14;
Stringpages=request.getParameter("
page"
);
intcurrentPage=1;
currentPage=(pages==null)
(1):
{Integer.parseInt(pages)}
sql="
selectcount(*)fromtables"
;
ResultSetrs=DBLink.executeQuery(sql);
while(rs.next())i=rs.getInt
(1);
intintPageCount=1;
intPageCount=(i%numPages==0)(i/numPages):
(i/numPages+1);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 大量 面试 题目