1、spring和springMVC的区别~
2、serialVersionUID的作用?
3、Servlet的本质是什么?
4、Spring IOC的理解,超到位!
5、十大经典排序算法(动图演示!)
6、深入了解Java中的String!超深
7、int和Integer到底有什么区别?
8、Java的命名规范!
9、null和“”的区别!
- 1、做成员变量(字段/属性/类变量)时,如果只写String str;那么是默认赋值为null的。null的话,你屏幕输出(toString方法)的结果为字符串null,但其它调用str的操作,编译可通过,运行时会空指针异常,此时是异常。
- 2、做局部变量(方法里的变量)时,如果只写String str;是不会默认赋值null的,这里仅声明了一个str变量,在栈内存中有定义,但没有任何值,null其实也是一种值。此时任何调用str的操作,编译时就均会报错,是error,不是异常。
- 3、“”是空字符串,但是也是字符串,没有什么东西。 而null是空的意思,什么都没有,没有地址
10、==和equals()方法的区别?
我补充一下equals的源码,来自jdk1.7,String类中
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
可见equals可以理解为是==的扩展。
简单来说,==比较的是值和地址,equals比较的是值。
重要的是字符串的比较用equals!,用equals!,用equals!
11、到底什么是面向对象!
总结一下:
面对对象就是:
把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。
面向过程就是:
自顶向下顺序执行,逐步求精;其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。程序流程在写程序时就已决定。