Java学习笔记.docx

上传人:b****7 文档编号:10008139 上传时间:2023-02-07 格式:DOCX 页数:97 大小:1.98MB
下载 相关 举报
Java学习笔记.docx_第1页
第1页 / 共97页
Java学习笔记.docx_第2页
第2页 / 共97页
Java学习笔记.docx_第3页
第3页 / 共97页
Java学习笔记.docx_第4页
第4页 / 共97页
Java学习笔记.docx_第5页
第5页 / 共97页
点击查看更多>>
下载资源
资源描述

Java学习笔记.docx

《Java学习笔记.docx》由会员分享,可在线阅读,更多相关《Java学习笔记.docx(97页珍藏版)》请在冰豆网上搜索。

Java学习笔记.docx

Java学习笔记

Java学习笔记

一、安装与工具软件

1JAVA环境变量的配置

1.1配置JDK安装路径:

变量名java_myhome,变量值C:

\Java\jdk1.8.0_112

1.2配置JDK命令文件路径path:

变量名path,变量值(增加到前面):

.;%java_myhome%\bin;其中点为当前路径的意思,注意各环境变量间要用分号隔开。

1.3配置类库文件的路径:

变量名classpath,变量值:

C:

\Java\jdk1.8.0_112\lib,新版JAVA不用设置,这只使用于早期版。

2java编译命令与文件夹

2.1流程:

源文件(java)---编译器(javac)----字节码文件(class)----解释器(java)----显示结果(用户)

2.2文件夹:

bin应用程序工具命令,lib类库,db安装javaDB的路径,include平台头文件,jre运行java的jre环境,javafx-src.zip为javafx核心类库的源代码,src.zip为核心类库的源代码,其它文件为说明性文档。

3ide工具:

Eclipse的操作:

3.1代码辅助快捷键:

alt+/

3.2代码自动补全快捷键:

ctrl+alt+/

3.3快速输入命令:

在输入Syso时按下alt+将快速补齐所有命令。

3.4单步跳过:

F6,不进行调用方法的内部。

(需要设置断点,才有意义)

3.5单步跳入:

F5,进入调用方法的内部。

(需要设置断点,才有意义)

3.6运行:

ctrl+f11

3.7调试:

f11

3.8操作步骤:

创建java项目(一级目录)----创建程序包(在二级目录src与bin中创建包文件夹)----编写java源程序(在src下的包文件夹目录下)----运行java程序(在bin下的包文件夹目录下)

3.9学习技巧:

多看、多想、多练、多问、多总结

二、JAVA基础

4数据类型

4.1、基本数据类型:

数据类型

大小

范围

默认值

封装类

byte(字节)

8

   -128-127       

0

Byte

shot(短整型)

16

  -32768-32768  

0

Short

int(整型) 

32

  -2147483648-2147483648   

0

Integer

long(长整型)

64

-9233372036854477808-9233372036854477808

0

Long

float(单精度)  

32

-3.40292347E+38-3.40292347E+38

0.0f

Float

double(双精度) 

64

-1.79769313486231570E+308-1.79769313486231570E+308

0.0d

Double

char(字符型)

16

    ‘\u0000-u\ffff’或0-216-1

‘\u0000’

Character

boolean(布尔型) 

1

   true/false   

 false

Boolean

4.2只有整型、浮点型、字符型之间可以转换,布尔型与其它类型不能转换。

4.3浮点型单精度赋值时后面加F,浮点型双精度赋值时后面加D

4.5字符型赋值时用单引号,字符串型赋值时用双引号

4.6字符型与整理可以用unicode码相互转换。

注意:

byte、short运算时不能和char之间互相转换,byte可以赋值给short,但是他们三个在计算时+操作首先会转换为int类型,整型的默认类型为int,浮点型的默认类型为double

4.7隐式转换规则:

按精度从低到高转换顺序为byte

4.8显示式强制转换:

在前面加(byte)值、(short)值、(int)值、(char)值、(long)值、(float)值、(double)值,一般用于从高到低转型,这种情况可能会丢失精度、转换错误,一般不建议。

4.9ASCII码表:

4.10引用数据类型:

字符串(String)、数组(Arrays)、类(Class)、接口(Interface)

4.11基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址。

4.12对象的制表符占位是变量的两倍

4.13\xxx3位八进制表示的字符

\uxxx4位16进制表示的字符

\\反斜杠字符

\ttab制表符

\r回车

\n换行

\b退格

\f换页

5标识符与关键字

5.1定义:

标识符是用来标识某个对象(变量名、常量名、函数、类名、包名、接口名等)的名称

5.2标识符的命名规则

5.2.1标识符可以有字母、数字、下划线和$中的任意字符组成

5.2.2标识符首字母必须是字母、下划线或$,绝不能以数字开头

5.2.3标识符的命名要有一定的意义,不能使用关键字作为标识符

5.2.4标识符严格区分大小写

5.3Java中每个对象的命名规范

5.3.1包名(多单词组成时所有字母都小写  如:

xxxyyyzzz)

5.3.2类名和接口名(多单词组成时,每个单词的首字母都大写   如:

XxxYyyZzz)

5.3.3变量名和函数名(多单纯组成时,第一个单词的首字母小写,以后每个单词的首字母都大写   如:

xxxYyyZzz)

5.3.4常量名(多单词组成时,每个单词都大写,单词与单词之间使用下划线隔开  如:

XXX_YYY_ZZZ)

5.4Java中的关键字

5.4.1关键字中所有字母都小写

5.4.2数据类型的关键字(byte、short、int、long、float、double、char、boolean、class、interface、void)

5.4.3数据类型值得关键字(null、false、true)

5.4.4流程控制语句的关键字(if、else、switch、case、default、break、return、do、while、for、continue、try)

5.4.5权限修饰符的关键字(public、private、protected)

5.5.6修饰类、变量、函数修饰符的关键字(static、final、abstract)

5.5.7类与类,类与接口之间关系的关键字(extends、implements)

5.5.8建立实例及引用实例,判断实例的关键字(this、super、new、instanceof)

5.5.9处理异常的关键字(try、catch、finally、throw、throws)

5.5.10包的关键字(package、import)

5.5.11其他关键字(native、transient、volatile、assert、strictfp)

5.5.12注意:

main不是关键字,但是确是能被jvm识别的一个名称(非常特殊)

6常量与变量

6.1常量:

表示不能被改变的数值,用final定义

6.2常通常用大写字母

6.3常量分:

6.3.1整数常量 :

所有整数 

6.3.2小数常量 :

所有小数 

6.3.3布尔型常量:

true,false 

6.3.4字符常量:

’4’,单个字母 ,单引号

6.3.5字符串常量:

”abc” 多个字母,双引号

6.3.6null常量,值为null

6.4变量:

就是将不确定的数据进行存储,也就是需要在内存中开辟一个空间。

6.4.1变量分为成员变量、局部变量。

(1)成员变量分为实例变量、静态变量(类变量)。

(2)局部变量分为形参变量、方法体变量、代码块变量。

(3)成员变量的实例变量、静态变量都是在类中定义的,但在方法体外,其中静态变量有static关键字。

(4)局部变量是在方法中定义的,它在{}、条件、参数中私有,在其之外失效。

(5)Java同一函数中变量不允许嵌套定义。

(6)静态成员包括静态变量、静态常量。

7注释

7.1注释的分别用法

7.1.1类上面加的是文档注释 

7.1.2函数上面加的是文档注释 

7.1.3如果修饰符有改变的话,加多行注释 

7.1.4代码中的某几句话,加单行注释

8运算符

8.1运算符执行的先后顺序,由高到低如下:

8.1.1增量和减量运算符:

8.1.2算术运算符

8.1.3比较运算符 

8.1.4位运算符

8.1.5逻辑运算符

8.1.6三元运算符

8.1.7赋值运算符

8.2运算符的优先级

8.3|与||的区别

|:

无论左边是true,还是false,右边都运算。

||:

当左边为true时,右边不运算,因为结果肯定为true,左边为false,右边参与运算。

8.4&与&&的区别

&:

无论左边是true,还是false,右边都运算。

&&:

当左边为false时,右边不运算,因为结果肯定为false,左边为true,右边参与运算。

8.5与and,两边只要有一个为false,结果就是false,两边只要都为true,结果为true。

8.6或or,两边只要有一个true,结果为true,两边只要都为false,结果为false。

8.7异或,两边相同,结果为false,两边不同,结果为true。

8.8非not,取反。

true=false ,!

false =true

8.9位运算符是二进制运算的运算符,“位”是二进制的位,是最快的运算,但局限是基为2。

<<

左移

3 << 2=>3∗22=12

>>

带符号右移

3 >> 1=>3 / 21=1

高位空出来要补什么?

按原有数据的高位置是0补0,是1补1。

>>>

无符号右移

3 >>> 1=>3 / 21=1

右移空出来都拿0补

&

与运算

6&3=2

|

或运算

6|3=7

^

异或运算

6^3=5

~

反码

~6=-7

 8.10【实例】:

左移,右移,无符号右移之间的区别

【1. << 与 >> 的区别】:

<<(左移)

其实就是乘以2的移动位数为次幂

>>(右移)

其实就是除以2的移动位数为次幂

【2. >> 时,正数和负数的区别】:

>>(正数右移时)

高位补0

>>(负数右移时)

高位补1

【3. >> 与 >>> 的区别】:

>>(带符号右移)

高位补0或1:

具体看原有值高位,是0补0,是1补1

>>>(无符号右移)

高位都补0

8.11三目运算符:

条件?

表达式1:

表达式2,当条件为true时执行表达式1,当条件为false时执行表达式2

9流程控制语句

9.1流程控制语句大致分为三种结构:

判断结构、选择结构、循环结构

9.2判断结构常用的几种格式

//第一种if

intx=5;

if(x==5){

/*当“x==5”成立,则执行该语句,反之则跳过“{}中的语句块,直接执行后面的其他代码”

System.out.println("条件成立,该语句成功执行");

}

//第二种ifelse

if(x==5){

//当“x==5”成立,执行该语句

System.out.println("条件成立,该语句成功执行");

}

else{

//当条件不成立时,执行该语句

System.out.println("条件不成立,该语句不执行");

}

//第三种ifelseifelse

if(x>5)

System.out.println("x>5成立,执行该语句");

elseif(x<5)

System.out.println("x<5成立,执行该语句");

else

System.out.println("前面条件都不成立时,执行该语句");

//第四种嵌套

intm=6;

if(x<10){

if(m==6){

System.out.println("当x<10并且m==6时执行该语句");

}

else{

System.out.println("当x<10并且m!

=6时执行该语句");

}

}

else{

System.out.println("当x<10不成立时执行该语句");

}

9.3选择结构语句格式

switch(条件表达式){

case匹配值1:

break;

case匹配值2:

break;

....

default:

break;

}

*/

switch(x){

case2:

System.out.println("x="+x);

break;

case3:

System.out.println("x="+x);

break;

case4:

System.out.println("x="+x);

break;

case5:

System.out.println("x="+x);

break;

case6:

System.out.println("x="+x);

break;

default:

System.out.println("x="+x);

break;

/*注意:

使用switch选择结构时,

(1)、条件表达式的结果只能是byte、int、short、char

(2)、case和default是没有书写顺序的,当没有匹配的case时,执行default

(3)、结束switch语句的方法有两种:

遇到break或者执行到switch语句结尾

(4)、case或default后面的break是可以省略的,当如果匹配的case或default没有对应的break,那么程序会继续往下执行,直到程序遇到break或者结束

9.4循环结构语句格式

//第一种:

while();

while(x<=10){

//循环体

System.out.println("x="+x);

x++;//使用x自增控制循环次数,防止死循环

}

//第二种:

dowhile();

do{

//循环体

System.out.println("x="+x);

x++;//使用x自增控制循环次数,防止死循环

}while(x<=10);

/*注意:

while和dowhile是由区别的,while是先判断后执行,而dowhile是先执行后判断,

也就是说,使用dowhile时,无论条件是否成立,循环体都会执行一次

*/

//第三种:

for();

for(System.out.println("a");x<=7;System.out.println("c"),x++){

System.out.println("b");

}

/*

总结:

通过运行程序发现控制台打印结果为:

abcbcbc

所以在使用for循环时应注意:

for循环的执行顺序是先执行“表达式1”,然后再判断“条件表达式”是否成立,

如果成立,则执行循环体,然后再执行“表达式2”然后再判断“条件表达式”是否成立,成立在执行循环体然后.....

但是当“条件表达式”不成立时,会结束循环

9.5循环体中可以使用break来退出循环体,使用continue来中止本次循环

9.6return为返回值,有多个return语句时,只执行第一个符合条件return语句。

9.7可以使用“No1:

”,来设置循环标签,配合breakNo1:

来中止循环体。

1可以是其它数字。

三、数组

10定义数组

10.1声明数组:

数据类型[ ]数组名;或数据类型数组名[ ];intarr[];或int[]arr

10.2分配数组空间:

数组名=new 数据类型[数组长度];arr=newint[5];

10.3数组赋值:

intarr[]=newint[]{1,2,3,4,5};或int[]arr=newint[]{1,2,3,4,5};或intarr2[]={1,2,3,4,5};int[]arr2={1,2,3,4,5};

10.4多维数组:

同上,例:

intarr[][]=newint[][]{{1,2,3},{4,5,6}};或int[]arr=newint[][]{{1,2,3},{4,5,6}};若为二维表格,则int[2][3],表示2行3列。

10.5数组分配空间后:

所有各元素的值都为0或null,

11数组方法:

11.1替换数组所有元素:

Arrays.fill(数组名,替换值)

11.2替换数组部分元素:

Arrays.fill(数组名,开始索引值,结束索引值,替换值),数组索引从0开始,不包括结束索引值。

不可超出数组元素范围,否则报错

11.3排序数组的元素(从小到大):

Arrays.sort(数组名)。

String数组排序顺序为:

数字、大写字母、小写字母

11.4复制数组元素:

Arrays.copyOf(数组元素,复制后的新数组长度),长度大于旧数组长度,整型用0补充,字符型用null补充,长度小于旧数组长度,则删除后面多余的元素。

11.5复制数组部分元素:

Arrays.copyOfRange(数组名,开始索引值,结束索引值),数组索引从0开始,不包括结束索引值。

11.6数组元素查询:

Arrays.binarySearch(数组名,查询值),数组索引从0开始。

11.7数组元素查询:

Arrays.binarySearch(数组名,开始索引值,结束索引值,查询值),数组索引从0开始,不包括结束索引值。

所有元素的值都小于查询值,则为arr.length。

如果元素不存在,则加“-”,并返回排序后第一个大于此键值的元素索引。

11.8遍历数组元素:

for(元素类型元素变量x:

数组名){引用了X的java语句}

11.9数组排序算法:

冒泡排序(比较相邻两个元素,较大的数往后冒泡)

直接选择排序(选出最大或最小,然后与最后一个元素交换,二次选出最大或最小,然后与倒数第个元素交换….)

反转排序(第一个与最后一个交换、第二个与倒数第二个交换,以此类推)

直接插入排序、希尔排序、快速排序、堆排序、归并排序、箱排序、基数排序

11.10将数组转换为字符串:

Arrays.toString(数组名)

11.11将一个数组转化为一个List集合:

Arrays.aslist(数组名);

四、字符串

12定义字符串

12.1声明字符串:

Stringstr;或Stringstr;未初始化的字符串,值为null

12.2创建字符串:

chara[]={'g','o','o','d'};与Strings=newString(a);,等价于Strings=newString("good");等价于Strings="good";

12.3提取字符数组:

chara[]={'g','o','o','d'};与Strings=newString(a,0,2);不包括2,等价于Strings=newString("go");

12.4连接字符串:

用“+”连接字符串与其它对象后,并产生一个String对象。

13字符串方法:

13.1获取字符串长度:

字符串对象.length()

13.2获取字符:

字符串对象.indexOf(字符)

13.3获取最后一个字符:

字符串对象.lastIndexOf(字符),当查空格时,即为最后一个字符的下一个索引位置。

13.4获取指定索引位置的字符:

字符串对象.charAt(索引位置)

13.5获取子字符串序列:

字符串对象.subSequence(开始索引位置,结束索引位置),返回值为:

charsequence接口类

13.6截取指定位置到结束的字符串:

字符串对象.substring(指定的索引位置),返回值为:

返回的是string

13.7截取开始位置到结束位置的字符串:

字符串对象.substring(开始索引位置,结束索引位置),不包括结束索引。

13.8去除字符首尾空格:

字符串对象.trim()

13.9去除字符首尾空格并输出长度:

字符串对象.trim().length

13.10字符串替换:

字符串对象.replace(旧字符或字符串,新字符或字符串)

13.11字符串正则表达式的替换:

字符串对象.replaceAll(旧正则表达式,新正则表达式)

13.12字符串正则表达式的首次替换:

字符串对象.replaceFirst(旧正则表达式,新正则表达式)

13.13替换字符串对象的“指定字符串”为空:

StringTokenizer(字符串对象,“指定字符串”),需要导入类:

java.util.StringTokenizer;对象.hasMoreElements():

判断是否还有空格;对象.append(字符串缓冲器.nextToken()):

向字符串缓冲对象追加内容;

13.14严格判断字符串是否相等:

字符串对象.equals(被比较的字符串对象),区分大小写。

返回值为布尔型。

13.15粗略判断字符串是否相等:

字符串对象.equalsIgnoreCase(被比较的字符串对象),不区分大小写。

返回值为布尔型。

这两个方法都是用来判断对象的值是否相等,而“==”是用来判断对象引用的地址是否一致。

13.16判断是否为字符串的开始字符串:

字符串对象.startsWith(“指定的开始字符串”)

13.17判断是否为字符串的开始字符串:

字符串对象.endsWith(“指定的结束字符串”)

13.18字符串转换为小写:

字符串对象.toLowerCase(),数字与非字符不受影响

13.19字符串转换为大写:

字符串对象.toUpperCase(),数字与非字符不受影响

13.20字符串分割:

字符串对象.split(分割符),可以用“|”定义多个分割符,例:

”,|#|@”,即为,#@三个分割符。

13.21字符串分割:

字符串对象.split(分割符,分割分数),可以用“|”定义多个分割符,例:

”,|#|@”,即为,#@三个分割符。

13.22将字符串拆分为字符数组:

字符串对象.toCharArray()

13.23是用来判断是否为字符:

Character.isDigit(单对象),它是java.lang.Character类的isDigit()方法

13.24定义字符串生成器:

StringBuffe

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1