没有合适的资源?快使用搜索试试~ 我知道了~
Java面试宝典总结Java面试宝典总结Java面试宝典总结Java面试宝典总结Java面试宝典总结
资源推荐
资源详情
资源评论
《葵花宝典》
版权所有,翻版必究 作者:丁伟成
丁伟成总结 java 程序员面试宝典之”葵花宝典”,要练此功,必须苦其心志,劳其筋骨.
CoreJava 部分 ___________________________________________________________ 2
Oracle 部分: ___________________________________________________________ 9
PL/SQL 部分: __________________________________________________________ 10
JDBC&XML 部分: _______________________________________________________ 13
HTML/CSS/JavaScript 部分: ______________________________________________ 14
Ajax&JQuery 部分: _____________________________________________________ 15
Servlet&Jsp 部分: ______________________________________________________ 19
三大框架部分: ________________________________________________________ 21
Struts2 部分: __________________________________________________________________ 21
Hibernate 部分 ________________________________________________________________ 22
Spring 部分: _________________________________________________________________ 23
UML 部分: ____________________________________________________________ 25
设计模式部分 __________________________________________________________ 26
《葵花宝典》
版权所有,翻版必究 作者:丁伟成
CoreJava 部分:
1.什么是面向对象?面向对象有哪些特征?
以事物为驱动的编程思想。
我理解的面向对象是必须有一个具体的事物,
这个事物可以是一个具体的人,一个具体的物,
这个事物有自己的特征(属性),有自己的行为(方法),
那么对这个事物特征的描述,和对行为的操作称为面向对象的。
继承:
实体和实体之间的一种关系。
例如:父子类之间 对于父类而言,他的一些东西(属性和方法)是可以共享的,
对于子类而言,它可以共享到父类的一些东西(属性和方法),那么
我们把父类与子类的这种关系称为继承。
封装:
实体的有些东西是自身特有的,不需要共享。
例如:
小明的爸爸有自己不想公开的东西,那么对于小明的爸爸而言,
这些东西应该设置为私有的 。这就体现出 java 的封装。
多态:行为和引用。
一个类中(行为)。
例如: 打 , 打人,打车,打麻将 ,也叫方法重载
父子类之间(引用)
儿子可以引用父亲的行为,也叫方法的重写。
2.说一下什么是 javaBean 规范:
1.要有包--类必须写在包中
2.属性都是私有--private
3.要有无参构造方法
4.写有效的 setXXX getXXX 方法
5.实现序列化接口
3.简述一下 java 基本数据类型及所占位数, java 基本数据类型:4 类 8 种
逻辑型:boolean false/true 1byte 8bit
字符型:char 2byte 16bit 运算时按照 int 类型运算
整数型:
byte(1byte 8bit) 运算时按照 int 类型运算
short(2byte 16bit) 运算时按照 int 类型运算
《葵花宝典》
版权所有,翻版必究 作者:丁伟成
int(4byte 32bit)
long(8byte 64bit) 后缀为 L/l
注:整数类型的默认类型是 int 类型 也就是说 整数类型的字面量都是 int 类型
浮点数型:
float(4byte 32bit) 后缀为 F/f
double(8byte 64bit) 后缀为 D/d
注:浮点类型的默认类型是 double 类型
除了基本数据类型,其他类型都是引用类型。
引用类型首字母大写的类型:String,Integer 等
Java 中的字面量:true,false,null,18,1.8
Java 中的特殊关键字:goto const
Int a1=5+4;//正确 编译期优化
byte b1=a1+5;//错误 a1 是变量 遵循类型运算规则
short s1=2 short s2=0
s2=s1+s2;//错误 a1 是变量 遵循类型运算规则
s2+=s1;//正确 +=是复合运算类型 直接在 s2 值的基础追加一个 s1 的值
4. 说出 9 个的启动时异常:
RunTimeException
|---NullPointerException
|——ArrayIndexOutOfBoundsException
|——ArithmeticException
|——ClassCastException
|——NumberFormatException
|——SystemException
|——ArrayStoreException
|——EmptyStackException
|——BufferOverflowException
注:异常 Exception 分为两大类:
编译时异常:编译期间要检查的
运行时异常:编译期间不检查的
5.说出 5 个常用的 java-api 包
java.lang
java.util
java.sql
java.text
java.io
《葵花宝典》
版权所有,翻版必究 作者:丁伟成
6.说出 String 类中常用的 5 个方法
charAt() 返回指定索引处的 char 值
concat() 将指定字符串连接到此字符串的结尾
length()返回此字符串的长度
split()根据给定正则表达式的匹配拆分此字符串
trim()返回字符串的副本,忽略前导空白和尾部空白.
7. HashMap 和 HashTable 的区别:
1.HashMap 允许空键值对,HashTable 不允许
2.HashMap 不是线程安全的,HashTable 是
3.HashMap 直接实现 Map 接口,HashTable 直接继承 Dictionary 类
8. ArrayList,Vector,LinkedList 存储性能和特性
它们都实现 List 接口
ArrayList 和 Vector 都是基于数组实现的
LinkedList 基于双向循环链表(查找效率低,添加删除容易)
ArrayList 不是线程安全的而 Vector 是线程安全的,所以速度上 ArrayList 高于 Vector
7.Collection 和 Collections 的区别。
Collection 是集合类的上级接口,继承与他的接口主要有 Set 和 List.
Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜
索、排序、线程安全化等操作。
9.List、Map、Set 三个接口,存取元素时,各有什么特点?
List 以特定次序来持有元素,可有重复元素。
Set 无法拥有重复元素,内部排序。
Map 保存 key-value 值,value 可多值。
10. final, finally, finalize 的区别
final 用于声明属性,方法和类,分 别表示属性不可变,方法不可覆盖,类不可继承。
finally 是异常处理语句结构的一部分,表 示总是执行。
finalize 是 Object 类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方
法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
11. Overload 和 Override 的区别。Overload 的方法是否可以改变返回值的类型?
方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。
重写 Overriding 是父类与子类之间多态性的一种表现,方法名,参数列表,
返回值类型都得与父类的方法一致.
重载 Overloading 是一个类中多态性的一种表现。重载的方法是可以改变返回值的类型。
12.用一句话总结一下冒泡排序。
依次比较相邻的两个数,将小数放在前面,大数放在后面.
13.写出选择,冒泡,插入排序的代码
选择排序:
for(int i=0;i<ary.length-1;i++){
for(int j=i+1;j<ary.length;j++){
if(ary[i]>ary[j]){
int t = ary[i];
《葵花宝典》
版权所有,翻版必究 作者:丁伟成
ary[i]=ary[j];
ary[j]=t;
}
}
}
冒泡排序:
for(int i=0;i<ary.length-1;i++){
for(int j=0;j<ary.length-i-1;j++){
if(ary[j]>ary[j+1]){
int t = ary[j];
ary[j]=ary[j+1];
ary[j+1]=t;
}
}
}
插入排序:
for (int i = 1; i < ary.length; i++) {
int temp = ary[i];
int j;
for (j = i - 1; j >= 0 && temp < ary[j]; j--) {
ary[j + 1] = ary[j];
}
ary[j + 1] = temp;
}
14.写出二分查找的代码:
注:二分法从数组查询元素,必须保证数组内部元素是有顺序的。
意思就是先对数组进行排序。
public class BinarySearch {
static int idx=1;
public static void find(int leftIndex,int rightIndex,int val,int[] arr){
int midIndex=(rightIndex+leftIndex)/2;
int midVal=arr[midIndex];//找到中间的数
if(rightIndex>=leftIndex){
//如果要找的数比midVal大
if(midVal>val){
idx++;
//在arr左边数中找
find(leftIndex,midIndex-1,val,arr);
}else if(midVal<val){
//在arr的右边去查找
idx++;
find(midIndex+1,rightIndex,val,arr);
剩余26页未读,继续阅读
资源评论
hy好久不见
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功