java的特点:简单,面向对象,平台无关,多线程,动态。
对于应用程序,必须有一个类含有public static void main(String args[])的方法,含有该方法的类称为应用程序的主类。对于一个源文件至多有一个public类。
标识符
1.标识符由字母、下划线、数字和美元符号组成,长度不受限制。
2.第一个字符不能是数字字符。
3.不能是关键字。
4.不能是true,false和null。注意这三个不是java关键字。
5.标识符中的字母是区分大小写的。
java没有无符号的byte,short,int和long。因此,unsigned int m;是错误的变量声明。
char型数据一定是无符号的。
在使用System.out.println()和System.out.print()输出字符串常量时,不可以出现“回车”。
在java中构成二维数组的一维数组不必有相同的长度,java允许使用int型变量的值指定数组的元素的个数。
对于char类型数组a,System.out.println(a)不会输出数组a的引用而是数组a的全部元素的值。
System.out.println(""+a);可以输出char型数组a的引用。
instanceof运算符是java独有的二目运算符,左面的操作元是一个对象,右面是一个类。当左面的对象是右面的类或子类创建的对象时,该运算符运算的结果是true,否则是false。
switch语句中表达式的值(整型)可以是byte、short、int、char型,但不可以是long型数据。
多态:一种是操作名称的多态,另一种是和继承有关的多态。
类内的成员变量有默认值 整型-0,浮点型-0.0,boolean型-false,引用型-null ,但是局部变量没有默认值。
对象的引用存在栈中,对象的实体存在堆中。
分配给对象的变量被习惯地称作对象的实体,没有实体的对象称作空对象,空对象不能使用。
类变量的内存空间直到程序退出运行,才释放所占有的内存。
this是java的一个关键字,表示某个对象。this可以出现在实例方法和构造方法中,但不可以出现在类方法中。
Java语言不允许用户程序使用java作为包名的第一部分,例如java.bird是非法包名(发生行为异常)。
都是无包名而且在同一文件夹下的类就可以互相使用,无包名类也可以使用import语句来使用有包名的类,但是有包名的类无论如何也无法使用无包名的类。
Java不支持多重继承(子类只能有一个父类)。
重写父类的方法时,不允许降低方法的访问权限,但可以提高访问权限;访问权限由高到低的排列顺序是public,protected,友好的,private.
final关键字可以修饰类,成员变量和方法中的局部变量。
final类不能被继承,即不能有子类。final修饰父类中的一个方法,那么这个方法不允许自类重写,也就是说,不允许子类隐藏可以继承的final方法。
如果成员变量或局部变量被修饰为final,那他就是常量。由于常量运行期间不允许再发生变化,所以常量在声明时没有默认值,这就要求程序在声明常量时必须指定该常量的值。
不允许使用final和abstract同时修饰一个方法或类,也不允许使用static修饰abstract方法。
abstract类不能new运算符创建对象,但可以使用abstract声明对象,该对象可以作为其子类对象的上转型对象。
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。
static方法中不能使用this和super关键字,不能调用非static方法,只能访问所属类的静态成员变量和成员方法,因为当static方法被调用时,这个类的对象可能还没被创建,即使已经被创建了,也无法确定调用哪个对象的方法。同理,static方法也不能访问非static类型的变量。
static代码块在类中是独立于成员变量和成员函数的代码块的。注意:这些static代码块只会被执行一次
如果一个类要被声明为static的,只有一种情况,就是静态内部类。如果在外部类声明为static,程序会编译都不会过。
接口也可以被继承。
throw是java的关键字,该关键字的作用就是抛出异常。throw和throws是两个不同的关键字。
switch 语句中的判断表达式是int 类型,因此传递给switch 和case 语句的参数类型必须低于int 类型。支持类型包括int、short、char 和byte。