总结,也是为了更新博客

来源:互联网 发布:淘宝店铺排名怎么看 编辑:程序博客网 时间:2024/06/05 14:11

许久未更新。。。因为之前一直在看法语,准备法语考试。。。

考好后才开始慢慢又复习java,看android的东西。

为了更新blog,总结一下这几天看的东西中值得记录的部分。

一、1.7之后,switch表达式类型,不仅支持等价为int 基本类型的数据:byte,short,char,int还可以支持String类型的数据。eg: 
String str = "gay";

switch(str) {

 case "gay":

        ;

}

二、静态方法不能调用非静态变量。或许是因为静态的是属于类,非静态的是属于对象,因此不能被调用?

三、只要代码被执行,则无论代码能否被执行(哪怕编译通过,执行报错)静态代码块都会被执行。是因为它是属于类,在运行的时候就已经被装载执行了么?静态代码块的作用一般是用于为静态属性赋值。

四、八个基本数据类型:byte short int long float double charboolean;三个引用数据类型:class interface array

五、byte、short、int、long被赋值的时候,它们的字面量都为int,而float和double被赋值时,其字面量都为double型。但是又有一个很奇怪的现象是,比如:

float f = 0.2; //会报错,说可能损失精度,这是因为f为float,而0.2为double;应改为 float f= 0.2F;

byte b = 2;    //没问题,但是2为int,而b是byte,为什么会ok?

int i = 5;    byte j = i + 1;//这样又会报可能损失精度的问题

long lo = 9;  int ji = lo +1;//这样也会报可能损失精度的问题

猜测:可能byte short int是特殊的,其字面量分别是byte short int,当然它们本质上都是整型嘛。

六、Unicode为每种语言的每个字符设定了统一且唯一的二进制码,范围为:0-0x10FFFF;因为java使用的是Unicode编码,所以chara = 'A';和char b = '汉';本质上是一样的。

七、从继承、super、this等等来看,java作为一种面向对象语言,所思所想都是如何减少重复代码,用最简单的方式,最精简的代码模拟现实世界。

八、对于new一个对象,其引用在栈内存中,其实际对象是在堆内存中。自动垃圾处理回收的只是堆内存中的资源,所以一些对读写接口的打开啊等等什么的,要记得读写好要断开关闭。

九、匿名对象,一般被使用一次,比如:

class Person {

int i;

void eat() { }

}

在其他的地方调用匿名对象new Person().eat();   newPerson().i;

十、static方法、static变量可以直接用类名调用,也可以用对象名调用。

十一、overload与override

overload:

1、在同一个类中

2、除了参数列表,两个方法的其他定义都相同

3、一般用于不同参数数量的多个构造函数,以及几个不同参数数量的同名方法

override:
1、在具有父子关系的两个类当中
2、父类和子类各有一个方法,它们的定义(返回值类型、方法名和参数列表)完全相同

3、一般是子类方法对于其继承的父类方法的完善、补充

十二、继承时,子类继承的是父类的成员变量和成员方法;子类的构造方法必须用super调用父类的构造方法。

十三、当用于调用本类或父类中的构造函数时,因为super和this都必须放在一个构造函数方法体中的第一行,所以他们不能同时出现,也不可能单个多次出现。

为什么是十三点,那就再加一点。。

十四、重要的是面向对象的思想,不要用java的语法写一个标准的C语言程序。虽然很多Chinglish已经变成日常惯用语,如longtime no see,但是学习最重要的是一种思维方式吧,就像dota更重要的应该是意识而非操作。额,有点形而上学了。。

多静下来想一想,总结总结。



原创粉丝点击