1、java不能像其他语言一样使用整数类型判断。java中Integer与boolean两种类型并不相容。

只能用下面这种方式判断:

boolean isHot = true;
while(isHot) {
}

 2、java主数据类型位数

  “字节”是byte,“位”是bit ;

  1 byte = 8 bit ;

  char 在java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。

  boolean无明确规定,认为占1bit

  byte----1字节  short-----2 int-----4 long-------8

  float-----4 double-------8

  float f = 32.5f-------除非加上f,否则所有带小数点的值都会被java当做double处理

  

int x = 24;
byte b = x;

是不被允许的,但java允许将小的数据复制给大数据类型

主数据类型有8种:boolean char byte short int long float double

给类、方法和变量命名时---------必须以字母、下划线或$开头,不能用数字开头

3、Dog d = new Dog(); //d成为对象引用变量

  d.bark();

  把d想成Dog的遥控器,可以通过他来执行工作

4、封装的基本原则:将实例变量标记为私有的,并提供共有的getter与setter来控制存取动作

  实例对象(声明在类中)没有默认值,

  

public class Demo {
	public static void main(String[] args) {
		int i;
		System.out.println(i+3);
	} 
}

   是错误的。

  数字的预设为0,boolean的预设为false,而对象引用为null;

  == 比较其中的字节组合    使用 == 来判别两个引用是否都指向同一对象;

5、ArraLlist只能携带对象而不是primitive主数据类型,但编译器能够自动的将primitive主数据类型包装成Object以存放在ArrayList中.

6、用final修饰符修饰类,表示它是继承(extends)树的末端,不能再被继承。如果你想要防止特定的方法被覆盖,可以将该方法标识上final这个修饰符。覆盖的规则:参数必须要一样,且返回类型必须要兼容。 不能降低方法的存取权限,比如你不能覆盖掉一个公有的方法并将它标记为私有。方法重载不能只有返回类型不一样而参数一样。

7、接口(interface)是一种完全抽象的类,即无法初始化,接口中的方法全是抽象的,需要被覆盖(implements)。在类前面加上abstract修饰后即无法初始化,抽象的方法没有实体,定义时直接以分号结束。

 8、子类可以通过super关键字调用父类方法,抽象的类可以带有抽象和非抽象的方法,如果类带有抽象的方法,则此类必定标识为抽象的。对super()的调用必须是构造函数的第一个语句。

9、方法调用和局部变量存在于栈中,所有的对象位于堆中(又称可垃圾回收的堆)。实例变量是声明在类中方法之外的地方。

10、非primitive的变量只是对象的引用而已,而不是对象本身。对象存在于堆。如果局部变量是个对该对象的引用,只有变量本身会放在栈上,对象本身只会存在于堆上。

11、如果你已经写了一个有参数的构造函数,并且你需要一个没有参数的构造函数,则你必须自己动手写,编译器只会在你完全没有设定构造函数时才会调用。

12、使用this()来从某个构造函数调用同一个类的另外一个构造函数。this()只能用在构造函数中,且必须是第一行语句。super()与this()不能兼得。

13、静态(static)的方法不能调用非静态的变量,也不能调用非静态的方法。同一类所有的实例共享一份静态变量。