上海易娱实习心得1.1

2013.9.9以及2013.9.10

已经系上海易娱工作第二日,正在过着昼夜不分噶代码生活,刺激、新奇、好玩,心情犹如滔滔江水连绵不绝

 

,虽然艰苦万分但系学到噶野系成正比噶,仲见到好多未使用过噶软件,java5噶新功能感觉比较神奇

 

,Frank噶视频讲得唔错,清晰易明,如果有机会真想可以亲身体验一番,系视频入边听到噶课堂气氛一个

 

字:great!! 比起大学入边D老师犹如天渊之别。

岩岩扯得好似比较远啦,宜家分享下呢两日新认识噶java5出现新知识点和个别重点(部分运用的是伪代码):

 

一、

public int sum(int...numbers){

return 0;

}

 

一开始见到呢段代码我仲以为系杨帆写错,听下听下竟然系java5噶新知识,真估唔到sun(宜家sun比

 

oracle收购左)想法如此大胆,正常人大概知道呢个参数究竟系乜意思吧?

无错,代表噶系唔确定参数的个数,也就是可以这样子调用这方法,例子:

 

int value = sum(1);

int value = sum(1,2);

int value = sum(1,2,3);

.......

 

 

二、

int[] a1 = new int[]{1,2,3};

for(int a : a1){

System.out.println("\t"+a);

}

 

结果: 1 2 3

 

java的代码变得越来越灵活,清晰易懂,可以理解为:

 

for(int i=0;i<a1.length;i++){

System.out.println("\t"+a1[i]);

}

 

三、

@SuppressWarnings("unused")

 

你在使用IDE如eclipse的时候,当你定义了一个变量如int a=0;但是你后面根本就没有使用到这个变量,

 

这一行的前面会有一个黄色的警告标志,你将鼠标移动到上面会提示“这个变量从未被使用”,你用上面

 

的标注后就没有这个提示了。

 

四、

4.1、

class:Student

int id;

String name;

 

public setId(int id);

public setName(String name);

 

@Override

public String toString(){

return "id:"+id+",name:"+name;

}

 

main:

Student stu1 = new Student(11,"Tom");

Student stu2 = stu1;

System.out.println(stu2);

stu1.setId(12);

System.out.println(stu2);

 

结果:

id:11,name:Tom

id:12,name:Tom

 

这里有两个知识点:1、对象的赋值是引用:可理解为传递的是地址而不是值,所以改变stu1的属性,stu2

 

的属性也会跟着发生变化。2、重载toString()函数,只要在类中重载toString()函数,调用

 

System.out.println()就可以实现输出的内容。

 

五、

5.1、

利用Comparable接口实现类对象的排序问题:

class:Student implemenets Comparable

int id;

String name;

 

@Override

public int compareTo(Student that){

if(this.id>that.id){

return 1;

}

if(this.id<that.id){

return -1;

}

return 0;

}

 

@Override

public String toString(){

return "id:"+id+",name:"+name;

}

 

main:

Student[] stu={

new Student(23,"Tom"),

new Student(11,"Marry"),

new Student(28,"home")

};

 

Arrays.sort(stu);

System.out.println(Arrays.toString(stu));

 

结果为:[id:11,name:Marry ,id:23,name:Tom ,id:28,name:home]

 

要实现类对象数组的内容根据id排序必须重写Comparable里的compareTo()方法,这里又运用了4.2的重写

 

toString方法实现方便的输出。

 

5.2

利用Comparator接口实现类对象的排序问题:

class StudentComparator implements Comparator{

@Override

public int compare(Student x,Student y;){

if(x.Id>y.Id){

return 1;

}

if(x.Id<y.Id){

return -1;

}

return 0;

}

}

 

main:

Arrays.sort(stu,new StudentComparator);

 

结果为:[id:11,name:Marry ,id:23,name:Tom ,id:28,name:home]

 

Comparator跟Comparable其实差不多,都是比较但是请看清楚他们需要重写的方法是不同的,参数的数量

 

也是不同的。

 

六、

对象的比较其实是地址的比较:

String str1="Hello Word";

String str2="Hello Word";

String str3=new String("Hello Word");

 

String 其实是一个对象而不是基本变量;

java简化了String的操作,String str1="Hello word";已经在内存里新建了一个空间存储;

 

System.out.println(str1 == str2);  //输出的是true

这是一个特例,因为"Hello word"已经存在,java优化了程序直接把str2指向str1的"Hello word"

 

 

System.out.println(str1 == str3);  //输出的是false

因为str3=new String("Hello word"),运用了new所以内存新建了另外一个空间存储

 

注意:String str=new String("Hello word");

这一句代码在内存中新建了两个空间,一个是"Hello word",另一个是new出来的。

 

注意:System.out.println(str1.equals(str3));  //输出的是true

因为equals做的是值的比较而不是地址的比较。

 

七、

int i=1;

i=-+-i++;

System.out.println(i);

 

结果为: 1

 

先做i++ 因为++在后所以当时值还是1,再做-+-,+是没有意义的,所以两个负等于正,结果为1。

 

八、

outer:  for(int i=0; i<9 ;i++){

inner:  for(int j=0 ;j<9 ;j++){

System.out.println("i:"+i+" j:"+j+"\t");

// break outer;   //退出两个循环

// continue outer; //重新进入outer

}

System.out.println();

}

 

时间过得真系快,又要同大家讲拜拜,精彩听日继续!!

你可能感兴趣的:(Lotus)