Javac是编译程序,"Javac 文件名"编译成功后,会生成.class文件。
java是执行程序,"Java 文件中的类名"
一、Java基础语法
Java的标识符命名规则:
1、Java的标识符大小写敏感
2、标识符由字母、数字、下划线、美元符号组成。首字符需要是字母。
3、类名,首字母大写,后续每个单词首字母大写
4、方法名,首字母小写,后续每个单词首字母大写。所有java程序由Public static void main(String []args)主方法入口开始。
Java的注释:
类似C、C++的注释,单行注释以//标识,多行注释以/* */标识
二、Java基础数据类型
Java包含八中基本数据类型,包含6中数字类型、1种字符类型、1中布尔类型:
byte:8bit有符号数,Java中默认值0
short:16bit有符号数,Java中默认值0
int:32bit有符号数,Java中默认值0
long:64bit有符号数,Java中默认值0
float:32bit浮点数,Java中默认值0.0f
double:64bit浮点数,Java中默认值0.0d
char:16bit字符,Java中默认值'u0000'
boolean:true/false,Java中默认值false
在jave中这些基本数据类型以常量方式定义在包装类中。可以通过估下方式获取这些基本数据类型的属性。以int为例,类名称为Integer,获取属性:
Integer.SIZE
Integer.MIN_VALUE
Integer.MAX_VALUE
Java中的常量定义:
通过final修饰,如:final float PAI = 3.14。常量标识符建议采用全大写。
类型转换:
自动类型转换:Java的基本类型运作过程中可以混合使用,Java会自动进行类型转换:byte,short,char—> int —> long—> float —> double
强制类型转换:int i = 3;byte b = (byte)i;
三、java面向对象类型
Java包含如下基本概念:类、对象、方法、变量实例
类:
是一个模板,抽象一类对象的方法和属性。
一个类包含如下对象:
(1)局部变量:在类的方法中定义,其生命周期仅限于方法内,在方法执行时创建,方法执行完毕后释放。
(2)成员变量:在类内、方法外定义,一般是类的属性。其生命周期限于类对象生命周期期间,其在类对象实例化时创建,类对象释放时释放。实例变量最小需要被一个方法、构造方法引用,使得通过这些方法可以操作成员变量。
(3)类变量(静态变量):类变量为Static类型,此类的所有对象共用类变量的一个拷贝。类变量存储在静态存储区,在首次被访问是创建,在程序结束时释放。
一个类包含如下方法:
(1)构造方法:构造方法的名称必须和类名相同。
(2)其他方法。
对象:
是类的一个实例,有方法和属性。
通过new来创建对象。创建对象时会调用类的构造方法来初始化对象。
包和文件:
类和对象定义在.java源文件中:
(1)一个源文件只可包含一个Public类 + 多个非Public类
(2)源文件的文件名必须和Public类的类名一致。中,如果给出一个完整的限定名(包含包名、类名),Java编译器就很容易定位到源代码或者类。
(3)源文件的类可以定义在某个包中(package依据)。源文件可以通过import引用其他包。源文件中package语句需要在import语句之前。package、import语句对源文件中所有类都有效,同一源文件中不能给不同的类不同的包声明。
一个程序可能包含成千上百的类。包主要用于对类和接口进行分类。
在Java中,如果给出一个完整的限定名(包含包名、类名),Java编译器就很容易定位到源代码或者类。
四、Java的修饰符
访问控制修饰符:
default:在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。(和protected区别:protected不同包的子类可见;default不同包的子类不可见)
public:对所有类可见。使用对象:类、接口、变量、方法
protected:对同一包内的类和所有子类可见。使用对象:变量、方法。
private:在同一类内可见。使用对象:变量、方法。
访问控制修饰符的继承:
父类中声明为public的方法在子类中也必须为public。
父类中声明为protected 的方法在子类中要么声明为protected,要么声明为public,不能声明为private。
父类中声明为private 的方法,不能够被继承。
非访问控制修饰符:
static:用来修饰方法和类变量。
静态变量:用于声明类的静态变量。局部变量不能被声明为static。
静态方法:用来声明独立于对象的静态方法。静态方法不能使用类的非静态变量。
final:用来修饰类、方法和变量
修饰类:修饰的类不能够被继承。
修饰方法:修饰的方法不能被继承类重新定义。
修饰变量:修饰的变量为常量,不可修改。
abstract:用来创建抽象类和抽象方法。
抽象类:抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。抽象类可以包含抽象方法和非抽象方法。
抽象方法:抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。抽象方法不能被声明成 final 和 static。
synchronized、volatile:主要用于线程的编程。
synchronized关键字声明的方法同一时间只能被一个线程访问。
volatile修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
五、Java运算符
类同C、C++。
instanceof运算符:检查该对象是否是一个特定类型(类类型或接口类型)。如:String name = "James"; boolean result = name instanceof String;