Java笔记整合Word格式.docx

上传人:b****1 文档编号:4389497 上传时间:2023-05-03 格式:DOCX 页数:88 大小:327.07KB
下载 相关 举报
Java笔记整合Word格式.docx_第1页
第1页 / 共88页
Java笔记整合Word格式.docx_第2页
第2页 / 共88页
Java笔记整合Word格式.docx_第3页
第3页 / 共88页
Java笔记整合Word格式.docx_第4页
第4页 / 共88页
Java笔记整合Word格式.docx_第5页
第5页 / 共88页
Java笔记整合Word格式.docx_第6页
第6页 / 共88页
Java笔记整合Word格式.docx_第7页
第7页 / 共88页
Java笔记整合Word格式.docx_第8页
第8页 / 共88页
Java笔记整合Word格式.docx_第9页
第9页 / 共88页
Java笔记整合Word格式.docx_第10页
第10页 / 共88页
Java笔记整合Word格式.docx_第11页
第11页 / 共88页
Java笔记整合Word格式.docx_第12页
第12页 / 共88页
Java笔记整合Word格式.docx_第13页
第13页 / 共88页
Java笔记整合Word格式.docx_第14页
第14页 / 共88页
Java笔记整合Word格式.docx_第15页
第15页 / 共88页
Java笔记整合Word格式.docx_第16页
第16页 / 共88页
Java笔记整合Word格式.docx_第17页
第17页 / 共88页
Java笔记整合Word格式.docx_第18页
第18页 / 共88页
Java笔记整合Word格式.docx_第19页
第19页 / 共88页
Java笔记整合Word格式.docx_第20页
第20页 / 共88页
亲,该文档总共88页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java笔记整合Word格式.docx

《Java笔记整合Word格式.docx》由会员分享,可在线阅读,更多相关《Java笔记整合Word格式.docx(88页珍藏版)》请在冰点文库上搜索。

Java笔记整合Word格式.docx

publicstaticvoidmain(String[]args){

5、在main方法中打印一句HelloWorld

System.out.println("

HelloWorld"

);

源码编译:

到源码所在目录下,执行javac源码文件名,就会在此目录下产生一个同名的.class文件,编译就完成了

运行:

在字节码所在目录下,执行java类名,就会在虚拟机中执行这个字节码

-----------------------------------------------------------------------------------------------------------

cdabc

cd..

cd..\..切换到上上层

cd\切换到当前盘符的根目录

cls清屏

dir显示目录

在jdk的bin路径下执行java-version,查看编译器版本,以后编译就使用javac命令

在此路径下还可以执行java-version,查看虚拟机版本,以后虚拟机执行字节码就用java命令

一、path

现在javac和java两个命令只能在bin目录下执行,想要在任何路径下都能执行它们,可以配置环境变量path

1、右击我的电脑->

属性->

高级->

环境变量

2、找到系统环境变量中的已有的path变量。

这个变量中已经配了很多路径,这些路径用分号;

隔开,我们要将JDK的bin路径添加到后面,确认后重新打开dos窗口,就能在任意路径下执行javac了

(在dos下执行javac.exe,首先会在先前目录下寻找这个文件,有的话直接执行,没有的话,到环境变量path中的所有路径下找,找到了就执行,找不到)

二、classpath

除了path这个环境变量,还可以配置classpath

(执行javaHello会到路径中去找有没有这个类,找到就执行)

2、在系统环境变量中创建一个叫classpath的环境变量

3、classpath是这个变量的名字,它的值是表示要到哪些路径下去找要运行的类,一般会将当前路径放进去,也就是.点号,另外一半也将jdk中的lib路径也放进去,分隔还是用;

分号

注意:

如果不配置classpath,会自动把当前路径纳入类的寻找范围;

但是要配置的话一定要配置对,比如忘记了.点号就会导致运行错误。

三、JAVA_HOME

一般将这个环境变量的值设置为JDK的根目录,比如C:

\ProgramFiles(x86)\Java\jdk1.7.0_75

为什么要使用JAVA_HOME

1、有些应用程序如Tomcat,默认就要读这个JAVA_HOME

2、可以简化path等环境变量的值,并且方便jdk根目录的更改

在一个环境变量中使用另一个环境变量,不能直接写名字,需要在调用的另一个环境变量两边加上百分号%%

%JAVA_HOME%\bin

%JAVA_HOME%\lib;

.

这样表示两个百分号之间的是一个环境变量,我们将取出其值,并将此值和\bin拼接

这里path和classpath都使用了JAVA_HOME这个环境变量,所有跟JDK根路径相关的信息都只写在了JAVA_HOME里面

程序如何获取用户输入的信息:

Scanners=newScanner(System.in);

//创建一个扫描器对象,用于扫描系统输入流(扫描用户的输入)

Stringline=s.nextLine();

//用这个扫描器获取用户输入的一行文本

System.out.println(line);

(需要在一开始导入Scanner

importjava.util.Scanner)

除了nextLine()还有如nextInt()、nextFloat()、next()等方法可以获取用户不同类型的信息

(注意nextLine不要和其他的方法混用)

打开JDKAPI文档(chm格式),显示->

索引->

输入关键字->

回车

jsJavaScript解释执行的脚本语言,一般在浏览器中执行,不需要编译,浏览器解释执行

Day02(进制与运算符)

标识符identifier名字(类、变量、方法、包)

命名规范:

强制规范:

1、字母、数字、下划线,首字母只能是英文字母、下划线(否则不能编译通过)

2、不能是关键字

非强制规范(驼峰法则):

1、类名,首字母大写,如果由多个单词组成,那么每个单词的首字母大写

ArrayList、FileInputStream、HttpURLConnection

2、变量名、方法名,首字母小写,之后每个单词首字母大写

schoolAge、readLine()

3、见名知义

常量

整型常量1000

长整型常量1000L

双精度浮点型1000.08个字节

单精度浮点型1000.0F4个字节

字符串常量"

字符常量'

H'

二进制和十进制的转换

java中十六进制的表示0xFF0F00

变量

声明变量:

类型变量名;

给变量赋值:

变量名=常量;

(把常量赋给变量)

变量名=另一个变量名;

(把另一个变量的值赋给这个变量)

可以先声明,再赋值,也可以在声明的同一句语句中进行赋值,比如:

inti;

i=100;

intj=100;

(声明其实是在内存中开辟空间,而赋值是往这个空间中存放数据)

同一类型的变量可以在一句语句中连续声明、赋值

inti,j,k;

inti=1,j=2,k;

变量的分类:

1、局部变量声明在方法中的变量称为局部变量(在栈内存中分配)

局部变量的生命周期仅限于所在方法,方法结束了,变量肯定会被回收。

局部变量在使用前一定要初始化(赋值),如果声明了一个局部变量,没给它赋值,就直接去使用,会产生编译错误。

2、成员变量(属性)声明在类中的变量称为成员变量(在堆内存中分配)

(成员变量的生命周期是跟着所在对象,对象被回收,这个成员变量也会被回收)

(成员变量在使用前可以不显式初始化)

Java中数据类型

一、基本数据类型8中

byte字节1个字节-128~127-2的7次方~2的7次方-1

short短整型2个字节-2的15次方~2的15次方-1

int整型4个字节

long长整型8个字节

浮点有2种

float浮点型4个字节

double双精度浮点型8个字节

boolean布尔类型一位只有两种值true、false

char字符类型2个字节0~65535(java中的字符可以直接表示中文)

ASCII码'

a'

97'

b'

98...'

A'

65'

B'

66...'

0'

48

'

='

+32;

一般来说,声明变量是什么类型,赋的值也是什么类型。

但是有时声明类型和赋的值的类型可以不一样。

1、如果赋的值的表示范围比声明的变量的表示范围小,可以自然转换

2、反之,自然转换会发生编译错误;

如果想要这样赋值,就需要强制转换,在被转换变量钱加一对小括号,其中写上要转成的类型,如:

longl=100L;

inti=(int)l;

//用这种强制转换,程序员必须自己确认强转后不会发生精度损失

长整型装进一个int变量,就会截取8个字节中的低4字节,如果高4字节不为0,强转就会发生精度损失。

二、引用数据类型(下周讲)

运算符

一、数学运算符

加+

可用于数字相加,如1+1返回2

还可以用于字符串连接,如"

1"

+"

返回"

11"

字符串和数字类型相加,会将数字先转为字符串再拼接,如"

+11返回"

1111"

又如"

+11+11返回"

111111"

减-

乘*

除/

取余%

题目:

让用户输入一个数字n,程序就输出:

啊n环,你比n-1环多一环,啊n环,你比n+1环少一环

二、赋值运算符

=将其右边的常量或变量的值赋给左边的变量

+=

-=

*=

/=

%=

++

--

i++

++i

三、比较运算符

==

!

=

>

<

四、逻辑运算符

&

短路逻辑与

||短路逻辑或

逻辑取反

!

true返回false

^逻辑异或

两边不同返回true,相同返回false

非短路逻辑与如果左边为false,右边仍然会执行(短路逻辑与的话右边不会执行)

|非短路逻辑或如果左边为true,右边仍然会执行(短路逻辑与的话右边不会执行)

五、位运算符

位与

两边各有一个int类型,会对两边数字每一个对应的位进行与操作,返回最终的int结果

位或

|两边各有一个int类型,会对两边数字每一个对应的位进行或操作,返回最终的int结果

一个int4个字节,表示颜色ARGB,

六、位移运算符

位右移除以2

位左移乘以2

无符号右移

(>

位右移如果是正数,左边补0,如果是负数,补1)

无符号右移,不论正负,一律左边补0

七、三目运算符

表达式1?

表达式2:

表达式3

表达式1为boolean类型,如果其为true,整个返回表达式2,为false的话返回表达式3

表达式的返回类型

1、两个不同类型相加,返回类型取范围大的那个

inti=10;

i=i+1L;

//编译出错,损失精度

i+=1L;

//编译通过,会强制转换类型

2、两个byte、short、char(低于4个字节的类型)相加,返回int类型

3、=赋值运算符返回类型及值

返回的就是赋的那个值

Day03(分支语句)

缩进

1、在类中定义成员变量、方法等,应该缩进(使用tab键)

2、在方法中书写逻辑,也应该在方法的基础上进行缩进

3、ifelse语句也要缩进

运算符的优先级

详见图片,一般可以通过小括号确保某个运算先执行

转义符

在字符串中表示"

需要进行转义

\"

表示字符串中双引号

\r回车符

\n换行符

\r\n表示换行

\t制表符,相当于一个tab,用于对齐

\\两个反斜杠转义表示一个反斜杠

顺序语句

分支语句

循环语句

今天主要讲分支语句

主要关键字:

if、else、elseif、switch、case、break、default

if(条件){

语句

……

小括号中的条件为boolean类型,如果条件为true,成立,就执行后面大括号中的那些语句,如果条件为false,不成立,则不执行。

大括号有时可以不执行,但是if语句只会对之后的一句语句起作用

2、ifelse语句

语句1

}else{

语句2

如果条件成立,则执行语句1,否则执行语句2

3、if、elseif、else语句

if(条件1){

语句1;

}elseif(条件2){

语句2;

}elseif(条件3){

语句3;

语句4;

4、if语句可嵌套

局部变量的生命周期,从声明开始,到声明所在的代码块结束就结束;

如果生命周期结束了再使用,就会产生编译错误

switch语句

switch(变量){

case常量1:

语句1...;

break;

case常量2:

语句2...;

case常量3:

语句3...;

...

default:

语句;

default语句可以没有,没有的情况下如果所有情况都不满足,那么就什么都不执行

循环for循环、while循环

for循环(foreach每次循环,每次循环都会执行判断,都会执行核心语句,都会进行条件变更)

for(表达式1;

表达式2;

表达式3){

语句;

表达式1只会在for循环开始之前执行一次,一般用于循环条件变量的初始化

表达式2每次循环都会执行,返回boolean类型,如果是true,那么循环得以进行,如果是false,那么循环终止

表达式3每次循环语句执行完后执行表达式3,一般来说表达式3会进行循环条件变量的变更

表达式3执行完后,会返回到表达式2继续判断,判断为true则继续循环

如果表达式2为true,则会执行大括号中的语句

如果程序陷入死循环,Ctrl+C可以强行终止死循环

//获取1970年1月1日0时0分0秒到现在的毫秒数

longm=System.currentTimeMillis();

Day04(循环语句)

for循环中变量的生命周期

1、表达式1中声明的变量,生命周期到所有循环结束时终止

2、在循环语句中声明的变量,生命周期仅限于单次循环

for循环中的break可以跳出整个循环,continue只能跳出本次循环,执行下次循环

嵌套循环

死循环

for(;

;

){

while(){

}循环

do{

}while();

循环

Thread.sleep(2000);

//睡2秒

Day05(方法调用与重载)

f(x)=x+1数学函数的定义

f

(1)=1+1=21代进去产生一个2传1进去返回2

g(x,y)=x*y定义

g(3,4)=3*4=12使用

Java中方法(函数)的定义:

[修饰符]返回类型方法名(类型参数1,类型参数2......){

逻辑

return值;

Java中方法(函数)的调用:

方法名(值1,值2,...);

方法定义时的参数称为形式参数、形参(特殊的局部变量)

方法调用时的参数称为实际参数、实参

在方法调用时会把实参的值赋给形参

一般来说实参和形参类型是一致的

return一旦执行,方法中其后面的代码不再执行

一般来说return的值和方法的返回类型一致

方法可以没有返回值,在这种情况下定义方法的返回类型为void(一定要写,不写编译不通过)

返回类型为void的方法中也可以写return,但是return后不能跟任何值,一旦return,方法立即结束,后面的代码不会运行

方法的重载:

在同一个类中,方法名字相同,但参数列表不同,称为重载

(参数列表不同:

包括参数类型不同或参数个数不同或参数顺序不同)

实参类型和形参类型有时可以不完全一样,如果实参范围比形参小,则可以;

如果实参范围比形参大,则不可以。

return的值的类型和方法的返回类型也可以不一致。

如果实际返回值类型的范围比方法返回类型范围大,不可以。

递归方法中调用自己

本周小结(第一周)

需熟练掌握进制的相关算法、分支语句、循环语句以及方法的调用

其中,

二进制与十进制的互转

十进制与十六进制的互转

二进制与十六进制的互转

分支语句主要掌握if-else,switch-case

循环语句主要掌握for,while

Day06(数组及其排序查找)

数组存储一组相同类型数据的数据结构。

数组本身是引用数据类型,数组中的元素可以是基本数据类型,也可以是引用数据类型。

在创建数组时,可以指定数据的长度,但创建完后不能变更长度。

数组的声明:

元素类型[]数组名;

元素类型数组名[];

声明数组引用时不能指定长度(因为声明的引用只是用来存放数组对象的首地址,此时数组对象还未产生,没有长度信息)

数组的创建:

new创建数组(对象)的关键字

new元素类型[数组的长度];

元素类型[]数组引用=new元素类型[数组的长度];

(声明和创建同时进行)

元素类型[]数组引用;

数组引用=new元素类型[数组的长度];

(先声明,后创建)

数组创建后即有固定长度(元素个数),可以通过数组的length属性来获取。

用new的方式创建的数组,其中的元素都有一个初始值(int为0,double为0.0,char为0,boolean为false,引用类型为null)

数组的访问:

数组引用[下标];

这样就能访问指定下标的数组元素

这里的下标用来指定数组的哪个元素,下标的范围为0到长度-1,也就是说,第一个元素下标0,第二个为1,最后一个为数组长度-1。

(超出这个范围会报出数组越界异常)

动态初始化:

用new的方式创建数组,并通过下标定位到元素更改其值

静态初始化:

元素类型[]数组引用名={值1,值2,值3......值n};

可以在一句语句中完成,声明、创建和初始化

静态初始化的声明和初始化必须在一句语句中,否则编译出错

第三种初始化:

new元素类型[]{值1,值2,值3......值n}

数组的排序:

冒泡排序

数组元素的查找:

1、顺序查找从头到尾遍历数组,和目标值比较,一致则返回下标,如果没找到,返回一个负数

2、二分法查找这种方法中中间查找的数组必须是排过序的。

每次都找中间位置,将目标和中间位置元素比较,如果目标大,则砍掉左边一半,如果目标比中间小,砍掉右边一半,砍掉后继续在剩下的范围内再进行中间位置的定位,再将中间位置元素和目标比较....

可以定义起始位置、结束位置变量,计算出中间位置,砍掉一半,就是将起始位置或结束位置进行移动。

main方法的参数String[]args,可以让我们在启动应用程序时传一些字符串进来。

可以在java类名后面跟上多个参数,每个参数之间用空格隔开,这样的话,main方法的形参args就会指向一个字符串数组,数组的长度就是启动时参数的长度

可变长数组

在定义方法时,形参写成类型...的形式,就是可变长数组,比如

修饰符返回类型方法名(类型...引用名){

调用方法时,传递的实参,是多个此类型的参数,比如

方法名(参数1,参数2,参数3)

这样会自动将这些实参转化为一个数组传递给形参

Day07(类与对象的创建)

二维数组数组的元素是数组

一、声明

元素类型[][]数组引用名;

元素类型数组引用名[][];

声明时不能指定长度

二、创建

1、静态创建

元素类型[][]引用名={{值1,值2,值3},{值4,值5,值6},{值7,值8}......};

静态创建方式子数组的长度可以互不相同

2、动态创建

new元素类型[长度1][长度2];

如:

int[][]array=newint[5][3];

动态创建方式每个子数组的长度都一样,每个元素的初始值是元素类型对应的默认值

3、动态创建另一种方式

new元素类型[长度1][];

这种方式只指定子数组的个数

注意这种方式只会创建二维数组本身,子数组不会自动创建,需要我们自己创建

(否则会产生空指针异常NullPointerException)

int[][]array=newint[3][];

array[0]=newint[4];

//手动创建子数组

array[1]=newint[5];

array[2]=newint[6];

三、访问

数组引用名[下标1][下标2]

访问某个元素

数组引用名[下标1]表示二维数组中下标1对应的子数组

要遍历二维数组的所有的元素,可以通过两层循环,外层循环遍历二维数组中的每个子数组,

内层遍历子数组中的每个元素

面向对象开发时以对象为单位,将数据和逻辑封装其中,以此提升软件易用性、灵活性、扩展性。

类和对象

类模板

对象实例

人类就是一个类每个人都是人类的一个实例

辨别方法:

对象isa类

java中的面向对象:

类的定义:

[修饰符]class类名{

......

对象的创建:

new类名()

Humanzhangsan=newHuman();

类中可以定义变量、方法、构造方法

类中定义的变量称为成员变量或者属性,可以不进行初始化就使用(其值就是类型的默认值),

其生命周期从对象创建开始,到对象被销毁结束。

[修饰符]类型变量名[=初值];

访问对象的成员变量的值,也可更改

引用名.属性名

构造方法

在创建对象时自动调用的一种特殊方法(new关键字后面跟着的类名其实就是构造方法)

定义:

(在类中)

[修饰符]构造方法名(参数列表){

1、构造方法和类同名

2、没有返回值

3、在对象创建时自动调用,一般用于初始化对象属性的值

4、如果类中没有任何构造方法,则会隐式含有一个无参的无逻辑的构造方法

5、如果自己定义了构造方法,那么隐式的就没

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

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2