Java复习资料.docx
- 文档编号:4884459
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:38
- 大小:40.24KB
Java复习资料.docx
《Java复习资料.docx》由会员分享,可在线阅读,更多相关《Java复习资料.docx(38页珍藏版)》请在冰豆网上搜索。
Java复习资料
Java复习资料
Java语言是由詹姆斯.戈士林设计的,最初名为OAK。
Java特性:
1、简单2、面向对象3、分布性4、可移植性5、解释性6、安全性7、健壮性8、多线性9、高性能10、动态
Java主类结构:
Java程序组成的基本单元是类,每一个程序中必须含一个main()方法(主类)
publicxxx{
publicstaticvoidmain(String[]args){
....
System.out.println()
}
}
标识符:
由任意顺序的字母、下划线、美元符号和数字组成,并且第一个字符不能是数字。
例如:
user_name
关健字:
Java中被赋于特定意思的一些单词。
常量(final变量)
权限修饰符:
public(公共的,全部可见)、private(私有的,只有本类可见)、protected(本包内可见)例如:
staticfinaldoublePI
Java数据类型:
byte、short、int、long、char、double、float、boolean
Java不支持仅仅是正的无符号整数。
不能以0作为十进制的开头(0除外),八进制必须以0开头,十六进制必须以0X或0x开头。
0x0f是十六进制,0f1是241(十进制)
byte8位-27-(27-1)
short16位-215-(215-1)
int32位-231-(231-1)
long64位-263-(263-1)(定义时后加L(l))
float32位-231-(231-1)(定义时后加f)
double64位-263-(263-1)
char16位0-65536(没有负数)
ASCII0-127(扩展的8位字符集0-255)
booleantrue||false
浮点型(float&double)用标准记数法(整数部分加小数部分)或科学记数法(浮点数*10的指定幂次,指数是紧跟E或e的一个十进制数)来表示
Java中默认的浮点数是双精度型。
字符转义序列:
转义序列说明
\ddd八进制字符(ddd)
\uxxxx十六进制Unicode码字节
\'单引号
\''双引号
\\反斜杠
\r回车键
\n换行
\f换页
\t水平制表符
\b退格
字符串必须在同一行开始和结束。
变量(Varialbe):
成员变量(全局变量)、局部变量[两者同名时,局部变量覆盖成员变量]
变量由一个标识符类型及可选初始值的组合定义的。
Java中所有变量必须先声明后再使用,多个变量用“,”分开。
所有变量都定义了一个作用域(scope),该作用域只对该作用域内的程序可见。
1)成员变量(对象的属性)
定义其语法:
权限修饰符返回值类型方法名(参数类型参数名){
......//方法体
Return返回值;
}
参数可有可有,也可是对象或基本数据类型的变量
成员方法有返回值(无void,有return,使用后终止方法执行)和没有返回值(有void),另返回值类型要与方法返回类型一致。
注:
一个方法中含有与成员变量同名的局部变量,则方法中对这个变量的访问以局总变量进行访问(即局部变量覆盖成员变量)。
类成员变量和成员方法统称为类成员。
2)局部变量:
在成员方法内定义的一个变量。
(使用时必须初始化或赋值)
方法中的形参可以作为一个局部变量。
有效范围(作用域)为声明到该变量的结束为止,在相互不嵌套的scope中可以同时声明两个名称、类型相同的局部变量,在scope作用范围内没有声明局部变量的代码。
例:
packageNumber
publicclassFirst{
staticStrings1="你好!
";//成员变量或类变量
publicstaticviodmain{String[]args){
Strings2="Java";//局部变量
System.out.println(s1);
System.out.println(s2);
Java的转换类型:
1、Java的自动转换(隐式转换):
发生拓宽转换(低→高,不含逻辑和字符类型)
byte 1)2种类型兼容 2)目的类型数的范围比来源类型的大 拓宽转换、数字转换(其中int和float)兼容,数字类型和字符类型或布尔类型不兼容。 例: intx=50;floaty=x;//将x赋值给y 2、强制转换(不兼容的类型转换,显示转换,高→低) 通用格式: (目标类型)value 截断: 把浮点值赋给整数时发生(舍小数) 类型的提升: 所有byte和short型值都被提升到int型; 如有一个操作数是long型,整个表达式被提升到long型; 如有一个操作数是float型,整个表达式被提升到float型; 如有一个操作数是double型,整个表达式被提升到double型; 例: inta=(int)45.24;//a为45 longy=(long)456.6F;//y为456 intb=(int)'d';//b为100 运算符(operators): 4大运算符: 算术、位、关系、逻辑。 %(取余||取模,用于浮点型)、++(递增)、--(递减)、+=(加法赋值)、-=(减法赋值)、*=(乘法赋值)、/=(除法赋值)、%=(模运算赋值) 运算符可以是数字类型,可以用于char不能用于boolean,对整数进行除法运算时,所有余数都要被舍去。 例如: y=++x<==>x=x+1andy=x;y=x++<==>y=x,x=x+1 1)位运算符(bitwiseoperators): 运算符含义 ~按位非(NOT) &按位与(AND) |按位或(OR) ^按位异或(XOR) >>右移(正数右移,左边空出位用0 填充;负数右移,左移空出位用1填 充;一个数左移n位,就将此数*2n, 一个数右移n位,将此数/2n) >>>无符号右移(左边空出的位用0填充, 只对32位或者64位的值有效) <<左移 &=按位与赋值 |=按位或赋值 ^=按位异或赋值 >>=右移赋值 >>>=右移赋值(左边空出位用0填充) <<=左移赋值 负数的二进制是其正数的二进制各个位取反再加1 对负数解码,首先对其所有位取反再加1 -0和0表示方法一样,-1的解码为11111111(-1右移总是-1) Java用高位来代表负数,不管高位如何,它决定一个整数的符号,最高位为0,则代表正数;最高位为1,则表示负数。 ~(对运算符每一位取反)、&(两数均为1,则为1)、OR("|",任何一个数为1,则为1)、XOR("^",两个数不同时为1) 位移运算符至少需要32位整型,当int型变量a>>n,且n大于32位时,则取a>>m,其中系统自动设置m=n%32,即m为n除以32后的余数。 例: inta=4试运行a>>33,并求其结果。 因n=33大于33,故m=33%32=1,所以a=1本例a>>33可以用a>>1替换。 2)关系运算符: 不等于(! =)相等(==) 关系运算符产生的结果是布尔型。 3)布尔逻辑运算符(其运算数只能用于布尔型) 运算符含义 &逻辑与 |逻辑或 ^异或 ||短路或 &&短路或 ! 逻辑反 &=逻辑与赋值 |=逻辑或赋值 ^=异或赋值 ==相等 ! =不相等 ? 三元运算符(表达式? 值1: 值2) 运算符优先级 最高 ()[]. ++--~! */% +- >>>>><<(适用于byte、int、 short、long) >>=<<= ==! = & ^ | && || ? = op= 最低 代码注释: “//”→单行注释,从“//”开始到换行结束的所有内容。 “/**/”→多行注释,从符号“/*”到“*/”间所有内容(可换行,可嵌套单行注释)。 “/***/”→文档注释,从符号“/**”到“*/”间所有内容。 编码规范: 1、每条语句单独占一行,一条命令要以分号(英文状态下)结束。 2、在声明变量时,尽量使每个变量的声明单独占一行,即使是相同的数据类型也要将其放置在单独一行上,有助于添加注释,对于局部变量,应在声明的同时对其进行初始化。 3、在Java代码中,关键字与关键字间如果有多个空格均被初视为一个。 4、为了方便日后的维护,不要使用技术性很高、难懂、易混淆的语句。 5、对于关键的方法要多加注释。 语句: 1)复合语句(块语句): 可嵌套,由“{”开始到“}”结束。 2)条件语句(if语句) if(布尔表达式){ 语句序列//当仅为一条语句时,可省略“{}”,也可保留。 } if(布尔表达式){ 若干语句//当仅为一条语句时,可省略“{}”,也可保留。 }<<==>>若干语句? 值1: 值2 else{ 若干语句//当仅为一条语句时,可省略“{}”,也可保留。 } if(布尔表达式1){ 语句序列1//当仅为一条语句时,可省略“{}”,也可保留。 } elseif(布尔表达式2){ 语句序列2//当仅为一条语句时,可省略“{}”,也可保留。 } switch分支语句(测试一个变量是否符合某个条件)(intcharbyteshort) switch(表达式){ case常量值1: 语句块1 [break;] case常量值n: 语句块1 [break;] default: 语句块n+1 [break;] switch语句先计算表达式的值,如和某个case后的值相同,则执行该case语句后的若干语句,直到遇到break为止,如无break则继续执行case后的语句,直到遇到break为止,若表达式的值没有和case后的值相同,则执行default后的语句。 3)循环语句(while、do...while、for) while(条件表达式){ 执行语句 } do{ 执行语句 } While(条件表达式); for(初始化表达式;循环表达式;循环后操作表达式){ 语句序列 } 初始化表达式: 负责完成变量的初始化。 循环表达式: 值为boolean型表达式,指定循环条件。 循环后操作表达式: 负责修整变量,改变循环条件(通常是增加或减少控制变量的一个表达式)。 用for实现无限循环: For(;;){ ......//可以用break语句跳出循环 } foreach(元素变量x: 遍历对象){//x不必对其初始化 引用了x的Java语句 } break和continue区别: break用于跳出循环语句,不再进行这次循环的迭达表达式;continue用于终止当前这一轮的循环,而进入下一轮。 另标签只可放在循环前端,否则无法编译。 字符串 1、声明字符串: Stringstr=[null](省略null表示str变量是未初始化的状态,否则表示声明的值就等于null 2、创建字符串 创建String(chara[])方法: String(chara[],intoffset,intlength) offest: 开始截取字符串的位置 length: 截取字符串的长度 例: chara[]={'s','t,','u','d','e','n','t'}; Strings=newString(a,2,4);等价于Srings=newString("uden"); 3、字符串连接 1)用“+”连接多个字符串,一句相连的字符串不能分开在两行写;如要分开写,则用“+”连接,且“+”两边字符串用“”连接。 例: System.out.println("Ilike"+ 连接其它字符串"Java"): 2)如果将字符串同其他基本数据类型进行连接,会将其他基本数据类型直接转换成字符串。 4、获取字符串 1)获取字符串长度: 用String的length()方法(含空格) 语法: str.length();例: Strings="Wearestudent";intsize=str.length();//size=15 2)字符串查找: indexOf()与lastIndexOf()方法 str.indexOf(substr);str.lastIndexOf(substr) indexOf: 首次出现的位置 lastIndexOf: 最后次出现的位置 indexOf(Strings)如果没有检索到字符串s,则返回值-1 lastInderOf(substr)(substr: 要查找的字符串)如果参数为空,则返回的结果与调用该字符串的length()方法的返回值相同。 例: Strings="Wearestudent";intsize=str.indexOf("a");//size=3 Strings="Wearestudent";intsize=str.lastIndexOf("");等价于 intsize=str.length() 3)获取指定索引位置的字符串 str.charAt(intindex)(index: 整型值,用于指定要返回字符的下标,字符下标从0开始) 例: publicclassRef{//创建类 publicstaticvoidmain(Stringargs[]){//主方法 Stringstr="helloword";//定义字符串str charmychar=str.charAt(5);/*将字符串str中索引位置是5的字 符返回*/ System.out.println("字符串str中索引位置是5的字符为: "+mychar);//输出信息(空格) } } 4)字符串的操作 [1]获取子字符串: {1}str.substring(intbeginIndex): 从指定的索引位置开始截取,直到字符串结尾的子串。 (空格占一字符) 例: Strings=newString("HelloJava");Stringsubstr=str.substring(3)//值为loJava{2}str.substring(intbeginIndex,intendIndex): 从字符串的某一索引位置开始截取到某一索引位置结束的子串。 (两者都包含) 例: Strings=newString("HelloJava");Stringsubstr=str.substring(0,3)//值为hel [2]除去空格: str.trim(); 例: 例: Strings=newString("HelloJava");System.out.println("去除空格后长度: "+str.str.trim().length());//值为9 [3]字符串替换: str.replace(charoldChar,charnewChar) oldChar: 要替换的字符或字符串。 newChar: 用于替换原来的字符串的内容。 如果oldChar没有出现在表达式中,则将原字符串返回;如果一个字符多次出现,由替换所有该字符。 要替换的oldChar的大小写要与原字符串中字符的大小写一致。 例: Strings=newString("HelloJava");Stringsubstr=str.replace("H",h)//值为helloJava 4)判断字符串开始与结尾 starsWith()与endsWith()返回值为boolean类型 starsWith()用于判断当前字符串对象的前缀是否是参数指定的字符串。 语法: str.starsWith(Stringprefix); endsWith(): 用于判断当前字符串是否是以给定的子字符串结束。 语法: str.endsWith(Stringsuffix); 例如: Stringnum="2201948"; booleana=num.starsWith("22"); booleanb=num.endsWith("48"); System.out.println("字符串num是否以22开始? "+a); System.out.println("字符串num是否以48结束? "+b); 5)判断字符串是否相等: 用equals()方法和equalsIgnoreCase()方法 如两个字符串具有相同的字符和长度,则用equals()方法,返回值为true str.equals(Stringotherstr)//区分大小写 str.equalsIgnoreCase(Stringotherstr)//不区分大小写 sr、otherstr是两个参加比较的字符串对象。 例如: Stringa=newString("Iamastudent"); Stringb=newString("iamastudent"); booleans1=a.equals(b); booleans2=a.equalsIgnoreCase(b); System.out.println(a+"equals"+b+": "+s1); System.out.println(a+"equalsIgnoreCase"+": "+s2); 6)按字典顺序比较两个字符串(基于各个字符的Unicode值) 将String对象表示的字符序列与参数字符串所表示的字符序列进行比较: 如果按字典顺序此String对象位于参数字符串之前,则比较结果为一个负整数; 如果按字典顺序此String对象位于参数字符串之后,则比较结果为一个正整数; 如果这两个字符串相等,则结果为0。 语法: pareTo(Stringotherstr)//compareTo只有在equals()返 回true时才返回0 7)字母大小写转换 语法: str.toLowerCase()//大写转为小写 str.toUpperCase()//小写转为大写 如无被转换的字符,则将字符串返回。 例: publicclassUpAndLower{//创建类 publicstaticvoidmain(Stringargs[]){//主方法 Stringstr=newString("abcDEF");//创建的字符串str Stringnewstr=str.toLowerCase();//使用toLowerCase()方法实行小写转换 Stringnewstr2=str.toUpperCase();//使用toUpperCase()方法实行大写转换 System.out.println(newstr);//将转换后的结果输出 System.out.println(newstr2); } } 8)字符串的分割 两种形式: (1)split(Stringsign)//根据给定的分割符对字符串进行拆分 //sign为分割字符串的分割符,可用正则表达式 (2)split(Stringsign,intlimit)//limit为限定分割的次数 例如: Stringstr=newstring("and,tjha,thak,tye,lix,kja"); Stringnewstr[]=str.split(","); for(inti=0;i System.out.println(newstr[i]); Stringnewstr2[]=str.length(",",2); for(inti=0;i System.out.println(newstr2[i]); 9)格式化字符串(format()用于创建格式化的字符串) (1)str.format(Stringformat,object...args)//args格式字符串中由格式说明符用 的参数 (2)str.format(Local1,Stringformat,boject...args)//1---格式化过程中要应用的语 言环境,如果1为null,则不进行本地化 10)日期和时间字符串格式化 (1)日期格式化 例如: Datedate=newDate(); Strings=String.format("%te",date);//返回一个月中的天数 常见的日期格式化转换符 转换符说明示例 %te一个月中的某一天(1-31)2 %tb指定语言环境中的月份简称Feb(英文)、二月(中文) %tB指定语言环境中的月份全称February、二月 %tA指定语言环境中的星期几全称Monday、星期一 %ta指定语言环境中的星期几简称Mon、星期一 %tc包括全部日期和时间信息星期二三月2513: 37: 23 CST2008 %tY4位年份2008 %tj一年中的第几天(001-366)085 %tm月份03 %td一个月中的第几天(01-31)02 %ty2位年份08 (2)时间格式化 常见的时间格式化转换符 转换符说明示例 %tH2位数字的24小时制(00-23)12 %tI2位数字的12小时制(01-12)05 %tk2位数字的24小时制(0-23)5 %tl2位数字的12小时制(0-12)10 %tM2位数字的分钟(00-59)05 %tS2位数字的秒数(00-60)12 %tL3位数字的毫秒数(000-999)920 %tN9位数字的微秒数(000000000-999999999)085000000 %tp指定语言环境下上午或下午标记下午、pm %tz相对于GMTRFC82格式的数字时区偏移量+0800 %tZ时区缩写形式的字符串CST %ts1970-01-0100: 00: 00至现在经过的秒数1206426646 %tQ1970-01-0100: 00: 00至现在经过的毫秒数1206426737453 (3)格式化常见的时间日期组合 常见的时间和日期组合斯格式 转换符说明示例 %tF"年-月-日"格式(4位年份)2008-03-09 %tD“月/日/年”格式(2位年份)03/25/08 %tc全部日期和时间信星期二三月2515: 20: 35CST2008 %tr“时: 分: 秒PM(AM)”格式(12时制)03: 22: 06下午 %tT“时: 分: 秒”格式(24时制)15: 23: 25 %tR“时: 分:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 复习资料