(一)Java编程基础1.Java语言的跨平台是通过针对不同的操作系统,提供不同的jvm来保证的。2.JDK,JRE,JVM的作用及关系1)作用JVM:保证Java语言跨平台JRE:Java程序的运行环境JDK:Java程序的开发环境2)关系JDK:JRE+工具JRE:JVM+类库3.为了使程序能够独立运行,必须定义main方法main方法是程序的入口被jvm自动调用4.原码,反码,补码正数的原,反,补码都相同负数的反码为原码符号位不变,按位取反负数的补码为原码符号位不变,按位取反,末位加一5.关键字1)被Java语言赋予特定含义的单词2)特点:全部小写。3)注意事项:A:goto和const作为保留字存在。B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记6.标识符1)就是给类,接口,方法,变量等起名字的字符序列2)组成规则:A:英文大小写字母B:数字C:$和_3)注意事项:A:不能以数字开头B:不能是java中的关键字C:Java语言严格区分大小写7.常见的命名规则(见名知意):username,password等A:包名全部小写单级包:小写举例:cn,com多级包:小写,并用.隔开举例:com.baidu,com.renrenB:类名或者接口一个单词:首字母大写举例:Student,Demo多个单词:每个单词首字母大写举例:HelloWorld,StudentNameC:方法或者变量一个单词:首字母小写举例:name,main多个单词:从第二个单词开始,每个单词首字母大写举例:studentAge,showAllNames()D:常量全部大写一个单词:大写举例:PI多个单词:大写,并用_隔开举例:STUDENT_MAX_AGE8.注释1)就是对程序进行解释说明的文字2)分类:A:单行注释//注释内容B:多行注释/*注释内容*/C:文档注释/**注释内容*/D:单行注释可以嵌套使用,但是多行注释不可以嵌套使用9.常量1)在程序执行的过程中,其值不发生改变的量2)分类:A:字面值常量B:自定义常量3)字面值常量A:字符串常量helloB:整数常量12,23C:小数常量12.345D:字符常量'a','A','0'E:布尔常量true,falseF:空常量null4)在Java中针对整数常量提供了四种表现形式A:二进制由0,1组成。以0b开头。B:八进制由0,1,...7组成。以0开头。C:十进制由0,1,...9组成。整数默认是十进制。D:十六进制由0,1,...9,a,b,c,d,e,f(大小写均可)组成。以0x开头。10.进制转换1)其他进制到十进制系数:就是每一个位上的数值基数:x进制的基数就是x权:对每一个位上的数据,从右向左,并且从0开始编号,对应的编号就是该数据的权。结果:系数*基数^权次幂之和。2)十进制到其他进制除基取余,直到商为0,余数反转。3)进制转换的快速转换法A:十进制和二进制间的转换8421码。B:二进制到八进制,十六进制的转换11.变量1)在程序的执行过程中,其值在某个范围内可以发生改变的量2)变量的定义格式:A:数据类型变量名=初始化值;B:数据类型变量名;变量名=初始化值;使用变量的时候要注意的问题:A:作用域变量定义在哪个大括号内,它就在哪个大括号内有效。并且,在同一个大括号内不能同时定义两个同名的变量。B:初始化值没有初始化值的变量不能直接使用。你只要在使用前给值就行,不一定非要在定义的时候立即给值。推荐在定义的时候给值。注意:成员变量有默认值,而局部变量没有,所以必须首先初始化C:在一行上建议只定义一个变量可以定义多个,但是不建议//intf,intg;//错误,可以写为intf,g;//inth;inti;//正确12.数据类型1)Java是一种强类型语言,针对每种数据都提供了对应的数据类型。2)分类:A:基本数据类型:4类8种B:引用数据类型:类,接口,数组,枚举,注解。3)基本数据类型A:整数占用字节数byte1short2int4long8B:浮点数float4double8C:字符char2D:布尔boolean1注意:整数默认是int类型,浮点数默认是double类型。长整型后缀用L或者l标记。建议使用L。单精度浮点数用F或者f标记。建议使用F。13.数据类型转换1)boolean类型不参与转换2)自动类型转换A:从小到大B:byte,short,char--int--long--float--doubleC:byte,short,char之间不相互转换,直接转成int类型参与运算。3)强制类型转换A:从大到小B:可能会有精度的损失,一般不建议这样使用。C:格式:目标数据类型变量名=(目标数据类型)(被转换的数据);4)表达式类型自动提升byteb1=3;byteb2=4;byteb3=b1+b2;程序报错:因为变量在表达式中进行运算时,也有可能发生自动类型转换,这就是表达式数据类型的自动提升,如一个byte类型的变量在运算期间类型会自动提升为int类型。数据类型补充问题:a.在定义Long或者Float类型变量的时候,要加L或者f。byte,short在定义的时候,他们接收的其实是一个int类型的值。这个是自己做了一个数据检测的,如果不在它们的范围内,就报错。b.byte值的问题byteb1=127;byteb2=(byte)128;//-128byteb3=(byte)129;//-127byteb4=(byte)130;//-126byte的范围:-128~127128:10000000-128:10000000(这里的1即是符号位,也是数值位)c.数据类型转换之默认转换byte,short,char--int--long--float--doublelong:8个字节float:4个字节A:它们底层的存储结构不同。B:float表示的数据范围比long的范围要大long:2^63-1float:3.4*10^382*10^382*8^38=2*2^3^38=2*2^1142^63-1d.Java语言中的字符char可以存储一个中文汉字吗?为什么呢?可以。因为java语言中的字符占用两个字节。Java语言采用的是Unicode编码。14.算术运算符:+,-,*,/,%,++,--注意事项:A:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型B:/获取的是除法操作的商,%获取的是除法操作的余数++,--运算符的使用:单独使用:放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)参与运算使用:放在操作数的前面,先自增或者自减,然后再参与运算。放在操作数的后面,先参与运算,再自增或者自减。作用:就是对变量进行自增1或者自减1。+的用法:A:加法B:正号C:字符串连接符比较运算符A:==,!=,,=,,=B:无论运算符两端简单还是复杂最终结果是boolean类型。C:千万不要把==写成了=逻辑运算符:&,|,!,^,&&,||特点:逻辑运算符一般用于连接boolean类型的表达式或者值。常用结论:&逻辑与:有false则false。|逻辑或:有true则true。^逻辑异或:相同为false,不同为true。举例:情侣关系。!逻辑非:非false则true,非true则false。特点:偶数个不改变本身。&&和&的区别?同理||和|的区别?A:最终结果一样。B:&&具有短路效果。左边是false,右边不执行。开发中常用的逻辑运算符:&&,||,!位运算符:&,|,^,~,,,注意:要做位运算,首先要把数据转换为二进制。^的特点:一个数据对另一个数据位异或两次,该数本身不变。:左移左边最高位丢弃,右边补齐0:右移最高位是0,左边补齐0;最高为是1,左边补齐1:无符号右移无论最高位是0还是1,左边补齐0表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。A:算术表达式:a+bB:比较表达式:a==b15.键盘录入基本步骤如下:A:导包格式:importjava.util.Scanner;位置:在class上面。B:创建键盘录入对象格式:Scannersc=newScanner(System.in);C:通过对象获取数据格式:intx=sc.nextInt();16.流程控制语句1)顺序结构从上往下,依次执行2)选择结构按照不同的选择,执行不同的代码3)循环结构做一些重复的代码17.if语句1)三种格式A:格式1if(比较表达式){语句体;}执行流程:判断比较表达式的值,看是true还是false如果是true,就执行语句体如果是false,就不执行语句体B:格式2if(比较表达式){语句体1;}else{语句体2;}执行流程:判断比较表达式的值,看是true还是false如果是true,就执行语句体1如果是false,就执行语句体2C:格式3if(比较表达式1){语句体1;}elseif(比较表达式2){语句体2;}...else{语句体n+1;}执行流程:判断比较表达式1的值,看是true还是false如果是true,就执行语句体1如果是false,就继续判断比较表达式2的值,看是true还是false如果是true,就执行语句体2如果是false,就继续判断比较表达式3的值,看是true还是false...如果都不满足,就执行语句体n+12)注意事项A:比较表达式无论简单还是复杂,结果是boolean类型B:if语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条,不能省略。建议:永远不要省略。C:一般来说,有左大括号,就没有分号,有分号,就没有左大括号。D:else后面如果没有if,是不能出现比较表达式的。E:三种if语句其实都是一个语句,只要有一个执行,其他的就不再执行。3)三元运算符和if语句第二种格式的关系所有的三元运算符能够实现的,if语句的第二种格式都能实现。反之不成立。如果if语句第二种格式控制的语句体是输出语句,就不可以。因为三元运算符是一个运算符,必须要有一个结果返回,不能是一个输出语句。18.switch语句格式:switch(表达式){case值1:语句体1;break;case值2:语句体2;break;...default:语句体n+1;break;}switch语句的注意事项:A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的B:default可以省略吗?答:可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。特殊情况:如果case就可以把值固定。A,B,C,DC:break可以省略吗?可以省略,但是结果可能不是我们想要的。会出现一个现象:case穿透。最终我们建议不要省略D:default一定要在最后吗?不是,可以在任意位置。但是建议在最后。无论default语句在前还是在后,default语句都是最后执行E:switch语句的结束条件a:遇到break就结束了b:执行到末尾就结束了if语句和switch语句的区别?if语句:A:针对结果是boolean类型的判断B:针对一个范围的判断C:针对几个常量值的判断switch语句:针对几个常量值的判断Switch语句中的case穿透(case语句后面没有break语句)switch表达式:这个地方的取值是有限定的byte,short,int,charJDK5以后可以是枚举JDK7以后可以是字符串19.循环语句1)有三种:for,while,do...while2)for循环语句A:格式for(初始化语句;判断条件语句;控制条件语句){循环体语句;}B:执行流程:a:执行初始化语句b:执行判断条件语句如果这里是true,就继续如果这里是false,循环就结束c:执行循环体语句d:执行控制条件语句e:回到bC:注意事项a:判断条件语句无论简单还是复杂,结果是boolean类型b:循环体语句如果是一条,可以省略大括号,但是不建议c:有分号就没有左