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声明自己实现这个接口。

接口也可以被继承,子接口将继承父接口中的全部方法和常量。

接口回调是多态的另一种体现。

使用某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口中的方法,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。

抽象类与接口的比较:抽象类和接口都可以有抽象方法。

接口中只可以有常量,不能有变量;而抽象类中即可以有常量,也可以有变量。

抽象类中也可以有非抽象方法,接口不可以。