Java知识总结-完整版精品资料.docx
《Java知识总结-完整版精品资料.docx》由会员分享,可在线阅读,更多相关《Java知识总结-完整版精品资料.docx(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章 Java概述Java语言的特特点一种面向对象的语言;一种平台无关的语言;一种健壮的语言,吸收了C/C+的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)Java的两种核心机制Java虚拟机(Java Virtual Machine)垃圾回收机制(Garbage Collection)源程序(*.java文件)Java编译器字节码(*.class文件)类装载器字节码校验器解释器操作系统平台一次编译,随处运行Java是一种解释型语言JDK(Java Development Kit)软件开发工具包JRE(Java Runtime Environment)运行时环境开发需要
2、JDK;用户只需JREPATH:WINDOWS系统执行命令时要搜寻的路径(如javac.exe,java.exe)CLASSPATH:Java在编译和运行时要找的class所在路径(“.”代表当前路径)java:运行java程序javac:编译java程序java version一个源文件最多只能有一个public类,其他类数量不限,源文件名必须与public类名一致Java应用程序的执行入口时main()方法:public static void main(String args)Java语言中严格区分大小写编译后,每一个类都对应一个class文件第2章 基础语法标示符由字母、下划线”_”、
3、美元符”$”或数字组成标示符应以字母、下划线、美元符开头Java标示符对大小写敏感,长度无限制,注意“见名知意”且不能与Java语言关键字重名abstractdefaultifprivatethisbooleandoimplementsprotectedthrowbreakdoubleimportpublicthrowsbyteelseinstanceofreturntransientcaseextendsintshorttrycatchfinalinterfacestaticvoidcharfinallylongstrctfpvolatileclassfloatnativesuperwhil
4、econstfornewswitchnullcontinuegotopackagesynchronizedgoto和const虽然未使用,但也被作为Java的关键字保留程序执行过程: 内存 硬盘 heap堆new出来的东西代码操作系统代码 程序 程序stack栈局部变量data segment静态变量字符串常量code segment存放代码1.load到内存区 2.找到main方法开始执行 3.执行过程中的内存管理整数类型(byte、short、int、longJava数据类型的划分数值型浮点类型(float、double)字符型(char)基本数据类型 数组接口(interface)布尔型
5、(boolean)引用数据类型数据类型类(class)boolean类型数据只允许取值true或false,不可以使用0或非0的整数值取代true和false,这点和c语言不同Java字符采用Unicode编码,每个字符占两个字节,因而可以用十六进制编码形式表示,例:char c = u0061;Java语言的整型常量默认为int类型,声明long型常量可以后加l或L类型占用存储空间数值范围byte1字节-2727-1short2字节-215215-1int4字节-231231-1long8字节-263263-1Java浮点型常量默认为double型,声明float型需在数字后面加f或F类型占
6、用存储空间数值范围float4字节-3.403E383.403E38double8字节-1.798E3081.798E308基本数据类型转换boolean类型不可以转换为其他的数据类型整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则:容量小的类型自动转换为容量大的类型:byte,short,char-int-long-float-doublebyte,short,char之间不需要相互转换,他们三者在计算时首先会转换为int类型可以将整型常量直接赋值给byte,short,char等类型变量,而不需要进行强制类型转换,只要不超过其表数范围“+”除用于算术加法外,还可用于对字符
7、串进行连接操作,“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接,当进行打印时,无论任何类型,都自动转换为字符串进行打印break&continuebreak语句用于终止某个语句块的执行。用在循环语句中,可以强行退出循环continue语句用在循环语句体中,用于终止某次循环过程,跳过循环体中continue语句下面未执行的循环,开始下一次循环过程switch小心case穿透,推荐使用break语句多个case可以合并到一起default可以省略,但不推荐java中switch语句只能探测int类型值方法形参、实参、返回值、返回
8、值类型Java中进行函数调用中传递参数时,遵循值传递的原则:基本类型传递的是该数据值本身,引用类型传递的是对象的引用,而非对象本身递归调用递归调用指在方法执行过程中出现该方法本身的调用第3章 面向对象编程类是用来创建同一类型的对象的“模板”,在一个类中定义了该类对象所应具有的成员变量和方法,对象可以看成是静态属性(成员变量)和动态属性(方法)的封装体,是该类的一个具体实例,在Java中“一切皆为对象”继承、组合、实现、多态类 = 成员变量 + 方法成员变量系统可以对其自动初始化,局部变量不初始化会报错引用Java语言中除基本类型之外的变量类型都称之为引用类型(基本类型占一块内存,引用类型占两块
9、内存)Java中的对象时通过引用对其操作的类时静态的概念,代码区对象是new出来的,位于堆内存(动态分配内存用的),类的每个成员变量在不同的对象中都有不同的值(除了静态变量),而方法只有一份,执行的时候才占内存对象必须使用new关键字创建对象同一类的每个对象有不同的成员变量存储空间(除了静态变量)同一类的每个对象共享该类的方法非静态方法时针对每个对象进行调用的(必须创建对象)构造方法使用new+构造方法创建一个新的对象构造方法是定义在Java类中的一个用来初始化对象的函数构造方法与类同名且没有返回值当没有指定构造方法时,编译器为类自动添加形如类名() 的构造方法命名规则类名的首字母大写变量名和
10、方法名的首字母小写运用驼峰标识方法重载(overload)方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。调用时根据不同的参数列表选择对应的方法this在类的方法定义中使用this关键字代表使用该类的对象的引用有时使用this可以处理方法中成员变量和方法参数重名的问题This可以看做是一个变量,它的值时当前对象的引用public class Leafint I = 0;Leaf(int i) this.i = i;Leaf increament() i+;return this;void print() System.out.println(“i = ” + i);publi
11、c static void main(String args) Leaf leaf = new Leaf(100);leaf.increament().increament().print();static在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员静态方法不再是针对某个对象调用,所以不能访问非静态成员可以通过对象引用或类名(不需要实例化)访问静态成员或方法pac
12、kage&import为了解决类的命名冲突问题,Java引入的包(package)机制,提供类的多重类命名空间package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包(若缺省该语句,则指定为无名包,裸体类)Java编译器把包对应于文件系统的目录管理,package语句中,用“.”来指明包(目录)的层次,例:package com.yao;则该文件中的类位于.comyao目录下如果将一个类打包,则使用该类时,必须使用该类的全名(例如:com.yao.MyClass),Java编译器才会找到该类也可以使用import在文件的开头引入要使用的类,例:import com.yao
13、.MyClass可以不需要用import语句直接使用java.lang包中的类访问位于同一个包中的类不需要引入class文件的最上层包的父目录必须位于classpath下JDK中主要的包介绍java.lang-包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能,使用时不需要引入(lang-language)java.awt-包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)java.applet-包含了applet运行所需的一些类-包含了与网络
14、相关的操作的类java.io-包含能提供多种输入/输出功能的类java.util-包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数java运行时所需的类位于jdkjrelibrt.jar打jar包,定位到需要打包的最上层的父路径jar cvf xxx.jar *.* (*.*指目录中所有文件夹打包)jar包也可设为classpath变量继承extends通过继承,子类自动拥有了基类(superclass)的所有成员(成员变量和方法)(包括private成员,拥有私有变量的所有权,但无使用权)Java只支持单继承,不允许多继承,一个子类只能有一个基类,一个基类可以派生多个子类访问控制
15、权限修饰符public、protected、private、default(包访问权限)修饰符类内部同一个包子类任何地方privateXXXdefaultXXprotectedXpublic对于class的权限修饰符只可以用public和defaultpublic类可以在任意地方被访问default类只可以被同一个包内的类访问方法重写overwrite/override在子类中可以根据需要对从基类中继承来的方法进行重写重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型重写方法不能使用比被重写方法更严格的访问权限super在Java类中使用super来引用基类的成分继承中的构造方法子类
16、的构造过程中必须调用其基类的构造方法子类可以再自己的构造方法中使用super(argument_list)调用基类的构造方法使用this(argument_list)调用本类的另外的构造方法如果调用super,必须写在子类构造方法的第一行如果子类的构造方法中没有显式地调用基类构造方法,则系统默认调用调用基类无参数的构造方法如果子类构造方法中既没有显式调用基类构造方法,而基类中又没有无参的构造方法,则编译出错Object类Object类是所有Java类的根基类如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类public class Person 等价于:publi
17、c class Person extends Object toString()Object类中定义有public String toString()方法,其返回值时String类型,描述当前对象的有关信息,返回一个字符串,该字符串由类名(对象是该类的一个实例)+ “” +此对象哈希码的无符号十六进制表示组成,即getClass().getName() + + Integer.toHexString(hashCode()在进行String与其他类型数据的连接操作时(如:System.out.println(“info” + person)),将自动调用该对象类的toString()方法可以根据
18、需要在用户自定义类型中重写toString()方法,建议所有子类都重新此方法equals()public boolean equals(Object obj)x.equals(y)对于任何非空引用值,当且仅当x和y引用同一个对象时,此方法返回true(x=y具有值true)JDK提供了一些类,如String,Date等,重写了Object的equals()方法,调用这些类的equals()方法,x.equals(y),当x和y所引用的对象时同一类对象且属性内容相等时(并不一定时同一对象),返回true,否则返回false建议重写例子:String s1 = new String(“Hello”
19、);String s2 = new String(“Hello”);System.out.println(s1 = s2); /falseSystem.out.println(s1.equals(s2); /true对象转型(casting)一个基类的引用类型变量可以“指向”其子类的对象一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)可以使用 引用变量 + instanceof + 类名,来判断该引用变量所“指向”的对象是否属于该类或该类的子类子类的对象可以当作基类的对象来使用称作向上转型(upcasting),反之称为乡下转型(downcasting),需强制转换动态绑定和多态动
20、态绑定是指在执行期间(而非编译期间)判断所引用对象的实际类型,根据其实际类型调用其相应的方法1.要有继承2.要有重写3.父类引用指向子类对象抽象类用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写抽象类不能被实例化抽象方法只需声明,而不需实现finalfinal的变量的值不能被改变final的方法不能被重写final的类不能被继承接口interface实现implements接口是抽象方法和常量值得定义的集合从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含
21、了常量和方法的定义,而没有变量和方法的实现多个无关的类可以实现同一个接口一个类可以实现多个无关的接口与继承关系类似,接口与实现类之间存在多态性接口中声明属性默认为public static final的,也只能是public static final的接口中只能定义抽象方法,而且这些方法默认为public的,也只能是public的接口可以继承其他的接口,并添加新的属性和抽象方法第4章 异常处理异常指运行期出现的错误所谓错误是指在程序运行的过程中发生的一些异常事件(如:除0溢出、数组下标越界、所要读取的文件不存在)Java程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装了异
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java知识总结-完整版 精品资料 Java 知识 总结 完整版 精品 资料
限制150内