JAVA学习笔记基础知识.docx

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

JAVA学习笔记基础知识.docx

《JAVA学习笔记基础知识.docx》由会员分享,可在线阅读,更多相关《JAVA学习笔记基础知识.docx(22页珍藏版)》请在冰点文库上搜索。

JAVA学习笔记基础知识.docx

JAVA学习笔记基础知识

JDK:

可以开发编译与运行JAVA程序的工具。

JRE:

可以运行JAVA程序的工具。

JVM:

java虚拟机,是在一台计算机上由硬件或软件模拟的计算机。

它的功能是读取并处理编译过的字节码文件(class文件)

环境变量:

path:

JDK中bin目录

classpath:

.

java_home:

JDK的路径

home_path:

JDK的路径

开始—>运行àcmdàjava–version

JavaSEàOracleàJavaEE

Java版本:

JavaSE:

J2SE

JavaEE:

J2EE

JavaME:

J2ME

JAVA文件类型:

.java文件:

源文件,保存JAVA源代码,文本文件。

.class文件:

类文件,保存字节码,二进制文件。

使用javac命令将java文件编译为class文件:

javac文件名.java(DOS文件名不区分大小写)

使用java命令运行class文件:

java类名(类名区分大小写)

1.在一个JAVA文件中可以有多个类

2.在一个JAVA文件中只能有一个公有(public)的类

3.公有的类的名字必须与文件名一样(包括大小写)

4.JAVA代码区分大小写

5.main()是程序的入口

6.通常情况下main()应该放在公有的类中

7.每句代码后面用分号表示结束

8.不允许在代码中直接书写中文的标点

注释:

1.单行注释:

//

2.多行注释:

/*注释内容*/

3.文档注释

第三章

数据类型:

有两种。

基本数据类型(简单数据类型),引用数据类型。

基本数据类型:

有8种

一.数字类型:

整型,浮点型

1.整型:

表示十进制,八进制(0开头),十六进制(用0x或0X头),在JAVA中没有无符号的数字

a)byte:

字节类型,1个字节-27—27-1

b)short:

短整型,2个字节-215—215-1

c)int:

整型,4个字节在JAVA中整数默认为int,-231—231-1

d)long:

长整型,8个字节,-263—263-1,在数字后加l或L

2.浮点型:

a)float:

单精度,在数字后面加F或f。

4个字节

b)double:

双精度,在JAVA中一个浮点型的数字默认为double类型。

8个字节

3.字符类型:

char,字符类型的值要放在一对单引号中,单引号中必须只有一个字符(一个字母,数字,‘\u0000’)。

在JAVA中所有的字符都占两个字节。

4.boolean类型:

值true(真)或false(假)。

boolean类型的值不能与其它类型进行转换。

变量:

强类型的语言。

1.格式:

数据类型变量名;

2.JAVA中标识符命名的规则:

a)标识符由字母,下划线,数字,美元符($)组成。

b)不能用数字开头。

c)不能使用关键字(在JAVA中关键字都为小写)。

注意:

当变量没有赋值时不能使用。

常量:

只能赋值一次的变量。

使用final关键字。

运算符:

1.算术运算符:

+,-,*,/,%(取余数),++(自增),--(自减)。

JAVA中混合运算的结果的类型,根据运算元素的精度与长度决定。

2.关系运算符:

>,>=,<,<=,==(判断是否相等),!

=(不等于),结果一定是boolean类型。

3.赋值运算符:

=,将右边值(结果)赋给左边的变量。

4.字符串连接符:

+

5.逻辑运算符:

逻辑与(&),逻辑或(|),短路与(&&,当第一个表达式为false时,不执行第二个表达式),短路或(||,当第一个表达式为true时,不执行第二个表达式),逻辑非(!

与运算

表达式1

表达式2

结果

T

T

T

T

F

F

F

T

F

F

F

F

或运算

表达式1

表达式2

结果

T

T

T

T

F

T

F

T

T

F

F

F

6.扩展运算符:

+=,-=,*=,/=,%=,可以将结果的类型自动转换为接收的类型

7.三目运算符(三元运算符):

x?

y:

z。

当x为true时,返回y的值,当x为false时,返回z的值。

基本数据类型的类型转换:

1.小的可以直接赋给大的。

2.大的必须强转才能赋给小的。

3.boolean不能转换为其它类型。

4.byte,short,char进行算术时结果会自动转换为int

流程控制:

顺序结构,选择结构,循环结构

一.选择结构

if语句

格式:

if(条件){

代码;

}

if(条件){

代码;

}else{

代码;

}

if(条件){

代码;

}elseif(条件){

代码;

}elseif(条件){

代码;

}else{

代码;

}

1.if语句中的条件的结果必须为boolean类型的值

2.if语句的大括号可以省略,但省略后if的作用范围只在if后面的一行代码。

3.一个if语句中可以出现0个或1个else

4.else语句必须出现在if语句的最后

5.一个if语句中可以出现0个或多个elseif

6.当匹配分支后,其它分支将不再执行。

switch语句:

switch语句只能判断是否相等。

switch(变量){

case值:

代码;

[break;]

case值:

代码;

[break;]

……

default:

代码;

[break;]

}

1.switch语句中变量的类型必须为int,byte,short,char,枚举(JDK1.5),String(JDK1.7)

2.case后面的值不能重复

3.case后面只能放常量或字面值

4.当switch匹配一个分支后,将从这个分支开始执行后面所有的分支直接switch语句的结束,或遇到第一个break为止。

5.switch语句会先执行所有的case语句,当所有的case语句都没匹配到时,执行default

6.default语句不一定出现在switch语句的最后

switch中没有break时是什么情况

循环结构:

while循环:

当循环次数不确定时使用while循环

while(条件){//条件为布尔类型

循环体;

}

先判断,再循环

Math.random():

随机数方法,返回一个大于或等于0但一定小于1的double类型的值

do…while循环:

do{

循环体;

}while(条件)

先循环,再判断

for循环:

当确定循环次数时使用for循环。

for循环中三部分都可以省略。

for(循环变量初始化;循环条件;循环变量自增/自减){

循环体;

}

break:

必须放在switch语句或循环语句中。

放在循环中的作用:

结束所在循环。

带标签的break:

结束标签后面的循环。

continue:

只能出现在循环语句中。

结束本次循环,使用循环直接进入下一次循环。

带标签的continue:

使标签后面的循环结束本次循环,直接进入下一次循环。

数组:

多个相同数据类型的集合。

在JAVA中所有的数组都是引用数据类型,但数组中每个元素可以为基本数据类型

一维数组:

声明数组:

不能写数组的长度

数据类型[]数组名;

数据类型数组名[];

int[10]a;//错误。

创建数组:

必须指定数组的长度。

当确定了数组的长度后,数组的长度便不能修改。

数组的长度可以为0,但不能为负数。

int[]array={1,2,3,4,5,6,7,8,9};java习惯

intarray1[]=newint[10];c习惯

int[]array2=newint[]{1,2,3,4,5};

i:

100

array:

引用

array[0]:

10

array[1]:

22

array[2]:

31

访问数组的元素:

通过下标可以访问数组的元素。

在JAVA中数组的下标从0开始

数组名[下标],数组中最大的下标为数组的长度减1

数组与循环

foreach循环:

遍历集合。

JDK1.5以后出现。

for(数据类型变量:

集合名){

代码;

}

命令行参数:

java类名命令行参数,命令行参数以空格作为分隔符。

由main()中的String[]接收

二维数组:

声明数组:

数据类型[][]数组名;

数据类型数组名[][];

数据类型[]数组名[];

创建数组:

int[][]array={{1,3,5},{2,4,6},{7,8,9}};

intarray1[][]=newint[3][3];//在创建多维数组时,高维不能省略,低维可以省略如:

intarray1[][]=newint[3][3];

array:

引用

array[0]

array[1]

array[2]

array[0][0]:

1

array[0][1]:

3

array[0][2]:

5

array[1][0]:

1

array[1][1]:

3

array[1][2]:

5

array[2][0]:

1

array[2][1]:

3

array[2][2]:

5

第四章

类与对象

1.成员变量(全局变量,字段,属性,域):

描述类的特征。

在类中声明的变量。

在类中都可用。

成员变量有默认值(byte,short,int默认值为0.long默认值为0L,double默认值为:

0.0,float默认为0.0F,boolean默认为false,char默认为’\u0000’,引用数据类型默认为null)。

2.局部变量:

方法中声明的变量,只在方法中可用。

局部变量没有默认值.

3.new关键字在堆中开辟空间,创建类的对象(实例)。

p:

引用

name:

刘小凯

age:

18

sex:

salary:

p1:

引用

name:

梁志达

age:

18

sex:

salary:

4.在一个类中想调用另一个类的成员(成员变量与成员方法),必须声明并创建这个类的对象,通过类的对象调用类的成员。

格式为:

对象名.成员。

5.成员方法(成员函数):

描述类的行为(动作)。

6.方法声明的基本格式:

访问权限返回类型方法名([参数]){

方法体;

}

当方法没有返回类型时,用void表示,可以使用return但不能返回数据

return的功能:

1.返回数据;2.结束方法

方法的重载:

一个类有多个名字相同但参数不同(个数不同,类型不同,顺序不同)的方法。

子类能重载父类的方法

构造方法(构造函数,构造器):

1.方法名与类名相同。

2.构造方法一定没有返回值,并且不能写void

3.类一定有构造方法。

4.当没有在类中显式的写构造方法时,JVM会自动为类添加一个默认的构造方法。

5.默认构造方法:

没有参数,没有方法体

public方法名(){}

6.构造方法无法任意调用。

只有new时才能调用类的构造方法。

new构造方法().

7.构造方法的功能:

为类的成员变量初始化。

8.当在类中显式的写了构造方法,JVM就不会为类添加默认的构造方法。

this关键字:

在类中调用自身的成员。

static关键字:

用static修饰的成员可以使用类的对象调用,也可以使用类名(接口名)调用。

1.修饰成员变量:

静态变量。

静态变量对于类的对象而言是共用一份的。

p:

引用

name:

age:

p1:

引用

name:

age:

BB

2.修饰成员方法:

静态方法。

静态方法只能直接调用静态的成员(成员变量,成员方法)。

不能使用this与super关键字。

final修饰的成员变量如何初始化:

1.在声明final类型的成员变量时,直接为这个变量初始化。

2.如果没有在声明时为final的成员变量初始化,就需要在这个类的所有的构造方法中为这些final的成员变量初始化(保证类的对象在构造完成前,这些final的成员变量需要被初始化).

包:

本质就是文件夹。

包主要的作用解决类的重名问题。

1.当类出现在一个包中时,类的第一行必须是package语句,说明类存在于哪个包下。

2.package语句必须出现在类的首行(注释除外)

3.类可以引用同包下的类。

4.当类可使用其它包中的类时,要使用import语句导包。

5.在java.lang包中的内容可以直接使用不用导包。

20120804

类的继承:

单继承:

一个类只能有一个父类(直接的父类)。

名字,性别,职业,耐力,力量

走,跑,跳,攻击

使用extends关键字,使一个类继承另一个类。

父类:

超类,根类,基类

子类:

派生类

访问权限:

public\protected\默认\private,普通的类(顶层类)只能用public与默认修饰,修饰类的成员,但不能修改局部变量。

 

类内部

同包下的类

不同包下的子类

不同包下的其它类

private

Y

N

N

N

默认(包权限)

Y

Y

N

N

protected

Y

Y

Y

N

public

Y

Y

Y

Y

p:

引用

name:

AA

age:

50

s:

school:

大连

name:

BB

age:

20

第五章

方法的重载:

一个类有多个名字相同但参数不同(个数不同,类型不同,顺序不同)的方法。

方法的重写(方法的覆盖):

1.子类根据需要重写父类中的方法。

2.重写的方法要与被重写的方法具有相同的方法名,参数列表,返回类型。

3.重写的方法的访问权限要大于或等于被重写方法的访问权限。

4.static修饰的方法不能产生重写。

5.重写的方法不能抛出比被重写的方法范围更大的异常。

(小于或等于可以)

classFoo{

StringdoStuff(intx){return"hello";}

}

AStringdoStuff(Strings){return"Hello";}重载

BintdoStuff(Strings){return42;}重载

CStringdoStuff(intx){return"hello";}重写

super关键字:

在子类中引用父类的成员。

子类可以继承父类中private的成员,但不能使用。

子类不能继承父类的构造方法。

继承中的构造方法:

1.子类在构造自己的过程中必须调用父类的构造方法。

2.子类在自己构造方法的第一行使用super([参数])调用父类的构造方法。

3.如果没有显式的写super([参数]),JVM会自动在子类构造方法的第一行添加super()调用父类无参的构造方法。

4.当父类中没有无参的构造方法,而子类又没有显式的调用父类有参的构造方法,则编译失败。

可变参数:

只能用在方法的形参中。

格式:

数据类型…变量名,本质是一个一维数组。

在声明方法时不能在可变参数的后面添加其它的参数。

当方法的形参为基本数据类型时,形参的值改变实参的值不变。

当方法的形参为引用数据类型时,形参的值改变实参可能改变。

20120806

instanceof运算符:

判断左边的对象是否为右边类的对象或右边类的子类的对象。

如果左边的对象与右边的类没有继承关系,编译失败。

引用数据类型的类型转换:

1.子类可以直接赋给父类。

2.父类必须强转才能赋给子类。

3.当父类的变量指向的不是子类的对象时,代码运行时会发生运行时异常

4.当两个类没有继承关系时不能进行类型转换,否则编译失败

多态与动态绑定:

1.父类声明,子类创建。

2.多态时调用的方法是子类的方法(如果子类重写了父类的方法)。

3.多态时调用的成员变量是父类的成员变量。

抽象:

abstract

1.修饰类:

抽象类。

抽象类不能实例化(不能new)。

只能使用抽象类的子类。

2.修饰成员方法:

抽象方法。

抽象方法只有方法的声明没有方法的实现。

子类必须重写父类中所有的抽象方法(如果子类是抽象类可以不重写)。

抽象方法所在的类必须是抽象类。

3.修饰接口:

抽象方法不是只能放在抽象类中,接口中也可以

abstract不能与哪些关键字一起使用:

private,static,final

final

1.修饰变量:

只能赋值一次

2.修饰方法:

子类不能重写父类final的方法。

3.修饰类:

类不能被继承。

第七章

接口的功能:

使JAVA实现多继承。

interface关键字创建接口。

接口不是类(不能new)只能是用接口的实现类(不能实例化接口的对象)

1.接口中包含常量与抽象方法。

2.接口中的常量默认为publicstaticfinal,也必须为publicstaticfinal.

3.接口中的方法默认为publicabstract,也必须为publicabstract

4.类可以实现(implements)接口,一个类可以实现多个接口

5.当类实现接口,类必须重写接口中所有的抽象方法(如果类是抽象类可以不重写)

6.接口可以继承其它接口,接口可以继承多个接口。

20120807

//声明一个内部类的对象

OutClass.InterClassin;

OutClasso=newOutClass();

//创建实例内部类的对象

in=o.newInterClass();

普通内部类不能包含static静态类。

内部类:

一个类中嵌套一个类,内部类可以使用所有的访问权限修饰,内部类可以使用static修饰

1.实例内部类(普通内部类):

实例内部类可以直接使用外部类所有的成员,实例内部类不能包含static的成员。

2.静态内部类:

用static修饰的内部类。

静态内部类中可以有静态与非静态的成员。

静态内部类只能直接使用外部类中静态的成员。

3.局部内部类:

在方法中创建的类。

不能使用访问权限修饰,可以访问局部变量,但这些局部变量必须是final的

第八章

异常处理:

Throwable类

Error类

Exception类

RuntimeException类及其子类

非运行时异常

Throwable类:

JAVA所有错误与异常的父类。

Error类:

在编程时不用(不应该)捕获与处理的错误。

Exception类:

在编程时需要捕获与处理的异常。

RuntimeException类及其子类:

在编程时可以不捕获的异常,但运行时程序可能会发生错误。

非运行时异常(编译错误):

在编程时必须捕获与处理的异常,否则代码无法编译。

捕获并处理异常

try{

可能会发生异常的代码

}catch(异常的类型){

处理异常的代码

}finally{

无条件执行的代码

}

1.try块不能单独使用,必须与catch块或finally块一起使用。

2.当try块中发生异常时,从发生异常的代码开始之后try块中的代码将不再执行。

3.一个try语句中可以出现0个或多个catch块

4.可以在catch块中使用Exception捕获并处理所有的异常。

5.Exception只能出现在最后一个catch块中。

6.一个try语句中只能出现0个或1个finally块

7.finally块中的代码一定会执行。

自定义的异常:

类继承Exception或Exception的子类

手动抛出异常:

throw关键字。

在方法的运行过程中手动的抛出一个异常。

必须出现在方法体中。

声明异常:

throws关键字,只能出现在方法的声明中,是通知方法的调用者此方法在运行时可能会发生一些异常(笔试)

当父类的构造方法抛出异常时,子类的构造方法也必须抛出同样的异常。

当调用的方法可能抛出非运行时异常时,在调用方法的同时必须处理这些异常

20120808

常用类:

java.lang.String类:

在JAVA中表示不可变的字符序列。

如果字符串要频繁进行修改时不要使用String类。

==比较的是:

引用(地址)。

常用的方法:

String类的方法不会改变自己的内容。

charAt(intindex):

获得字符串指定位置的字符。

length():

获得字符串的长度。

indexOf(Strings):

在字符串中查询字符串s首次出现的位置,没找到返回-1

indexOf(Strings,intindex):

从字符串的第index位开始查找字符串s首次出现的位置,没找到返回-1.

equals():

判断字符串的内容是否相等(区分大小写)。

equalsIgnoreCase():

判断字符串的内容是否相等(不区分大小写)。

replace(charc1,charc2):

将字符串出出现的所有的c1用c2替换掉

StringBuffer(s.replace(start,end,”字符串”));

substring(intbegin):

从字符串的第begin位开始截取字符串一直截取到字符串的最后。

substring(intbegin,intend):

从字符串的第begin位开始截取字符串一直截取到第end位。

trim():

去掉字符串左右的空格。

valueOf(XXXi);将i转换为String类型的值。

基本数据类型转换成引用数据类型

StringBuffer与StringBuilder:

:

可变的字符序列。

如果字符串需要频繁修改时应该使用StringBuffer或StringBuilder.

常用的方法:

append(XXXs):

将指定的内容s追加到字符串中。

insert(intindex,XXXs):

在字符串第index位之前插入内容s

delete(intbegin,intend):

从第begin位开始删除字符串一直到第end位之前

reverse():

将字符串倒序排列。

java.util.Date类:

日期

java.util.Calendar类:

日历

java.text.DateFormat类:

格式化日期,将日期转换成指定格式的字符串。

20120809

java.lang.Object类:

是JAVA中所有类的父类。

equals():

判断内容是否相等。

这个方法最早出现在Object类中,但Object类的equals()比较的不是内容而是引用是否相同。

包装类(封装类):

共8个,Byte,Short,Integer,Long,Float,Double,Character,Boolean

所有的包装类都是final

final

修饰变量:

只能赋值一次

修饰方法:

子类不能重写父类final的方法。

修饰类:

类不能被继承。

装箱:

将基本数据类型转换为包装类。

拆箱:

将包装类转换为基本数据类型。

从JDK1.5以后JAVA可以自动的装箱与拆箱

集合框架:

Collection接口

Map接口

Set接口

List接口

Map接口的实现类

Set(集):

不保存元素加入的顺序,不能有重复值。

List(列表):

保存元素加入的顺序,可以有重复值。

Map:

保存一对值(键值对,Key-Value),键不能重复,值可以重复。

ArrayList:

是线性表,按位置(索引)查询元素时效率高,但添加与删除元素效率低。

LinkedList:

是链表,添加与删除元素效率高,但按位置查找元素时效率低。

Vector:

功能与ArrayList一样,但Vector是线程安全的,ArrayList是线程不安全的。

Hashta

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

当前位置:首页 > 初中教育 > 初中作文

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

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