标签:android style blog http color java 使用 数据
(一)操作符一章的int类型数据溢出的问题在Java7的版本中仍然存在,而且溢出的结果千奇百怪。
public class Hello { public static void main(String[] args) { int i = Integer.MAX_VALUE; System.out.println(i); System.out.println(i*4); System.out.println(i*5); } }结果分别为2147483647,-4,2147483643。
当应用中的数据超过int的最大值时,就不能用int类型了。
(二)控制流程一章值得注意的是For语法(用来遍历数组和容器)和标签。
Java没有goto,先说很少接触到的标签,这标签的功能和goto类似。
public class Hello { public static void main(String[] args) { Label1: for (int i = 1; i < 10; i++) { for (int j = 1; j < 10; j++) { System.out.println(j); if (j == 2) { break Label1; } } } } }
For遍历的语法。
public class Hello { public static void main(String[] args) { int[] i = {1,2,3,4,5,6,7,8,9,0}; for(int k = 0; k< i.length;k++){ System.out.println(i[k]); } for(int j:i){ System.out.println(j); } } }明显后者遍历的语法更加简洁,应用于容器的以后会提到。
(三)接下来就是初始化与清理的问题。
(1)首先是方法重载的问题。重载方法同名字,但是参数类型,甚至参数的顺序不同都可以(最后一个不提倡,如果就单单改变顺序的话传参易出错)。
public class TV { TV(String name){ } void control(){ } /*int control(){ * return 1; }*/ void control(int page,String name){ } void control(String name,int page){ } }如上,重载的方法不能同参数同名不同类型,因为编译器根本就不知道你要用哪个。
此时如果用new出TV对象的话,是会出错的,因为默认是给你一个构造器的TV(){}
但是你此时自己自定义构造器,那么编译器就会觉得你自己弄的,那么默认的构造器你也自己去写。
(2)this关键字
以前博客也有一个问题的答案就是this
this在方法内部使用,获得当前对象的引用。
public class TV { String name; int price; void point(String name){ this.name = name; } TV(String name){ this.name = name; } TV(int price,String name){ this(name); this.price = price; }经常使用的,其实就是将传参的name赋给TV的name。this也可以调用自己的构造器。
(3)垃圾回收
(4)初始化问题
public class TV { int price; //字段为基本类型时,会自动初始化,int默认为0 TV tv;//引用的话默认为null void point(){ int p; // System.out.println(p); 局部变量需要自己初始化 } }
之前一直想不明白那句,static方法内部不能调用非静态方法,昨天看的时候大拍了一下自己的大腿,其实,static可以让你直接用类来访问该方法,但是如果里面可以调用静态方法,那么两者就没什么区别了,可以互相嵌套。
静态数据的初始化,static修饰的静态存储区域会先初始化,而且就初始化一次。这样说的话,其实我们没有写的默认构造器其实也是static方法,最先初始化。
(6)可变数组参数
参数后面加3个点,很奇葩的用法:
public class TV { static void point(int... price){ for(int i :price){ System.out.println(i); } } public static void main(String[] args) { TV.point(); TV.point(1); int[] p = {1,2,3,4,5}; TV.point(p); } } /*result: 1 1 2 3 4 5 */可变数组参数,可以是空,可以一个,可以多个。
初始化是基础的东西,写程序的时候的低级错误的一些原因在此,经常就是初始化的没初始化。还有static的顺序也是优先的。
Java编程思想(二) —— 初始化与清理,布布扣,bubuko.com
标签:android style blog http color java 使用 数据
原文地址:http://blog.csdn.net/iaiti/article/details/38415165