01 JAVA基础知识点总结.docx

上传人:b****8 文档编号:29986304 上传时间:2023-08-04 格式:DOCX 页数:42 大小:169.98KB
下载 相关 举报
01 JAVA基础知识点总结.docx_第1页
第1页 / 共42页
01 JAVA基础知识点总结.docx_第2页
第2页 / 共42页
01 JAVA基础知识点总结.docx_第3页
第3页 / 共42页
01 JAVA基础知识点总结.docx_第4页
第4页 / 共42页
01 JAVA基础知识点总结.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

01 JAVA基础知识点总结.docx

《01 JAVA基础知识点总结.docx》由会员分享,可在线阅读,更多相关《01 JAVA基础知识点总结.docx(42页珍藏版)》请在冰豆网上搜索。

01 JAVA基础知识点总结.docx

01JAVA基础知识点总结

JAVA基础知识点总结

目录

1.JAVA简介3

1.1java体系结构3

1.2java特点3

1.3JDK与JRE3

1.4第一个java程序3

1.5java程序的开发步骤3

2.基本数据类型3

2.1标志符3

2.2关键字3

2.3常量3

2.4变量3

2.5基本数据类型3

2.6基本数据类型之间的转换3

3.运算符与流程控制4

3.1运算符:

算术,关系,赋值,逻辑(着重注意),位运算符4

3.2流程控制语句4

3.3switch的规则4

3.4for,while,dowhile搞清楚代码的执行流程4

3.5break,continue4

3.6流程控制代码编写4

4.面向对象基本语法4

4.1定义一个类5

4.2实例化对象5

4.3区分引用类型与基本数据类5

4.4如何操作对象:

使用.操作符5

5.访问控制,方法定义与调用,重载,方法重写5

5.1访问控制5

5.1.1package包的使用5

5.1.2继承(简单概念)6

5.1.3四个访问级别6

5.2重载与重写6

5.2.1重载6

5.2.2重写6

5.3类与对象的生命周期6

5.3.1类与对象的初始化过程6

5.3.2垃圾回收机制6

5.4单例模式7

6.继承,抽象类,接口7

6.1继承:

7

6.1.1继承的语法7

6.2.2继承中的构造方法7

6.3.3对象的转型7

6.4.4多态8

6.2抽象类:

8

6.3static:

静态关键字8

6.3.1static属性8

6.3.2static方法8

6.4final关键字8

6.5接口8

7.异常处理9

7.1什么是异常,为什么要引入异常9

7.2java的异常的分类9

7.3异常的处理方式9

7.4try,catch,finally中程序的运行过程9

7.5区分RuntimeException与被检查异常10

8.数组10

9.常用类10

10.集合框架12

11.JDBC13

12.图形-布局,常用Swing组件14

13.图形-事件处理,绘图15

14.多线程15

15.IO16

16.网络16

17.类与对象的生命周期17

18.补充知识点17

1.JAVA简介

1.1java体系结构:

j2se,javaweb,j2ee

1.2java特点:

平台无关(虚拟机),垃圾回收(使得java更加稳定)

1.3JDK与JRE,JDK:

java开发环境,JRE:

java运行环境

1.4第一个java程序:

HelloWorld,java的入口是main(publicstaticvoidmain(String[]args))

1.5java程序的开发步骤:

.java编译(javac)成.class运行(java).class文件

2.基本数据类型

2.1标志符:

自己可以取名字的地方称为标志符

*标志符的规则:

1,只能是字母,数字,下划线,$;不能以数字开头;严格区分大小写;不能使用关键字作为标志符

2.2关键字:

关键字都是小写

2.3常量:

如123,“hello”

*也可以使用final定义常量(请参照Math.PI),如publicstaticfinalintSLOW_SPEED=1;

2.4变量:

变量的本质是内存中的一小块区域,用这个区域保存数据

*变量申明:

类型变量名字

*变量必须先声明,再赋值,再使用

*注意区分基本数据类型的变量与引用数据类型的变量

*变量的作用域,局部变量与成员变量:

变量在哪个大括号里定义,就在哪里有效,出了大括号无效

2.5基本数据类型:

java数据类型分为两大类:

基本数据类型,引用数据类型

*基本数据类型分为4类8中:

boolean,char,byte,short,int,long,float,double

*boolean类型只有true,false

*char是Unicode编码

*float,double是有精度的(不是绝对精确的)

2.6基本数据类型之间的转换

*123字面常量是int型,12.3字面常量是double型,8888888888888这个字面常量有问题(因为它已经超出int的范围,改成8888888888888L)

*boolean与其他类型不兼容

*byte,short,char之间相互运算的时候,先转换为int,再进行运算

*小容量的数据类型可以自动转换为大容量的数据类型:

byte,short,char——>int——>long——>float——>double

*大容量转换为小容量的数据类型,要进行强制转换

*多种数据类型进行运算的时候,先转换为容量最大的数据类型再进行运算,整个表达式的类型是容量最大的数据类型

*必须掌握PPT上的习题

1、自动类型转换(隐式类型转换)

需要同时满足两个条件:

1)、两种类型彼此兼容

2)、目标类型的取值范围要大于源类型

2、强制类型转换(显示类型转换)

当两种类型不兼容,或目标取值类型范围小于源类型时,自动类型转换无法进行,需要进行强制类型转换。

数据类型强制转换的格式为:

(数据类型)数据表达式;

例如:

inti=5;byteb=(byte)i;

3.运算符与流程控制

3.1运算符:

算术,关系,赋值,逻辑(着重注意),位运算符

*自加自减++,--,注意顺序

*关系运算符的结果是boolean类型

*逻辑运算符注意短路与&&,短路或||

*三元运算符(逻辑表达式)?

表达式一:

表达式二

1)、算术运算符

运算符

运算

范例

结果

+

正号

+3

3

-

负号

b=4;-b;

-4

+

5+5

10

-

6-4

2

*

3*4

12

/

5/5

1

%

取模(求余)

5%5

0

++

自增(前)

a=2;b=++a;

a=3;b=3;

++

自增(后)

a=2;b=a++;

a=3;b=2;

--

自减(前)

a=2;b=--a;

a=1;b=1;

--

自减(后)

a=2;b=a--;

a=1;b=2;

+

字符串相加

“he”+“llo”

“hello”

两个整数之间的相除(/)运算结果还是整数,其结果是除的结果的整数部分。

例如:

5/2结果为2

要获得实数结果,运算中至少一个浮点数。

例如:

5/2.0结果为2.5

2)、关系运算符

运算符

运算

范例

结果

==

相等于

4==3

false

!

=

不等于

4!

=3

true

<

小于

4<3

false

>

大于

4>3

true

<=

小于等于

4<=3

false

>=

大于等于

4>=3

true

3)、赋值运算符

运算符

运算

范例

结果

=

赋值

a=3;b=2;

a=3;b=2;

+=

加等于

a=3;b=2;a+=b;

a=5;b=2;

-=

减等于

a=3;b=2;a-=b;

a=1;b=2;

*=

乘等于

a=3;b=2;a*=b;

a=6;b=2;

/=

除等于

a=3;b=2;a/=b;

a=1;b=2;

%=

模等于

a=3;b=2;a%=b;

a=1;b=2;

4)、逻辑运算符

运算符

运算

范例

结果

&

AND(与)

false&true

false

|

OR(或)

false|true

true

^

XOR(异或)

false^true

true

!

NOT(非)

!

true

false

&&

AND(短路与)

false&&true

false

||

OR(短路或)

false||true

true

在使用短路与(&&)时,如果第一个操作数(或表达式)为“假”,则不再计算第二个操作数(或表达式),直接返回“假”。

在使用短路或(||)时,如果第一个操作数(或表达式)为“真”,则不再计算第二个操作数(或表达式),直接返回“真”。

逻辑运算符只能用于布尔(boolean)类型之间;其结果值为布尔(boolean)类型。

5)、位运算符

运算符

运算

计算规则

&

按位与

只有参加运算的两位都为1,‘&’运算的结果才为1,否则为0。

|

按位或

只有参加运算的两位都为0,‘|’运算的结果才为0,否则为1。

^

按位异或

只有参加运算的两位不同,‘^’运算的结果才为1,否则为0。

<<

左移位

左移指定位数,右边补0。

>>

右移位

右移高位是0,左边补0;高位是1,左边补1。

>>>

无符号右移位

左边补0。

按位取反

1取反是0,0取反是1。

位运算符只可用于整数类型、char类型,不可应用于浮点类型。

6)、条件运算符

条件运算符是一个三目运算符,也是唯一的一个三元运算符,符号为“?

:

”,在程序中能实现简单的判断功能。

语法格式:

表达式1?

表达式2:

表达式3

其中表示1是一个布尔表达式,如果表达式1结果为true,则执行表达式2,否则执行表达式3。

举例说明:

求a,b的最大值。

inta=4,b=6,max;

max=a>b?

a:

b;//将a和b中的较大值赋给max

 

3.2流程控制语句:

条件(if,switch),循环(for,while,dowhile),break与continue

单分支条件语句

语法格式为:

if(条件表达式){

语句或语句块;

}

二分支条件语句

语法格式为:

if(条件表达式){

语句或语句块1;

}else{

语句或语句块2;

}

嵌套条件语句

语法格式为:

if(条件表达式){

if(条件表达式){

语句或语句块;

}

}else{

语句或语句块2;

}

多分支条件语句

语法格式为:

if(条件表达式1){

语句或语句块1;

}elseif(条件表达式2){

语句或语句块2;

}……

……

}elseif(条件表达式n){

语句或语句块n;

}else{

语句0;

}

3.3switch的规则:

*switch只能探测:

byte,short,char,int类型的值(case后面也只能是这4种)

*switch中小心case的穿透(代码会一直运行,直到遇到break停止,建议每个case写一个break)

*default:

如果没有找到匹配的case,则执行default

语法格式为:

switch(条件表达式){

case常量1:

语句1;

break;

case常量2:

语句2;

break;

……

case常量N:

语句N;

break;

[default:

语句;break;]

}

3.4for,while,dowhile搞清楚代码的执行流程(PPT上有图,必须记住)

1、for循环语句

语法格式为:

for(变量初始化表达式;循环条件表达式;迭代部分)

语句或语句块;//循环体

for循环有一个特殊的循环,叫死循环。

表现形式为:

booleanisOk=true;或for(;;){}

for(;isOk;){}

for循环可以再嵌套for循环。

注意:

在for循环的初始化或迭代部分,可以有多个表达式,表达式之间用逗号隔开。

例如:

intcount=0;

for(inta=1,b=10;a

count++;

}共循环多少次?

2、while循环语句

语法格式为:

while(循环条件表达式){

语句或语句块;

3、do-----while循环语句

语法格式为:

do{

语句或语句块;

}while(表达式);(注意分号绝对不能省略)

3.5break,continue

*都可以用在循环里面,break还可以用在switch中

*break跳出单前的代码块(结束循环)

*continue:

跳过本轮循环,继续下一轮循环(循环会继续,仅仅跳过本次)

3.6流程控制代码编写:

可以灵活的组合这些流程控制代码,注意一定要写{}

方法调用语句

方法调用语句是执行对象的某个方法。

一个完整的方法调用语句由某个方法调用加上一个分号构成。

调用语法格式为:

类对象名称.方法名(参数);

例如:

System.out.println(“Thisisastatementcallamethod!

”);

调用对象System.out的println方法。

4.面向对象基本语法

需要大家掌握:

类与对象的区别,如何定义一个类,如何实例化一个对象

4.1定义一个类

*使用class关键字定义类,注意类名大写

*成员属性:

成员属性不赋值会有默认值(默认值规则参考PPT)

*成员方法

*构造方法:

没有任何返回值,名字与类名一样,构造方法的本意是用来初始化对象(初始化对象的属性值)

4.2实例化对象:

Students=newStudent();

*使用new+构造方法实例化对象

*new在堆中开辟了对象的空间,并且给属性赋上默认值

*接下来调用构造方法,执行构造方法中的代码

*最后返回对象的引用

4.3区分引用类型与基本数据类型

*引用类型的变量在内存中有两块区域,一块是引用本身,另一块是引用所指向的对象

*基本数据类型在内存中只有一块空间:

里面存着值

4.4如何操作对象:

使用.操作符

*使用对象名.属性操作对象的属性(如:

stu.age=18;)

*使用对象名.方法调用对象的方法(如:

stu.study());

*this:

每个对象都有this,this是指向本身的引用,代表本身

4.5.必须能够独立写出Point3D的代码(题目在PPT上)

5.访问控制,方法定义与调用,重载,方法重写

5.1访问控制

5.1.1package包的使用

*使用package定义包:

package只能放在代码的第一行

*import:

导包,可以到入包下所有importjava.io.*;可以导入具体的一个类importjava.io.Reader;

*包的作用:

1,分类;2,隐藏(封装的作用),3,便于管理

*java本身提供了一些包:

java.lang(核心类,此包如需要引入),java.util(集合框架以及其他常用类),java.io(输入输出),java.awt,javax.swing(图形)

5.1.2继承(简单概念):

使用extends关键字表示继承

*子类继承父类的所有属性

*子类继承父类除private(非同包的时候也除默认的方法)外的所有方法

*子类对象拥有super引用,表示父类的引用,可以使用super明确的调用父类的方法或属性

5.1.3四个访问级别,从大到小:

public,protected,默认,private

*注意访问级别是针对类来讲的,不是针对对象!

*注意类的访问修饰符只能使用public或默认

*学了访问控制后:

类的属性都写private,通过set/get方法对属性进行赋值,取值

5.2重载与重写

1.判断是否是重载,或者是否是重写,如果不是重写或者重载,就不受重写重载规则的约束

5.2.1重载:

一个类当中,有方法名相同,参数不同的方法,称为重载

*不能只改返回值:

不能根据方法的返回进行重载

5.2.2重写:

在继承当中,子类将父类的方法重新写了一遍:

重写的方法与被重写的方法拥有相同的方法签名(返回值类型,方法名,参数列表)

*.重写的方法能够改变被重写的方法的访问级别,注意只能是相等或者扩大

*.重写的方法不能抛出比被重写方法更多的异常,注意只能缩小异常的范围

*.如果被重写的方法是具体的,重写之后不能改为abstract

 

5.3类与对象的生命周期

5.3.1类与对象的初始化过程:

*静态属性先初始化,而且仅仅初始化一次

*首先给静态属性进行声明,并赋默认值,然后代码从上往下执行静态代码块或静态赋值

*每创建一个对象,就先实例化成员属性:

首先给成员属性声明,赋默认值,然后.执行赋值语句

*成员属性初始化后再调用构造方法

 

5.3.2垃圾回收机制

*java虚拟使用垃圾回收机制进行垃圾回收

*垃圾回收本身是一个线程(当内存不够用的时候,一般会进行垃圾回收)

*垃圾回收不能通过程序来调用,仅仅能够通过System.gc()建议虚拟机进行垃圾回收

*当进行垃圾回收时,会调用对象的finalize方法

5.4单例模式:

一个类仅仅能有一个实例(设计模式的一种)

*构造方法必须为私有的

*提供静态的方法来获得对象

*提供静态的属性,该属性是该类的一个对象

6.继承,抽象类,接口

6.1继承:

6.1.1继承的语法:

使用extends关键字表示继承

*子类继承父类所有的属性

*私有方法不能被继承

*super关键字表示父类的引用,可以用super来调用父类的方法或属性

6.2.2继承中的构造方法:

了解下面的知识点以及实例化对象时代码的执行过程

*子类的构造过程必须调用其基类的构造方法

*子类可以在自己的构造过程中使用super(arg_list)来调用基类的构造方法

*如果调用super,必须写在子类构造方法的第一行

*可以使用this(argument_list)调用本类的另外的构造方法

*如果子类的构造方法中没有显示的调用基类的构造方法,系统默认调用基类无参数的构造方法

*如果子类构造方法中既没有显式的调用基类构造方法,基类中又没有无参数的构造方法,编译出错

6.3.3对象的转型

*一个基类的引用类型变量可以指向其子类的对象

*一个基类的引用不可以访问其子类对象新增的成员

*可以使用instanceof关键字来判断一个引用类型变量所指向的对象是否是制定的类型

*子类的对象可以当作基类的对象来使用称作向上转型,反之称为向下转型

*子类可以当成父类来使用,无需显示转换

*父类引用转换为子类引用要进行强制转换

*注意:

不兼容的类型之间不能进行相互转换(只有具有直接或间接父子关系的类才是兼容的类型),否则编译时会报错

*注意:

兼容类型之间的转换要看对象的实际类型,因此向下转化时最好先用instanceof来判断是否是某个类型,在转换,以免报报错

6.4.4多态:

也称运行时绑定:

一般是指父类的引用指向子类对象,通过父类的引用调用被子类重写的方法,这个时候执行的是子类的方法

*一句话总结多态:

对象实际是什么类型就调用什么类型的方法

*多态成立的条件:

1,要有继承。

2,要有重写。

3,必须有父类引用指向子类对象。

6.2抽象类:

用abstract修饰的类称为抽象类(抽象的本意是不具体)

1.抽象方法不能有方法体

2.抽象类不能被实例化。

3.含有抽象方法的类必须被声明为抽象类,

4.子类继承抽象类,必须被重写父类的抽象方法,否则本身也必须被声明为抽象类

5.抽象类中的方法和属性没有其他规则来约束,抽象类中没有抽象的方法是可以的,抽象类中可以有非抽象的方法和属性

6.3static:

静态关键字

6.3.1static属性:

在类中,用static申明的成员变量叫静态变量,他为该类的公用变量,在第一使用时被初始化,对于该类的所有对象来说,static成员变量只有一份

6.3.2static方法:

用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以static方法中不可以访问非static的成员。

*静态方法中不能访问非静态成员

*静态成员方法没有this引用

*可以通过类名(不需要实例化)或对象引用来访问静态成员

6.4final关键字:

final表示最终的意思

*final的变量的值不能够被改变

*final的成员变量

*final的局部变量(形参)

*final的方法不能够被重写

*final的类不能够被继承

 

6.5接口:

interface

1.使用interface定义一个接口,使用implements实现一个接口

2.接口中的属性只能为publicstaticfinal类型(静态常量)

3.接口中的方法只能为publicabstract类型

4.一个类可以实现多个接口,但只能继承一个类

5.接口也可以继承接口

7.异常处理

java的异常处理机制

异常的关键字Exception

try,catch,finally,throw,throws关键字

7.1什么是异常,为什么要引入异常

*java程序运行时出错,java就抛出异常,程序立即终止(也可以说程序崩溃)

*java将错误信息封装在异常对象里抛出

*学会查看异常的信息:

异常的名字,异常的信息,程序抛异常的位置

*java引入异常处理机制,是防止程序出错崩溃

7.2java的异常的分类

*java的抛出的错误用异常类来表示,java拥有一个异常体系(有许多异常类,并且相互之间具有关系)

*java里面的所有异常都是Throwable的子类

*java虚拟机的异常是Error的子类,一般不需进行处理(因为没法进行处理)

*除Error之外还有Exception,Exception分为两类:

RuntimeException(运行时异常),被检查异常(除了RuntimeException都是被检查异常)

*RuntimeException(运行时异常,可以不捕获或声明抛出,编译不会报错,一般是控制不当造成的),可检查异常(必须捕获或声明抛出,这类异常通常需要检测并处理,一般使用资源时造成的)

*几个常见的异常:

NullPointerException(空指针),IndexOutOfBoundsException(索引越界),SQLException(数据库异常),IOException(文件异常)

7.3异常的处理方式

*使用try,catch,finally进行处理

*不处理,使用throws,throw交给别人来处理

7.4try,catch,finally中程序的运行过程

*尝试执行try里面的语句

*一次运行当中最多执行一个catch块,如果没有抛出异常,catch块不执行

*finally总会执行,不管有没有抛出异常

*如果try块里面有return语句,finally也会执行

7.5区分RuntimeExcepti

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

当前位置:首页 > 人文社科 > 军事政治

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

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