今天面试很多java基础题都忘记了,把主要题目记下来了在这里总结下:
1.基本数据类型。
2.编码转换,把GB2312的字符串转换成ISO8859-1。
3.String和StringBuffer有什么区别,"=="和equals()有什么区别。
char能不能放下一个中文字符,为什么?
4.写一个字符串反转的方法,把“abcdefg”转换成“gfedcba”。
5.替换字符串,把“abc.abc.abc”替换成“abc/abc/abc”。
6.类型转换,把int类型的“123456”转换成String后再转换为int,方法越多越好。
7.日期处理,取得从1970到现在的毫秒数,格式为yyyy-MM-dd-HH:mm:ss再转换成String输出。
8.io文件操作,指定一个文件夹,C:\temp\test,
判断是否存在,存在则列出其下所有文件名,包括子目录以及下面的文件,不存在则新建该文件夹。
9.继承类,先初始化构造方法还是先初始化静态变量?静态方法在调用前会不会被初始化?
10.jsp有那些内置对象?
11.jsp中动态Include与静态Include分别是什么,两种方式有什么区别?
12.两种重定向方式forward和redirect有什么区别?
13.对mvc的理解
14.servlet的流程
15.Ajax使用的框架
16.作用域public,private,protected,以及不写时的区别
------------------------------------------
以下是参考答案
------------------------------------------
1.基本数据类型。
基本数据类型有四类八种
整形:byte short int long
浮点型:float double
字符型:char
布尔型:boolean
2.编码转换,把GB2312的字符串转换成ISO8859-1。
String str = "abcd";
str = new String(str.getBytes("GB2312"), "ISO8859_1");
3.String和StringBuffer有什么区别,"=="和equals()有什么区别。
char能不能放下一个中文字符,为什么?
(1)本质上的区别是:String是不可变类(immutable),而StringBuffer是可变类。
StringBuffer是可以改变字符串长度的,用append("str")的方法可以不断增加内容,
而String则不可以,并且相同的字符串对象是相同的地址引用,
若要String改变值,需要改变String变量的引用(指向新的对象)。
(2)== 是对引用进行判断,对内存地址的判断
equals()是判断引用的值是否相等,对实际存储的值的判断
内存地址相同的值一定相同,但值相同的内存地址就不一定相同
(3)char可以放下一个中文字符,因为java采用的是unicode编码,一个字符为两个字节。
4.写一个字符串反转的方法,把“abcdefg”转换成“gfedcba”。
String str = "abcdefg";
//方法一:利用StringBuffer的reverse()方法实现
public static String reverse2(String str) {
StringBuffer sb = new StringBuffer(str);
sb.reverse().toString();
return sb.toString();
}
//方法二:
public static String reverse(String str) {
if (str == null) {
throw new NullPointerException();
}
return (new StringBuffer(str)).reverse().toString();
}
//方法三:参照StringBuffer的reverse()方法
public static String reverse(String s){
int length=s.length();
StringBuffer result=new StringBuffer(length);
for(int i=length-1;i>=0;i--)
result.append(s.charAt(i));
return result.toString();
}
5.替换字符串,把“abc.abc.abc”替换成“abc/abc/abc”。
String rep = "abc.abc.abc";
String rep2 = rep.replaceAll("\\.", "/");
//由于.是特殊字符,需要加上\\转义,否则全部转换成/了
6.类型转换,把int类型的“123456”转换成String后再转换为int,方法越多越好。
int i = 123456;
将整数i转换成字串 s
1.) String s = String.valueOf(i);
2.) String s = Integer.toString(i);
3.) String s = "" + i;
将字串 s 转换成整数 i
1.)int i = Integer.parseInt(s);
2.)int i = Integer.parseInt(s,10);//int radix为进制
3.)int i = Integer.valueOf(s).intValue();
注: double, float, long 转换的方法大同小异.
7.日期处理,取得从1970到现在的毫秒数,格式为yyyy-MM-dd-HH:mm:ss再转换成String输出。
//获取当前系统的时间new
java.util.Date date = new java.util.Date();
//取得从1970年到现在的毫秒数
long now = date.getTime();
//格式化日期
java.text.SimpleDateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//转为字符串
String dateStr = df.format(date);
8.io文件操作,指定一个文件夹,C:\temp\test,
判断是否存在,存在则列出其下所有文件名,包括子目录以及下面的文件,不存在则新建该文件夹。
http://www.byfor.cn/html-155286-1.html
1.基本数据类型。
2.编码转换,把GB2312的字符串转换成ISO8859-1。
3.String和StringBuffer有什么区别,"=="和equals()有什么区别。
char能不能放下一个中文字符,为什么?
4.写一个字符串反转的方法,把“abcdefg”转换成“gfedcba”。
5.替换字符串,把“abc.abc.abc”替换成“abc/abc/abc”。
6.类型转换,把int类型的“123456”转换成String后再转换为int,方法越多越好。
7.日期处理,取得从1970到现在的毫秒数,格式为yyyy-MM-dd-HH:mm:ss再转换成String输出。
8.io文件操作,指定一个文件夹,C:\temp\test,
判断是否存在,存在则列出其下所有文件名,包括子目录以及下面的文件,不存在则新建该文件夹。
9.继承类,先初始化构造方法还是先初始化静态变量?静态方法在调用前会不会被初始化?
10.jsp有那些内置对象?
11.jsp中动态Include与静态Include分别是什么,两种方式有什么区别?
12.两种重定向方式forward和redirect有什么区别?
13.对mvc的理解
14.servlet的流程
15.Ajax使用的框架
16.作用域public,private,protected,以及不写时的区别
------------------------------------------
以下是参考答案
------------------------------------------
1.基本数据类型。
基本数据类型有四类八种
整形:byte short int long
浮点型:float double
字符型:char
布尔型:boolean
2.编码转换,把GB2312的字符串转换成ISO8859-1。
String str = "abcd";
str = new String(str.getBytes("GB2312"), "ISO8859_1");
3.String和StringBuffer有什么区别,"=="和equals()有什么区别。
char能不能放下一个中文字符,为什么?
(1)本质上的区别是:String是不可变类(immutable),而StringBuffer是可变类。
StringBuffer是可以改变字符串长度的,用append("str")的方法可以不断增加内容,
而String则不可以,并且相同的字符串对象是相同的地址引用,
若要String改变值,需要改变String变量的引用(指向新的对象)。
(2)== 是对引用进行判断,对内存地址的判断
equals()是判断引用的值是否相等,对实际存储的值的判断
内存地址相同的值一定相同,但值相同的内存地址就不一定相同
(3)char可以放下一个中文字符,因为java采用的是unicode编码,一个字符为两个字节。
4.写一个字符串反转的方法,把“abcdefg”转换成“gfedcba”。
String str = "abcdefg";
//方法一:利用StringBuffer的reverse()方法实现
public static String reverse2(String str) {
StringBuffer sb = new StringBuffer(str);
sb.reverse().toString();
return sb.toString();
}
//方法二:
public static String reverse(String str) {
if (str == null) {
throw new NullPointerException();
}
return (new StringBuffer(str)).reverse().toString();
}
//方法三:参照StringBuffer的reverse()方法
public static String reverse(String s){
int length=s.length();
StringBuffer result=new StringBuffer(length);
for(int i=length-1;i>=0;i--)
result.append(s.charAt(i));
return result.toString();
}
5.替换字符串,把“abc.abc.abc”替换成“abc/abc/abc”。
String rep = "abc.abc.abc";
String rep2 = rep.replaceAll("\\.", "/");
//由于.是特殊字符,需要加上\\转义,否则全部转换成/了
6.类型转换,把int类型的“123456”转换成String后再转换为int,方法越多越好。
int i = 123456;
将整数i转换成字串 s
1.) String s = String.valueOf(i);
2.) String s = Integer.toString(i);
3.) String s = "" + i;
将字串 s 转换成整数 i
1.)int i = Integer.parseInt(s);
2.)int i = Integer.parseInt(s,10);//int radix为进制
3.)int i = Integer.valueOf(s).intValue();
注: double, float, long 转换的方法大同小异.
7.日期处理,取得从1970到现在的毫秒数,格式为yyyy-MM-dd-HH:mm:ss再转换成String输出。
//获取当前系统的时间new
java.util.Date date = new java.util.Date();
//取得从1970年到现在的毫秒数
long now = date.getTime();
//格式化日期
java.text.SimpleDateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//转为字符串
String dateStr = df.format(date);
8.io文件操作,指定一个文件夹,C:\temp\test,
判断是否存在,存在则列出其下所有文件名,包括子目录以及下面的文件,不存在则新建该文件夹。
http://www.byfor.cn/html-155286-1.html