1."=="和equals方法究竟有什么区别:
package com.cz;
public class hello {
public static void main(String args[]) {
String a=new String("foo");
String b=new String("foo");
System.out.println(a==b);
System.out.println(a.equals(b));
}
}
控制台输出:
false
true
2.if(username.equals("haha"){} //这里应该写成这样 "haha".equals(username) 可以避免空指针异常
3.抽象类 与普通类的唯一区别就是不能创建实例对象和允许有 abstract 方法。
4.抽象类和接口 的比较:
接口,只是定义方法名。子类去实现具体细节。
抽象类的抽象方法与接口方法一样要子类去实现,但抽象类可以有具体的方法体。
比如做一个画面的功能。
定义一下画图的接口,一个画的方法。
这样,你可以有子类画矩形,画圆。。。。但这样,你不能做一些共通的功能。
如果是一个抽象类就好一些。
定义一个画图的抽象,一个抽象的画的方法。一个清除的友好方法。
这样你的子类都可以调清除方法。来清除画过的东西。
5.java生成当前时间的时间戳 :
System.out.println(new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));
6.整型
64位的int类型,,就是我们平时说的long
32位的int类型,就是我们平时说的int
16位的int类型 ,就是我们平时说的shot
7.String和StringBuffer的区别
String:
是对象不是原始类型.
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
String 是final类,即不能被继承.
StringBuffer:
是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
它只能通过构造函数来建立,
StringBuffer sb = new StringBuffer();
note:不能通过付值符号对他进行付值.
sb = "welcome to here!";//error
对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer
中付值的时候可以通过它的append方法.
sb.append("hello");
字符串连接操作中StringBuffer的效率要比String高.