Java知识总结完整版Word文档下载推荐.docx
《Java知识总结完整版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java知识总结完整版Word文档下载推荐.docx(71页珍藏版)》请在冰豆网上搜索。
运行java程序
javac:
编译java程序
java–version
一个源文件最多只能有一个public类,其他类数量不限,源文件名必须与public类名一致
Java应用程序的执行入口时main()方法:
publicstaticvoidmain(String[]args){…}
Java语言中严格区分大小写
编译后,每一个类都对应一个class文件
第2章基础语法
标示符由字母、下划线”_”、美元符”$”或数字组成
标示符应以字母、下划线、美元符开头
Java标示符对大小写敏感,长度无限制,注意“见名知意”且不能与Java语言关键字重名
abstract
default
if
private
this
boolean
do
implements
protected
throw
break
double
import
public
throws
byte
else
instanceof
return
transient
case
extends
int
short
try
catch
final
interface
static
void
char
finally
long
strctfp
volatile
class
float
native
super
while
const
for
new
switch
null
continue
goto
package
synchronized
goto和const虽然未使用,但也被作为Java的关键字保留
程序执行过程:
程序
1.load到内存区2.找到main方法开始执行3.执行过程中的内存管理
Java数据类型的划分
boolean类型数据只允许取值true或false,不可以使用0或非0的整数值取代true和false,这点和c语言不同
Java字符采用Unicode编码,每个字符占两个字节,因而可以用十六进制编码形式表示,例:
charc=‘\u0061’;
Java语言的整型常量默认为int类型,声明long型常量可以后加l或L
类型
占用存储空间
数值范围
1字节
-27~27-1
2字节
-215~215-1
4字节
-231~231-1
8字节
-263~263-1
Java浮点型常量默认为double型,声明float型需在数字后面加f或F
-3.403E38~3.403E38
-1.798E308~1.798E308
基本数据类型转换
boolean类型不可以转换为其他的数据类型
整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则:
容量小的类型自动转换为容量大的类型:
byte,short,char->
int->
long->
float->
byte,short,char之间不需要相互转换,他们三者在计算时首先会转换为int类型
可以将整型常量直接赋值给byte,short,char等类型变量,而不需要进行强制类型转换,只要不超过其表数范围
“+”除用于算术加法外,还可用于对字符串进行连接操作,“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接,当进行打印时,无论任何类型,都自动转换为字符串进行打印
break&
break语句用于终止某个语句块的执行。
用在循环语句中,可以强行退出循环
continue语句用在循环语句体中,用于终止某次循环过程,跳过循环体中continue语句下面未执行的循环,开始下一次循环过程
小心case穿透,推荐使用break语句
多个case可以合并到一起
default可以省略,但不推荐
java中switch语句只能探测int类型值
方法
形参、实参、返回值、返回值类型
Java中进行函数调用中传递参数时,遵循值传递的原则:
基本类型传递的是该数据值本身,引用类型传递的是对象的引用,而非对象本身
递归调用
递归调用指在方法执行过程中出现该方法本身的调用
第3章面向对象编程
类是用来创建同一类型的对象的“模板”,在一个类中定义了该类对象所应具有的成员变量和方法,对象可以看成是静态属性(成员变量)和动态属性(方法)的封装体,是该类的一个具体实例,在Java中“一切皆为对象”
继承、组合、实现、多态
类=成员变量+方法
成员变量系统可以对其自动初始化,局部变量不初始化会报错
引用
Java语言中除基本类型之外的变量类型都称之为引用类型(基本类型占一块内存,引用类型占两块内存)
Java中的对象时通过引用对其操作的
类时静态的概念,代码区
对象是new出来的,位于堆内存(动态分配内存用的),类的每个成员变量在不同的对象中都有不同的值(除了静态变量),而方法只有一份,执行的时候才占内存
对象
必须使用new关键字创建对象
同一类的每个对象有不同的成员变量存储空间(除了静态变量)
同一类的每个对象共享该类的方法
非静态方法时针对每个对象进行调用的(必须创建对象)
构造方法
使用new+构造方法创建一个新的对象
构造方法是定义在Java类中的一个用来初始化对象的函数
构造方法与类同名且没有返回值
当没有指定构造方法时,编译器为类自动添加形如类名(){}的构造方法
命名规则
类名的首字母大写
变量名和方法名的首字母小写
运用驼峰标识
方法重载(overload)
方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。
调用时根据不同的参数列表选择对应的方法
在类的方法定义中使用this关键字代表使用该类的对象的引用
有时使用this可以处理方法中成员变量和方法参数重名的问题
This可以看做是一个变量,它的值时当前对象的引用
publicclassLeaf{
intI=0;
Leaf(inti){this.i=i};
Leafincreament(){
i++;
returnthis;
}
voidprint(){System.out.println(“i=”+i);
publicstaticvoidmain(String[]args){
Leafleaf=newLeaf(100);
leaf.increament().increament().print();
在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份
用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员
静态方法不再是针对某个对象调用,所以不能访问非静态成员
可以通过对象引用或类名(不需要实例化)访问静态成员或方法
package&
为了解决类的命名冲突问题,Java引入的包(package)机制,提供类的多重类命名空间
package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包(若缺省该语句,则指定为无名包,裸体类)
Java编译器把包对应于文件系统的目录管理,package语句中,用“.”来指明包(目录)的层次,例:
packagecom.yao;
则该文件中的类位于.\com\yao目录下
如果将一个类打包,则使用该类时,必须使用该类的全名(例如:
com.yao.MyClass),Java编译器才会找到该类
也可以使用import在文件的开头引入要使用的类,例:
importcom.yao.MyClass
可以不需要用import语句直接使用java.lang包中的类
访问位于同一个包中的类不需要引入
class文件的最上层包的父目录必须位于classpath下
JDK中主要的包介绍
java.lang-包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能,使用时不需要引入(lang-language)
java.awt-包含了构成抽象窗口工具集(abstractwindowtoolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)
java.applet-包含了applet运行所需的一些类
-包含了与网络相关的操作的类
java.io-包含能提供多种输入/输出功能的类
java.util-包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数
java运行时所需的类位于jdk\jre\lib\rt.jar
打jar包,定位到需要打包的最上层的父路径
jar–cvfxxx.jar*.*(*.*指目录中所有文件夹打包)
jar包也可设为classpath变量
继承extends
通过继承,子类自动拥有了基类(superclass)的所有成员(成员变量和方法)(包括private成员,拥有私有变量的所有权,但无使用权)
Java只支持单继承,不允许多继承,一个子类只能有一个基类,一个基类可以派生多个子类
访问控制
权限修饰符public、protected、private、default(包访问权限)
修饰符
类内部
同一个包
子类
任何地方
√
X
对于class的权限修饰符只可以用public和default
public类可以在任意地方被访问
default类只可以被同一个包内的类访问
方法重写overwrite/override
在子类中可以根据需要对从基类中继承来的方法进行重写
重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型
重写方法不能使用比被重写方法更严格的访问权限
在Java类中使用super来引用基类的成分
继承中的构造方法
子类的构造过程中必须调用其基类的构造方法
子类可以再自己的构造方法中使用super(argument_list)调用基类的构造方法