第一天

1:实例化一个对象的时候,静态变量,静态初始化块,普通变量,普通初始化快,构造函数的创建顺序:

 

静态初始化变量
静态初始化方法
普通变量
普通初始化快
构造方法

 

 

2:当有继承关系的时候:

 

父类静态变量
父类静态初始化块
子类静态变量
子类静态初始化块
父类普通变量
父类普通初始化块
父类构造函数
子类普通变量
子类普通初始化块
子类构造函数

 

 

3:静态变量和静态初始化快的先后顺序是:

根据在类当中的声明顺序来定。

 

4:到底创建了几个对象

String str = new String("abc");//创建了两个对象

 

 

string a = "abc";//创建了一个对象

 

 

string b = "abc";

string c = "abc";//创建了一个对象

 

 

string d = "ab" + "cd";//创建了一个对象

 

string a = "ab";

string b ="cd";

string c = "abcd";

string e = a + "cd";//e != c

string d  = "ab" + "cd";// d == c

 

 

public static final string A = "ab";

public static final string B = "cd";

string s = A + B;

string t  = "abcd";//s == t;

 

public static final string A ;

public static final string B;

static{

  A = "ab";

  B = "cd";

}

string s = A + B;

string t  = "abcd";//s != t;

 

 

string s = new string(new char[]{'a','b','c','d'});

string t = s.intern();// t != s,因为这个时候t指向的是字符串池中的对象,而s 不是

 

 5:变量的覆盖

class Parent(){

  int i = 10;

}

 

class child extends Parent (){

  int i = 30;

 

public static void main(String[] args){
  new Child();
  Parent par = new Child();
  Child child = new Child();
  System.out.println(par.i + child.i);//值是40

//属性的值取父类还是子类,不是由对象的类型来决定的,而是由我们定义的变量的类型来决定的;

//补充:方法是取子类的类型,这是多态。

//常量也可以被覆盖
 }

}

 

6:final,finally,finalize的区别

final修饰的变量只能被初始化一次,且必须被初始化,在初始化的时候有一个static变量和static方法快互斥的关系。

final修饰方法的时候表示该方法不能被子类重写。

final修饰类的话表示该类不能被继承,所以final不能和abstract一起使用。

finalize表示gc在进行垃圾回收的时候调用该方法。

 

7:string 和 char

一个中文是一个字符,也就是两个字节,一个char是两个字节;一个英文字母是一个字节,所以:

char a = '中';//正确

byte b ='国';//错误

byte c = 'a';

System.out.println(c);//97,而不是a

 

判断一个string str1在不同的编码方式encodetype(如gbk,utf-16)下有几个字节:

str1.getBytes(encodetype).length;

 

string s1 和stringbuffer sb1的联系:

stringbuffer sb1 = new stringbuffer(s1);//sb1.reverse().toString()

 

string str1 和 char c1的联系:

str1 = String.valueOf(c1);

 

string str1 和byte数组byte[] tmp的关系:

str1 = new String(tmp);

 

 

8:Date和Calendar(一个抽象类)

date类基本上只有一个getTime方法(1262256841918),system.out.println(date)打印的值是(Thu Dec 31 18:55:01 CST 2009)。

 

因为Calendar是一个抽象类,所以不能被初始化,它有一个具体的子类实体类,GenerationCalendar,这个类可以通过new方法实例化,也可以通过Calendar.getInstance()来获得。

calendar对象就有很多的属性可以被我们的程序使用:

cal.DATE;
  cal.DAY_OF_MONTH;
  cal.DAY_OF_WEEK;
  cal.DAY_OF_WEEK_IN_MONTH;
  cal.DAY_OF_YEAR;
  cal.DECEMBER;
  cal.DST_OFFSET;
  cal.AM_PM
  cal.SECOND
  cal.MILLISECOND

等等。

 

Date和Calendar之间的转换:

Date d1 = cal.getTime();

 

9:基本数据类型:

double

float

long

 

double d1  = 7L;//正确

float f1 = 7L;//正确

long l1 = 2f;//错误

long l2  3d;//错误

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值