Java一些基础知识
- 格式:pdf
- 大小:93.86 KB
- 文档页数:6
Java一些基础知识Java的特点:1、平台无关性:Java语言的处理方式既不是编译方式也不是解释方式,Java提供的编译器把源程序编译成称为“字节码”的一种中间代码。
字节码是很接近机器码的二进制文件,不能被机器直接识别,但是可以在提供了Java运行环境平台的任何系统上被解释执行。
2、面向对象3、多线程4、安全5、动态。
Java运行平台有三种:Java SE、Java EE、Java ME。
以安装Java SE 平台为例:安装Java后,进行环境变量的设置:我的电脑——属性——高级——环境变量,先进行Path的设置,先在后面加分号,再加bin的路径。
然后再新建Classpath,它由三部分组成:.;lib的路径\dt.jar;lib的路径\tools.jar。
bin是binary的缩写,是二进制的意思。
lib是libary的缩写,是库的意思。
设置好,点确定即可运行所写程序。
Java的编辑器是Javac。
Java应用程序的开发分三个步骤:编写源文件——编译源文件生成字节码——加载运行字节码。
Java应用程序的源文件由若干个书写形式互相独立的类组成。
一个Java应用程序必须有一个类含有public static void main(String args[])方法,称为该应用程序的主类。
源文件命名规则是:1、如果源文件中有多个类,那么只能有一个类是public类。
2、如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名为.java就可以了。
用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
Java语言规定,标识符有字母、下划线、美元符号和数字组成,并且第一个字符不能是数字。
标识符中的字母是区分大小写的。
注意:关键字不可以作为程序中的名字使用。
基本的数据类型有八种:逻辑类型:boolean;整数类型:int、short、long、byte;浮点类型:double、float;字符类型:char。
逻辑类型常量只有true和false。
整数类型中int类型变量内存分配给4字节(byte),整数的最高位是符号位,用来区分正数或负数。
正数用原码表示,最高位是0;负数用补码表示,最高位是1。
byte 类型变量,内存分配给1字节,占8位。
short类型变量,内存分配给2字节。
long类型变量,内存分配给8字节。
字符类型变量内存分配给2字节,最高位不是符号位,没有负数。
浮点类型中float类型变量内存分配4字节,double类型变量内存分配8字节,系统默认的是double类型,float类型后面要加上f(F)。
当我们把一种基本数据类型变量的值赋给另一种基本类型变量时,就涉及类型转换:当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。
当把级别高的变量的值赋给级别低的变量时,必须使用显式类型转换运算。
当把一个整数赋值给一个byte,short,int或long 类型变量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算。
数组是相同类型的数据按顺序组成的一种复合数据类型,声明一维数组的格式是:数组元素类型数组名字【】;数组元素类型【】数组名字;数组的元素的类型可以是Java的任何一种类型。
创建数组时,在为数组分配内存空间时必须指明数组的长度,其格式是:数组名字=new数组元素的类型【数组元素的个数】;声明数组和创建数组可以一起完成。
“数组名字.length”的值是数组中元素的个数。
数组属于引用型变量,因此两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。
加减、乘除和求余运算符都是双目运算符,结合性从左到右,加减运算符的优先级是4级,乘除和求余运算符的优先级是3级。
自增自减运算符都是单目运算符,操作元必须是一个整型或浮点型变量(不能是常量表达式),优先级是2级。
关系运算符的运算结果是boolean类型的数据。
逻辑运算符操作元是boolean类型的变量或求值结果是boolean类型的表达式。
&&和||的优先级级别分别是11和12级,结合性是从左到右。
!是单目运算符,运算级别是2级,结合性是从右到左。
移位运算符用来对二进制位进行操作,分为左移位操作和右移性操作。
条件运算符“?:”是唯一的一个三目运算符,需要三个操作元,要求第一个操作元的值必须是boolean类型的数据,当它的值为true时,运算结果是第二个操作元的值,当它的结果为false时,运算结果是第三个操作元的值。
表达式就是用运算符及操作元连接起来的符合Java规则的句子。
类是组成Java程序的基本要素。
类有两部分构成:类声明和类体。
“class类名”是类的声明,类名必须是合法的标识符。
类体有两部分组成:成员变量和方法。
成员变量是用来刻画类创建的对象的属性。
成员变量分为两种:实例变量和静态变量。
创建一个对象包括对象的声明和为对象分配成员变量两个步骤。
对象声明的一般格式为:类的名字对象名字;使用new运算符和类的构造方法为声明的对象分配成员变量,若没有构造方法,系统会调用默认的构造方法(默认的构造方法是无参数的)。
通过使用运算符“.”,对象可以实现对自己变量的访问和方法的调用。
一部分方法称为构造方法,是专门用来创建对象的。
另一部分方法可以分为实例方法和类方法。
用关键字static修饰的方法称为类方法,不用static修饰的是实例方法。
实例方法必须通过对象来调用,类方法可以通过类名调用。
包是Java语言中有效管理类的一种机制。
通过关键字package 声明包语句,Package语句作为Java源文件的第一条语句。
格式是package包名;包名应该避免与其他包名冲突。
程序如果使用了包语句,那么要将源文件编译后得到的全部字节码文件复制到目录中,如果事先将源文件保存到目录中,然后编译源文件,那么生成的字节码文件就直接保存到当前目录中。
起了包名之后,类的全名要加上包名,执行时要注意。
使用参数“-d”编译源文件,要多练习包的使用,熟能生巧。
可以用关键字private、protected和public来说明成员变量和方法的访问权限。
对于private成员变量或方法,只有在本类中创建该类的对象时,才能访问。
对于public成员变量或方法,在任何一个类中均可访问。
什么都不修饰的,在一个包中的类均可访问。
Protect成员变量和方法不涉及继承时,访问权限不变。
继承是一种由已有的类创建新类的机制。
利用继承可以有效地实现代码的重复使用,子类只需添加新的功能代码即可。
Java不支持多重继承,即子类只能有一个父类。
一个子类继承的成员应当是这个类的完全意义的成员,如果子类中声明的实例方法不能操作父类的某个成员变量,该成员变量就没有被继承。
使用关键字extends来声明一个类是另一个的子类。
如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是private的成员变量和方法,并且访问权限不变。
如果不在同一包中,那么子类继承了父类的protected、public成员变量和方法,访问权限不变。
子类也可隐藏继承的成员变量,只要名字相同,类型不必相同,子类就隐藏了继承的成员变量,但子类仍然可以用从父类继承的方法操作被隐藏的成员变量。
子类可以隐藏已继承的方法,通过方法重写来隐藏继承的方法。
只要子类中的方法的名字、返回类型、参数个数和类型与从父类继承的方法完全相同,就会被重写,如果子类想使用被隐藏的方法,必须使用关键字super,重写时,不可以降低方法的访问权限。
若方法的名字与父类中的相同,但参数不同,那么子类就实现了方法的重载。
为了克服单继承的缺点,Java使用了接口,一个类可以实现多个接口。
关键字interface来定义一个接口。
接口的定义分为接口的声明和接口体。
接口体中包含常量定义和方法定义两部分,接口中只进行方法的声明,不允许提供方法的实现,所以方法的定义没有方法体。
一个类通过使用关键字implements声明自己实现一个或多个接口。
如果实现多个接口,用逗号隔开接口名。
如果一个类实现某个接口,那么这个类必须实现该接口的所有方法,即为这些方法提供方法体。
接口中的方法默认的是public和abstract的,接口在声明方法时可以省略方法前面的关键字public和abstract,但是类在实现接口方法时一定要用public来修饰。
类实现的接口方法以及接口中的常量可以被类的对象调用。
如果父类实现某个接口,那么子类也就自然实现了该接口,子类不必再显式地使用关键字implements声明自己实现这个接口。
接口也可以被继承,子接口将继承父接口中的全部方法和常量。
接口回调是多态的另一种体现。
使用某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口中的方法,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。
抽象类与接口的比较:抽象类和接口都可以有抽象方法。
接口中只可以有常量,不能有变量;而抽象类中即可以有常量,也可以有变量。
抽象类中也可以有非抽象方法,接口不可以。