Java知识点总结复习过程.docx
精品名师归纳总结资料收集于网络,如有侵权请联系网站删除JAVA学问点总结1. JAVA的特点:1 简洁易用、完全面对对象。2 与平台无关性、可扩展性强。3 可移植性高、支持分布式编程。4 健壮、安全牢靠并性能优异。5 支持多线程开发技术。6 支持动态开发。2. JVM: Java 虚拟机( JVM是 Java 实现跨平台的基础) 。Java 的源程序( *.java)编译( 命令: java+ 文件名 .java )Java 字节码( *.class编译时自动形成,与源程序名一样运行(命令: java+ 源程序的文件名 )JVM( Windows、Linux开发工具, Javac 及基础核心类JDK运行环境, Java 及基础核心类3. 编写第一个 Java 程序:Java 源文件扩展名为: ” .java ”一个源文件中最好只有一个 java 类,但是可以包含多个类public 修饰的类,文件名与类名必需一样 包括大小写 被运行的类中需要有一个方法:public static void mainString args一个源文件中最多有一个public修饰的类例如: public class Testpublic static void mainString argsSystem.out.println“这个编写的第一个java程序!” ;在运行程序之前先配置环境变量:path 变量值为: JDK安装目录下bin ;classpath变量值为: JDK安装目录下 lib;或 .;JDK安装目录下libtools.jar在 dos 命令窗口中输入以下命令进行运行: 编译命令 : javac Test.java运行命令 : java Test生成文档命令 : javadoc Test.java 4.Java 编程规范A、命名规定包 : 包名应当是小写的名词。如: package shipping.objectsword 可编辑可编辑资料 - - - 欢迎下载精品名师归纳总结资料收集于网络,如有侵权请联系网站删除类: 类名应当是名词,大小写混合,每个单词的首字母大写。如: class AccountBook接口: 接口名的大小写应当与类名一样。如: interface Account方法: 方法名应当动词,大小写混合,首字母小写。每个方法名中,以大写字母区分单词。限制使用下划线。 如: balanceAccount 变量: 全部的变量应当是大小写混合,首字母小写。由大写字母区分单词。限制下划线的使用。如: currentCustomer常数: 基本类型常数应当是全部大写的由下划线区分的单词。如: HEAD_COUN、TMAXIMUM_SIZ、E MIN_VALUEB、程序主体结构规定掌握结构: 全部语句,即使是一条语句,假如是某掌握结构的一部分,都要使用大括号( )括起来。空格: 在任意行上只放置一条语句,并且使用2 或 4 个空格缩进使代码更易读。Java 代码的位置: 全部代码都存在于一个类里例如:修饰符 class类名程序代码留意:Java 是严格区分大小写的。功能执行语句以 ;终止,这个分号必需是英文输入法中的;。 连续的字符串不能换行,可使用+ 连接。5、Java 代码的注释作用:1) 、说明程序中某些部分的作用和功能,提高程序的可读性。2) 、可以使用注释临时屏蔽某些语句,在程序调试时使用。注释的形式:1) 、单行注释int c = 10; /定义一个整型2) 、多行注释/*int c = 10; /定义一个整型int x = 5;*/留意: /* */ 中可以嵌套” / ”注释,但不能嵌套”/* */ ”。3) 、文档注释“/* .*/”。6、Java 中的标识符1) 、变量,方法,类和对象的名称都是标识符,程序员需要标识和使用的东西都需要标识符。2) 、在 Java 语言里标识符以字母或下划线、$符号开头,后面字符可以是字母、数字、word 可编辑可编辑资料 - - - 欢迎下载精品名师归纳总结下划线、 $符号。(其他符号都不能用来命名标识符)3) 、标识符对字母大小写特别敏锐,必需区分大小写,但是没有长度限制。4) 、关键字不能用作标识符命名。5) 、标识符中不能包含空格。6) 、标识符是由Unicode字符组成的,因此可以使用汉字作为标识符 不举荐,尽量不用 。7、关键字Java 中一些赋以特定的含义、并用做特的用途的单词称为关键字,也可叫保留字。 关键字不能作为一般的标识符使用。全部 Java 关键字都是小写的,IF 、THIS、NEW等都不是 Java 关键字。goto 和 const虽然从未使用,但也作被为Java 保留关键字。 关键字含义说明:boolean:布尔值byte:字节false:布尔值假char:int:字符类型整型字面值null:true:空布尔值真基本数据类型long:长整型short:短整型constfloat:单精度型保留字double:双精度型gotovoid:无类型abstract:抽象private:私有public:公有static:静态修饰符final:定义常量native:Java调用别的语言( C+)程序时使用volatile:短暂transient:短暂synchronized:处理线程是使用try:反常处理break:退出循环catch:捉反常case:流程掌握语句反常处理finally:无论有没有continue:循环连续throw:抛出反常default:缺省throws:抛出反常do:循环语句 掌握语句while:循环语句class:类if:条件语句extends:继承else:条件语句implements:实现接口for:for循环语句instanceof:引入包return:返回interface:判定一个对象是否属于某个类switch:条件判word 可编辑可编辑资料 - - - 欢迎下载精品名师归纳总结断面对对象new: 创建新对象package:包super:超类this:自己8、java基本数据类型数值型浮点类型 float, double基本数据类型字符型 char布尔型( boolean )数据类型类class接口 interface引用 复合 数据类型数组字符串( String)基本数据类型包括: 整型、浮点型、字符型、规律型(布尔型)。整数类型 byte, short, int, long数据类型布尔型名称boolea n位长1默认值falsetrue,false取值范畴字节型byte80-128127字符型char16 u000 u0000 uffff0短整型short160-3276832767整型int320-21474836482147483647长整型long640-92233720368547758089223372036854775807浮点型float320.0± 1.4E-45 ± 3.4028235E+38双精度型double640.0± 4.9E-324 ± 1.7976931348623157E+308留意:整数类型数据用于描述一个肯定大小范畴内的整数。浮点类型数据用于描述一个范畴很大的实数。浮点类型数据有肯定的精度限制。字符类型为 char ,它用于表示一个字符, 使用单引号在 Java中 char 类型为 16 字节, 采纳 Unicode 表示。规律类型为boolean ,它用于表示真和假。boolean类型只有两个值真true,假可编辑资料 - - - 欢迎下载精品名师归纳总结false。boolean 类型有自己的运算,不能参与其他数据类型之间的运算。9、常量常量 就是程序里连续不变的值,是不能转变的数据。声明常量的格式如下:final类型 常量名 ,常量名 = 值。Java 中的常量包括整型常量、浮点型常量、布尔常量、字符常量等。整型常量:十进制:不能以 0 开头,多个 0 9 之间的数字十六进制 :以 0x 或 0X 开头 0x8a0X56d八进制:必需以 0 开头 0340376长整型:必需以 L 结尾 87L345L浮点数常量:float型: 2e3f0.6f double 型: 4.1d1.23d布尔常量 : true和 false字符常量 : a5字符串常量 :“ hello ”“ 8698”“ nmain ”转义字符 n 表示换行null常量: null,表示对象的引用为空。10、变量在 java语言中储备一个数据信息,必需将它储存到一个变量中。变量在使用前必需有定义,即有确定的类型和名称。声明变量的语法 :类型变量名 ,变量名 = 初值;例如: int i。 char c; float a, b, c;变量的声明有三种形式:1、 声明变量。例如 : int i;2、 变量赋值。在变量赋值之前要先声明变量。例如: int i;i=5;3、 变量的初始化。例如: int i = 8;11、基本数据类型之间的兼容性基本数据类型之间的转换:“小”的数据类型可以直接赋给“大”的数据类型。“大”的不能赋值给“小”的数据类型(会显现编译错误)。数据类型大小关系如下:整数类 : long > int > short > byte浮点型 : double > float整型数据类型可以赋给浮点数据类型比如:floatshortfloatintfloatlongdoublelong留意:char可以赋给 long 和 int,但是不能赋给short和 byte (编译错误)。char可以赋给 float和 double 。可编辑资料 - - - 欢迎下载精品名师归纳总结当整数型常量被声明为long 类型时,只能赋值给long型变量。当整数型常量在 065535 之间时,可以被赋值给char 型变量。char 型常量可以被赋值给整数类变量,只要整数变量的类型可以容纳char 型文字常量所表示的数值。浮点型常量默认为double 型,而 double 型常量不能赋值给float型变量。boolean与其他数据类型没有兼容性。12、数据类型转换1、自动类型转换 (隐式类型转换) 需要同时满意两个条件:1) 、两种类型彼此兼容2) 、目标类型的取值范畴要大于源类型2、强制类型转换 (显示类型转换)当两种类型不兼容,或目标取值类型范畴小于源类型时,自动类型转换无法进行,需要进行强制类型转换。数据类型强制转换的格式为:(数据类型)数据表达式。例如: int i = 5; byte b = bytei; 13、变量的作用域变量的作用域指一个变量起作用的范畴,它打算了一个变量何时可以拜访、何时不行以拜访。 Java 中任何变量的作用域都从该变量声明之后开头,并且只在该声明的语句块中使用,也就是该变量只能在声明它的那个花括号 中使用。变量有分为成员变量和局部变量。成员变量 :在类中声明的变量称为成员变量,又叫全局变量。使用范畴:通常在类开头处声明,可在整个类中使用。局部变量 :在方法或块(块由两个花括号)中声明的变量称为局部变量。使用范畴:从声明处开头到它所在方法或块的终止处。例:int x = 4;/ 这之间只有 x 可以拜访int y = 1;/x和 y 可以拜访int z = 2;/x 、y、z 都可以拜访z = 5;x = 4 。/ 只有 x 和 y 可以拜访,不行以拜访z14、Java 中的运算符算术运算符、关系运算符、赋值运算符、规律运算符、位运算符、条件运算符1 、算术运算符运算符运算范例结果可编辑资料 - - - 欢迎下载精品名师归纳总结两个整数之间的相除(/ )运算结果仍是整数,其结果是除的结果的整数部分。例如: 5/2 结果为 2要获得实数结果,运算中至少一个浮点数。+正号+33-负号b=4;-b;-4+加5+510-减6-42*乘3*412/除5/51%取模(求余)5%50+自增(前)a=2;b=+a;a=3;b=3;+自增(后)a=2;b=a+;a=3;b=2;-自减(前)自减(后)a=2;b=-a;a=2;b=a-;a=1;b=1;a=1;b=2;+字符串相加“ he” +“ llo”“ hello ”例如: 5/2.02 、关系运算符运算符结果为 2.5运算范例结果=相等于4=3false.=不等于4.=3true<小于4<3false>大于4>3true<=小于等于4<=3false>=3 、赋值运算符大于等于4>=3true运算符运算范例结果=赋值a=3;b=2;a=3;b=2;+=加等于a=3;b=2;a+=b;a=5;b=2;=减等于a=3;b=2;a =b;a=1;b=2;*=乘等于a=3;b=2;a*=b;a=6;b=2;/=除等于a=3;b=2;a/=b;a=1;b=2;%=4 、规律运算符模等于a=3;b=2;a%=b;a=1;b=2;运算符运算范例结果&AND与false & truefalse|OR 或false | truetrueXOR异或 false truetrue.NOT非.truefalse&&AND短路与 false && truefalse|OR短路或 false | truetrue在使用短路与( &&)时,假如第一个操作数(或表达式)为“假”,就不再运算其次个操作数(或表达式) ,直接返回“假” 。在使用短路或( | )时,假如第一个操作数(或表达式)为“真”,就不再运算其次个可编辑资料 - - - 欢迎下载精品名师归纳总结操作数(或表达式) ,直接返回“真” 。规律运算符只能用于布尔(boolean )类型之间。其结果值为布尔(boolean )类型。5) 、位运算符运算符&运算按位与运算规章只有参与运算的两位都为1, &运算的结果才为1,否就为 0。|按位或只有参与运算的两位都为0, | 运算的结果才为否就为 1。0,按位异或只有参与运算的两位不同, 运算的结果才为否就为 0。1,<<左移位左移指定位数,右边补0。>>>>>右移位无符号右移位右移高位是 0,左边补 0。高位是 1,左边补 1。左边补 0。按位取反1 取反是 0,0 取反是 1。位运算符只可用于整数类型、char 类型,不行应用于浮点类型。6) 、条件运算符条件运算符是一个三目运算符,也是唯独的一个三元运算符,符号为“. : ” , 在程序中能实现简洁的判定功能。语法格式:表达式 1.表达式 2: 表达式 3其中表示 1 是一个布尔表达式,假如表达式1 结果为 true ,就执行表达式 2,否就执行表达式 3。举例说明:求 a, b 的最大值。int a=4,b=6,max;max=a>b.a:b;/将 a 和 b 中的较大值赋给 max 15、Java 中的掌握语句( 1)、 if表达式 .else.条件语句。( 2)、 for (表达式) .循环语句。( 3)、 while (表达式) .循环语句。( 4)、 do.while表达式) .循环语句。( 5)、 switch多分支挑选结构。( 6)、 continue终止本次循环语句。( 7)、 break终止执行 switch或循环语句。( 8)、 return从方法返回语句。1、 条件语句分为四种:单分支条件语句语法格式为: if条件表达式 语句或语句块。二分支条件语句语法格式为: if条件表达式 语句或语句块 1。else可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结嵌套条件语句语句或语句块 2。可编辑资料 - - - 欢迎下载精品名师归纳总结语法格式为: if条件表达式 if条件表达式 语句或语句块。else可编辑资料 - - - 欢迎下载精品名师归纳总结多分支条件语句语句或语句块 2。可编辑资料 - - - 欢迎下载精品名师归纳总结语法格式为: if条件表达式 1语句或语句块 1。else if条件表达式 2语句或语句块 2。 else if条件表达式n语句或语句块 n。可编辑资料 - - - 欢迎下载精品名师归纳总结2、 for循环语句else语句 0。可编辑资料 - - - 欢迎下载精品名师归纳总结语法格式为: for变量初始化表达式。循环条件表达式。迭代部分可编辑资料 - - - 欢迎下载精品名师归纳总结语句或语句块。 / 循环体for循环有一个特别的循环,叫死循环 。表现形式为: boolean isOk = true;或for; for;isOk;for循环可以再嵌套 for循环。留意:在 for循环的初始化或迭代部分,可以有多个表达式,表达式之间用逗号隔开。例如:int count =0;forint a= 1,b=10; a<b; a+,b count+;共循环多少次?3、 while循环语句语法格式为: while循环条件 表达式 语句或语句块。4、 do-while循环语句语法格式为: do语句或语句块。 while表达式 。(留意分号肯定不能省略)5、 switch-case多分支挑选语句语法格式为: switch条件表达式 case常量 1:语句 1。 break;case常量 2: 语句 2。 break;case常量 N:语句 N;可编辑资料 - - - 欢迎下载精品名师归纳总结break;留意:default:语句 ;break;可编辑资料 - - - 欢迎下载精品名师归纳总结条件表达式的返回值类型必需是以下类型之一:int 、byte 、char 、 short 。case 子句中的值常量N 必需是常量,而且全部case 子句中的值应是不同的。default子句是可选的。break语句用来在执行完一个case 分支后,是程序跳出switch语句,即终止switch语句的执行。在一些特别情形下,多个不同的case 值要执行一组相同的操作,这时可以不用 break 。6、 continue终止本次循环语句可编辑资料 - - - 欢迎下载精品名师归纳总结使用 continue语句可以马上重新开头下一轮的循环,而不再执行循环后面的语句。7、 break 终止执行 switch和循环语句使用 break 语句可以马上终止循环,开头执行循环后面的语句。8、 return从方法返回语句return语句主要作用是退出当前方法,将程序掌握转移到方法的调用者。一般格式为:return 值或表达式 。16、方法调用语句方法调用语句是执行对象的某个方法。一个完整的方法调用语句由某个方法调用加上一个分号构成。调用语法格式为:类对象名称. 方法名(参数) ;例如:System.out.println“ This is a statement call a method.” ;调用对象 System.out的 println方法。17、表达式语句表达式语句就是由一个表达式加一个分号构成的语句。例如常见的赋值语句:i=i+1;而 i=i+1只是一个表达式。18、空语句空语句就是只有一个分号构成的语句。例如:; 19、复合语句复合语句又叫块,由 将一些语句括起来就构成一个复合语句。例如: a=b+c; t=a*100;20、数组( 1)定义:是用来储备一组或多组相同类型数据的数据类型。( 2)数据类型:可以是基本数据类型(例如:数字型、字符型、布尔型),也可以是复合数据类型(例如:数组、类、字符串和接口)。数组本身就是一种复合数据类型,因此,数组的元素也可以是数组,这样就构成了二维数组和多维数组。( 3)数组作为复合数据类型,与基本数据类型最大的区分: 数组是通过引用来掌握的,而基本数据类型是通过值来掌握的。1、一维数组的声明 :格式: 类型 数组名 ;或类型 数组名 ;举例: int a ; String b;数组的初始化有两种方法:一种是直接初始化,另一种是动态初始化。直接初始化格式 : 类型数组名 = 值 1,值 2,值 n;举例: int a = 1,2,3;int b ;b = 1,2,3;动态初始化: 格式 :( 1)声明时初始化:类型数组名 = new类型 数组长度 ;可编辑资料 - - - 欢迎下载精品名师归纳总结( 2)声明后初始化:类型数组名 ;数组名 = new类型 数组长度 ; 2、拜访数组元素数组元素是通过数组名和下标来拜访。未被初始化的数组,不能进行拜访。格式 :数组名 下标 Java 中,数组的下标从0 开头,直到 < 数组长度 -1 >终止。获得数组的长度,通过length属性来获得。3、数组的复制方法:System.arraycopy源数组 , 源数组起始位置 , 目标数组 , 目标数组起始位置, 长度 。注:不管是要复制的数组,仍是被复制的数组,都必需先初始化。举例:int a = 1,2,3, b = new int3;System.arraycopya,0,b,0,3; /将数组 a 复制到 b 4、对象数组:举例:/ 定义一个对象数组, StringBuffer是一个字符串缓存类StringBuffer a = new StringBuffer2;/ 给对象赋值a0 = new StringBuffer“Array0” ; a1 = new StringBuffer“Array1” ;System.out.println“ a0= ” + a0 +“ a1=” + a1 ; a0.append“ is Modified” ; /追加字符串System.out.println“ a0= ” + a0;5、二维数组和多维数组前面提到过,数组的元素也可以是数组,假如一个数组的每一个元素都是一个一维数组,这样就构成一个二维数组。定义格式: 类型数组名 ;或 类型 数组名 ;举例: int a ;double b;这几种定义不合法: int a2 ;int b 2;int c22;二维数组的初始化: 二维数组的初始化也有直接和动态初始化两种方式。直接初始化格式:类型数组名 =值 1,值 2,值 n ,值 1,值 2, 值 n.;举例: int a = 1,2,3,4,5,6,7,8,9;动态初始化格式1 类型 数组名 =new 类型 长度 1 长度 2 。长度 1 表示行,长度 2 表示列。举例: int a=new35;2 类型 数组名 =new 类型 长度 1。数组名 0=new类型 长度 20;数组名 1=new类型 长度 21;可编辑资料 - - - 欢迎下载精品名师归纳总结资料收集于网络,如有侵权请联系网站删除数组名 长度 1-1=new类型 长度 2n;举例: int a;a=new int3;a0=new int5;a1=new int8;a2=new int6; 6、二维数组的应用举例:两个矩阵相乘的例子。/ 声明并初始化数组int a = 8,13,4,7,5,2;int b = 3,4,11,6,1,10;int result = new int33; int i,j,k;/通过嵌套循环实现矩阵相乘的运算fori=0;i<a.length;i+forj=0;j<b0.length;j+ resultij = 0; fork=0;k<b.length;k+resultij += aik * bkj;/打印结果System.out.println“ The result of a * b is :” ; fori=0;i<result.length;i+forj=0;j<result i.length;j+System.out.printresultij +“” ;System.out.println ; /换行 7、一维数组的应用例 1:将整数序列 3,15,28,11,34,78,95,27,18首末颠倒过来。int a = 3,15,28,11,34,78,95,27,18;int i, length, temp; length = a.length; fori=0;i<length/2;i+/ 以下将数组元素 ai和 alength -1 - i的值互换temp = ai;ai = alength -1 i; alength -1 i = temp;fori=0;i<length;i+System.out.printai +“” ;例 2:从数据: 32 25 78 69 13 97 86 38 62 9中找到数据 97 所在的位置。word 可编辑可编辑资料 - - - 欢迎下载精品名师归纳总结资料收集于网络,如有侵权请联系网站删除用次序查找(线性查找)方法编写程序。/ 声明并初始化数组int a = 32,25,78,69,13,97,86,38,62,9;int index = -1,i;/ 逐个元素与97 相比较,找到就退出循环,否就连续fori=0;i<a.length;i+ ifai = 97index = i;break;ifindex = -1 /表示该数不存在System.out.println“ 97 这个数不存在! ” ;elseSystem.out.println“ 97 这个数的下标是 :” + index;例 3:将数据: 3728511364为例,用冒泡法进行升序排列。下面编写程序代码: 冒泡法 int a = 37,28,51,13,64;int i, j, n, temp; n = a.length;forj=1;j < n ;j+ /共执行 n 1 轮fori=0;i< n j; i+ /第 j 轮if ai > ai+1/交换 ai与 ai+1的值temp = ai; ai = ai+1; ai+1 = temp;/打印排序后的结果fori=0;i < n;i+System.out.printai +“” ;word 可编辑可编辑资料 - - - 欢迎下载