穿别人的鞋

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,
判断是否存在,存在则列出其下所有文件名,包括子目录以及下面的文件,不存在则新建该文件夹。
import java.io.*;

public class ListFiles {
private static String listFileStr = "用java程序自动生成的文件目录:\r\n";//文件头部声明

public static void main(String[] args) {
try {
File saveFile = new File(args[1]);
FileWriter fw = new FileWriter(saveFile);
ListFiles lf = new ListFiles();
lf.listFile(args[0]);
fw.write(listFileStr);
fw.close();
} catch (ArrayIndexOutOfBoundsException ea) {
// 参数提示
System.out.println("Usage: ListFiles <source dir> <target file>");
ea.printStackTrace();

} catch (IOException e) {
System.out.println("IO error!\r\n" + e.toString());
}

}

public void listFile(String rp) {

File file = new File(rp);
File list[] = file.listFiles();
for (int i = 0; i < list.length; i++) {
try {
if (list[i].isDirectory()) {
new ListFiles().listFile(list[i].toString());
} else {
listFileStr += list[i].getAbsolutePath() + "\r\n";
System.out.println(list[i].getAbsolutePath());
}
} catch (Exception ex) {
listFileStr += "Access deny:" + list[i].getAbsolutePath()
+ "\r\n";
System.out.println("Access deny:" + list[i].getAbsolutePath());
}
}
}

}

9.继承类,先初始化构造方法还是先初始化静态变量?静态方法在调用前会不会被初始化?
public class Test2 {
public static void main(String[] args) {
Parent parent = new Child();
parent.show();
parent.print();
}
}

public class Parent {
{
System.out.print("1");
}
static {
System.out.print("2");
}
Parent(){
System.out.print("3");
}
public void show(){
System.out.print("4");
}
public static void print(){
System.out.print("5");
}
}

public class Child extends Parent {
{
System.out.print("6");
}
static {
System.out.print("7");
}
Child(){
System.out.print("8");
}
public void show(){
System.out.print("9");
}
public static void print(){
System.out.print("10");
}
}
输出的结果是:27136895
结论是:子类实例化先初始化父类静态变量、子类静态变量;再初始化父类的内部类、构造方法,然后初始化子类内部类、构造方法。
静态方法在调用前不会被初始化,但子类调用的是父类的方法--即静态方法不能覆盖。

10.jsp有那些内置对象?
jsp的内置对象有九个:
aplication session request response out
page pageContext config exception

11.jsp中动态Include与静态Include分别是什么,两种方式有什么区别?

动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。
静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面 <%@ include file="included.htm" %>

12.两种重定向方式forward和redirect有什么区别?
forward 和redirect的区别:
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。

13.对mvc的理解
MVC(Model View Control)模型-视图-控制器,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。

14.servlet的流程
Servlet分标准Servlet和过滤器和监听器三种。
Servlet是Web服务器端的程序,当页面提交请求时,浏览器会将这个请求封装成一个request对象发送到服务器端,服务器端接收到这个request请求之后由对应的Servlet来处理,并将处理后的结果,封装成response对象返还给浏览器。


15.谈谈Ajax和使用的框架
Ajax是异步JavaScript和XML,有机地利用了一系列相关的技术。
Ajax的核心是以JavaScript,css,DOM,xml运用XMLHttpRequest对象进行客户端与服务器间的数据传输。
实现局部刷新功能和将状态保存在客户端,从而常用资源可以有效被缓存和利用,可以由客户端处理一些服务器端处理的功能。
如果要防止缓存可以在ajax发送请求前加上xmlHTTP.setRequestHeader("If-Modified-Since","0");或url后面加个随机时间。
Ajax基本函数封装在一个js里面,只要根据实际覆盖回调的业务方法就可以了。

16.作用域public,private,protected,以及不写时的区别
区别如下:
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为friendly
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值