没有合适的资源?快使用搜索试试~ 我知道了~
java 面试 jsp struts spring mvc 数据库
资源详情
资源评论
资源推荐
谈谈 final, finally, finalize 的区别:
:::修饰符(关键字)如果一个类被声明为 ,意味着它不能再派生出新的子类,不能作
为父类被继承。因此一个类不能既被声明为 的,又被声明为 的。将变量或方法声明为
,可以保证它们在使用中不被改变。被声明为 的变量必须在声明时给定初值,而在以后的
引用中只能读取,不可修改。被声明为 的方法也同样只能使用,不能重载
:::再异常处理时提供 块来执行任何清除操作。如果抛出一个异常,那么相匹配的
子句就会执行,然后控制就会进入块(如果有的话)。
:::方法名。 技术允许使用方法在垃圾收集器将对象从内存中清除出去之前
做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它
是在类中定义的,因此所有的类都继承了它。子类覆盖方法以整理系统资源或者执
行其他清理工作。方法是在垃圾收集器删除对象之前对这个对象调用的。
Anonymous Inner Class (匿名内部类) 是否可以 extends( 继承)其它类,是否可以 implements( 实
现)interface(接口):
匿名的内部类是没有名字的内部类。不能 继承其它类,但一个内部类可以作为一个接口,
由另一个内部类实现。
&和&&的区别:
是位运算符。是布尔逻辑运算符。
HashMap 和 Hashtable 的区别:
都属于 接口的类,实现了将惟一键映射到特定的值上。
类没有分类或者排序。它允许一个键和多个值。
类似于,但是不允许键和值。它也比慢,因为它是同步的。
Collection 和 Collections 的区别:
是个 下的类,它包含有各种有关集合操作的静态方法。
是个 下的接口,它是各种集合结构的父接口。
GC 是什么? 为什么要有 GC? (基础):
是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收
集,可以调用下面的方法之一:
!"#
$"#$"#。
String s = new String("xyz");创建了几个 String Object:
两个对象,一个是“%&一个是指向“%的引用对象 。
Math.round(11.5)等於多少? Math.round(-11.5)等於多少:
''(返回(#)'),*''(返回(#)*''。
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错:
'+','+'-',有错,' 是 型,'-' 是 型&不能显式转化为 型。可修改为 '
+'-'。'+','-+' 正确。
sleep() 和 wait() 有什么区别:
方法是使线程停止一段时间的方法。在 时间间隔期满后,线程不一定立即恢复执行。这
是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非 .醒来”的线程具有
更高的优先级
正在运行的线程因为其它原因而阻塞。
/是线程交互时,如果线程对一个同步对象 发出一个 /调用,该线程会暂停执行,被调对
象进入等待状态,直到被唤醒或等待时间到。
数组有没有 length()这个方法? String 有没有 length()这个方法:
数组没有 #这个方法,有 # 的属性。
!# 有有 #这个方法。
Overload 和 Override 的区别。Overloaded 的方法是否可以改变返回值的类型:
方法的重写 # 和重载 # 是 多态性的不同表现。重写 # 是父类与子类
之间多态性的一种表现,重载 # 是一个类中多态性的一种表现。如果在子类中定义某方法
与其父类有相同的名称和参数,我们说该方法被重写#。子类的对象使用这个方法时,将
调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方
法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载#。 的
方法是可以改变返回值的类型。
Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是 equals()? 它们有何区别:
! 里的元素是不能重复的,那么用 方法来区分重复与否。0是判读两个 ! 是否相等。
0和++方法决定引用值是否指向同一对象 0在类中被覆盖,为的是当两个分离的对象的内
容和类型相配的话,返回真值。
给我一个你最常见到的 runtime exception:
1"2& 1!2& 3/2& 34/2&
$2& 42& 2& 2&
2& 52& 2"!62& 7#1#"2&
7#!2& 7#8!2& 7#!2& 7"##2&
732& #$2& 9#1!2&
9!2"2& 982& 852& 82&
$:"2& !2& !"2& 4;/2&
4"!2&42。
error 和 exception 有什么区别:
表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能
处理这样的情况。
表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
List, Set, Map 是否继承自 Collection 接口:
<,! 是。
不是。
abstract class 和 interface 有什么区别:
声明方法的存在而不去实现它的类被叫做抽象类(),它用于要创建一个体现某些
基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建 类的实例。
然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造
函数或抽象静态方法。1类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象
类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口()是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样
的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义 成员
变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,
它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上
调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。
引用可以转换到接口类型或从接口类型转换,运算符可以用来决定某对象的类是否实现了
接口。
接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete
class):
接口可以继承接口。抽象类可以实现""接口,抽象类是否可继承实体类,但前提是实
体类必须有明确的构造函数。
启动一个线程是用 run()还是 start():
启动一个线程是调用 方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以
由 = 调度并执行。这并不意味着线程就会立即运行。 方法可以产生必须退出的标志来停止一
个线程。
构造器 Constructor 是否可被 override:
构造器 不能被继承,因此不能重写 #,但可以被重载 #。
try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会被执行,什么时候被
执行,在 return 前还是后:
会执行,在 前执行。
两个对象值相同(x.equals(y) == true),但却可有不同的 hash code,这句话对不对:
不对,有相同的 。
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,
那么这里到底是值传递还是引用传递:
是值传递。编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,
参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会
改变的。
swtich 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上:
/(')中,' 是一个整数表达式。因此传递给/和语句的参数应该是
、、或者。#&#都不能作用于 /。
编程题: 写一个 Singleton 出来:
!# 模式主要作用是保证在 应用程序中,一个类 只有一个实例存在。
一般 !# 模式通常有几种种形式:
第一种形式:定义一个类,它的构造函数为 的,它有一个 的 的该类变量,
在类初始化时实例话,通过一个 的 #7 方法获取对它的引用&继而调用其中的方法。
!#>
!#>?
@@在自己内部定义自己一个实例,是不是很奇怪?
@@注意这是 只供内部调用
!#+/!#,
@@这里提供了一个供外部访问本 的静态方法,可以直接访问
!##7>
,
?
?
A
第二种形式:
!#>
!#+,
!##7>
@@这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
@@使用时生成实例,提高了效率!
++
=/!#,
, ?
?
其他形式:
定义一个类,它的构造函数为 的,所有方法为 的。
一般认为第一种形式要更加安全些。
Hashtable 和 HashMap 的区别:
继承自 5 类,而 是 ') 引进的 的一个实现
允许将 作为一个 的 6 或者 ,而 不允许
还有就是, 把 的 方法去掉了,改成 和 B。因
为 方法容易让人引起误解。
最大的不同是, 的方法是 ! 的,而 不是,在
多个线程访问 时,不需要自己为它的方法实现同步,而
就必须为之提供外同步。
和 采用的 @ 算法都大概一样,所以性能不会有很大的差异
作用域 public,private,protected,以及不写时的区别:
作用域当前类同一 6#子孙类其他 6#
CCCC
CCCD
CCDD
CDDD
不写时默认为 。
ArrayList 和 Vector 的区别,HashMap 和 Hashtable 的区别:
答:就 1< 与 = 主要从二方面来说
一同步性E= 是线程安全的,也就是说是同步的,而 1< 是线程序不安全的,不是同步的
二数据增长E当需要增长时&= 默认增长为原来一培,而 1< 却是原来的一半
就 与 ; 主要从三方面来说。
一历史原因E 是基于陈旧的 5 类的, 是 ') 引进的 接口的一个实
现
二同步性E 是线程安全的,也就是说是同步的,而 是线程序不安全的,不是同步
的
三值:只有 可以让你将空值作为一个表的条目的 6 或 。
char 型变量中能不能存贮一个中文汉字?为什么:
答:是能够定义成为一个中文的,因为 中以 编码,一个 占 'F 个字节,所以放一个
中文是没问题的。
介绍 JAVA 中的 Collection FrameWork(包括如何写自己的数据结构):
答::"G6 如下:
H<
IH<6<
IH1<
IJ=
I └!6
J!
H
H
JG6
是最基本的集合接口,一个 代表一组 ,即 的元素(2")
提供 6 到 的映射。
jsp 有哪些内置对象?作用分别是什么:
答E!8 共有以下 K 种基本内置组件(可与 1!8 的 F 种内部组件相对应):
0用户端请求,此请求会包含来自 2;@8!; 请求的参数
网页传回用户端的回应
#网页的属性是在这里管理
与请求有关的会话期
正在执行的内容
用来传送回应的输出
# 的构架部件
#!8 网页本身
针对错误网页,未捕捉的例外。
jsp 有哪些动作?作用分别是什么:
答E!8 共有以下 F 种基本动作
E:在页面被请求的时候引入一个文件。
E3:寻找或者实例化一个 3。
E8:设置 3 的属性。
E#8:输出某个 3 的属性。
E/:把请求转到一个新的页面。
E#:根据浏览器类型为 插件生成 32; 或 2325 标记。
JSP 中动态 INCLUDE 与静态 INCLUDE 的区别:
答:动态 79<452 用 E 动作实现
LE#+MM+MM@N它总是会检查所含文件中的变化,适合用于包含动态页
面,并且可以带参数
静态 79<452 用 伪码实现&定不会检查所含文件的变化,适用于包含静态页面
LOP+M"MON。
两种跳转方式分别是什么?有什么区别:
答:有两种,分别为:
LE#+MM+MMN
LE/#+M#M@N
前者页面不会转向 所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还
会回来,相当于函数调用。并且可以带参数后者完全转向新页面,不会再回来。相当于 #语句。
说一说 Servlet 的生命周期:
答E 有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存
期由 ! 接口的 & 和 方法表达。
JAVA SERVLET API 中 forward() 与 redirect()的区别:
答E前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完
全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看
剩余30页未读,继续阅读
llwone
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0