JavaSE马士兵笔记word版.docx

上传人:b****8 文档编号:11004381 上传时间:2023-02-24 格式:DOCX 页数:59 大小:39.74KB
下载 相关 举报
JavaSE马士兵笔记word版.docx_第1页
第1页 / 共59页
JavaSE马士兵笔记word版.docx_第2页
第2页 / 共59页
JavaSE马士兵笔记word版.docx_第3页
第3页 / 共59页
JavaSE马士兵笔记word版.docx_第4页
第4页 / 共59页
JavaSE马士兵笔记word版.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

JavaSE马士兵笔记word版.docx

《JavaSE马士兵笔记word版.docx》由会员分享,可在线阅读,更多相关《JavaSE马士兵笔记word版.docx(59页珍藏版)》请在冰豆网上搜索。

JavaSE马士兵笔记word版.docx

JavaSE马士兵笔记word版

第1章Java概述

Java语言的特特点

一种面向对象的语言;一种平台无关的语言;一种健壮的语言,吸收了C/C++的优势,但去掉了其阻碍程序健壮性的部份(如:

指针、内存的申请与释放等)

Java的两种核心机制

Java虚拟机(JavaVirtualMachine)

垃圾回收机制(GarbageCollection)

源程序(*.java文件)→Java编译器→字节码(*.class文件)→类装载器→字节码校验器→说明器→操作系统平台

一次编译,处处运行

Java是一种说明型语言

JDK(JavaDevelopmentKit)软件开发工具包

JRE(JavaRuntimeEnvironment)运行时环境

开发需要JDK;用户只需JRE

PATH:

WINDOWS系统执行命令时要搜寻的途径(如,)

CLASSPATH:

Java在编译和运行时要找的class所在途径(“.”代表当前途径)

java:

运行java程序

javac:

编译java程序

java–version

一个源文件最多只能有一个public类,其他类数量不限,源文件名必需与public类名一致

Java应用程序的执行入口时main()方式:

publicstaticvoidmain(String[]args){…}

Java语言中严格区分大小写

编译后,每一个类都对应一个class文件

第2章基础语法

标示符由字母、下划线”_”、美元符”$”或数字组成

标示符应以字母、下划线、美元符开头

Java标示符对大小写灵敏,长度无穷制,注意“见名知意”且不能与Java语言关键字重名

abstract

default

if

private

this

boolean

do

implements

protected

throw

break

double

import

public

throws

byte

else

instanceof

return

transient

case

extends

int

short

try

catch

final

interface

static

void

char

finally

long

strctfp

volatile

class

float

native

super

while

const

for

new

switch

null

continue

goto

package

synchronized

goto和const虽然未利用,但也被作为Java的关键字保留

程序执行进程:

内存

硬盘

heap堆

new出来的东西

代码

操作系统

代码

程序

程序

stack栈

局部变量

datasegment

静态变量

字符串常量

codesegment

存放代码

到内存区2.找到main方式开始执行3.执行进程中的内存治理

整数类型(byte、short、int、long

Java数据类型的划分

数值型

浮点类型(float、double)

字符型(char)

基本数据类型

数组

接口(interface)

布尔型(boolean)

引用数据类型

数据类型

类(class)

boolean类型数据只许诺取值true或false,不能够利用0或非0的整数值取代true和false,这点和c语言不同

Java字符采用Unicode编码,每一个字符占两个字节,因此能够用十六进制编码形式表示,例:

charc=‘\u0061’;

Java语言的整型常量默以为int类型,声明long型常量能够后加l或L

类型

占用存储空间

数值范围

byte

1字节

-27~27-1

short

2字节

-215~215-1

int

4字节

-231~231-1

long

8字节

-263~263-1

Java浮点型常量默以为double型,声明float型需在数字后面加f或F

类型

占用存储空间

数值范围

float

4字节

~

double

8字节

~

大体数据类型转换

boolean类型不能够转换为其他的数据类型

整型,字符型,浮点型的数据在混合运算中彼此转换,转换时遵循以下原那么:

容量小的类型自动转换为容量大的类型:

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

byte,short,char之间不需要彼此转换,他们三者在计算时第一会转换为int类型

能够将整型常量直接赋值给byte,short,char等类型变量,而不需要进行强制类型转换,只要不超过其表数范围

“+”除用于算术加法外,还可用于对字符串进行连接操作,“+”运算符双侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接,当进行打印时,无论任何类型,都自动转换为字符串进行打印

break&continue

break语句用于终止某个语句块的执行。

用在循环语句中,能够强行退出循环

continue语句用在循环语句体中,用于终止某次循环进程,跳过循环体中continue语句下面未执行的循环,开始下一次循环进程

switch

警戒case穿透,推荐利用break语句

多个case能够归并到一路

default能够省略,但不推荐

java中switch语句只能探测int类型值

方式

形参、实参、返回值、返回值类型

Java中进行函数挪用中传递参数时,遵循值传递的原那么:

大体类型传递的是该数据值本身,引用类型传递的是对象的引用,而非对象本身

递归挪用

递归挪用指在方式执行进程中显现该方式本身的挪用

第3章面向对象编程

类是用来创建同一类型的对象的“模板”,在一个类中概念了该类对象所应具有的成员变量和方式,对象能够看成是静态属性(成员变量)和动态属性(方式)的封装体,是该类的一个具体实例,在Java中“一切皆为对象”

继承、组合、实现、多态

类=成员变量+方式

成员变量系统能够对其自动初始化,局部变量不初始化会报错

引用

Java语言中除大体类型之外的变量类型都称之为引用类型(大体类型占一块内存,引用类型占两块内存)

Java中的对象时通过引用对其操作的

类时静态的概念,代码区

对象是new出来的,位于堆内存(动态分派内存用的),类的每一个成员变量在不同的对象中都有不同的值(除静态变量),而方式只有一份,执行的时候才占内存

对象

必需利用new关键字创建对象

同一类的每一个对象有不同的成员变量存储空间(除静态变量)

同一类的每一个对象共享该类的方式

非静态方式时针对每一个对象进行挪用的(必需创建对象)

构造方式

利用new+构造方式创建一个新的对象

构造方式是概念在Java类中的一个用来初始化对象的函数

构造方式与类同名且没有返回值

当没有指定构造方式时,编译器为类自动添加形如类名(){}的构造方式

命名规那么

类名的首字母大写

变量名和方式名的首字母小写

运用驼峰标识

方式重载(overload)

方式的重载是指一个类中能够概念有相同的名字,但参数不同的多个方式。

调历时依照不同的参数列表选择对应的方式

this

在类的方式概念中利用this关键字代表利用该类的对象的引用

有时利用this能够处置方式中成员变量和方式参数重名的问题

This能够看做是一个变量,它的值时当前对象的引用

publicclassLeaf{

intI=0;

Leaf(inti){=i};

Leafincreament(){

i++;

returnthis;

}

voidprint(){=”+i);}

publicstaticvoidmain(String[]args){

Leafleaf=newLeaf(100);

().increament().print();

}

}

static

在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次利历时被初始化,关于该类的所有对象来讲,static成员变量只有一份

用static声明的方式为静态方式,在挪用该方式时,可不能将对象的引用传递给它,因此在static方式中不可访问非static的成员

静态方式再也不是针对某个对象挪用,因此不能访问非静态成员

能够通过对象引用或类名(不需要实例化)访问静态成员或方式

package&import

为了解决类的命名冲突问题,Java引入的包(package)机制,提供类的多重类命名空间

package语句作为Java源文件的第一条语句,指明该文件中概念的类所在的包(假设缺省该语句,那么指定为无名包,裸体类)

Java编译器把包对应于文件系统的目录治理,package语句中,用“.”来指明包(目录)的层次,例:

package;那么该文件中的类位于.\com\yao目录下

若是将一个类打包,那么利用该类时,必需利用该类的全名(例如:

),Java

编译器才会找到该类

也能够利用import在文件的开头引入要利用的类,例:

import能够不需要用import语句直接利用包中的类

访问位于同一个包中的类不需要引入

class文件的最上层包的父目录必需位于classpath下

JDK中要紧的包介绍

包括一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常常利用功能,利历时不需要引入(lang-language)

包括了组成抽象窗口工具集(abstractwindowtoolkits)的多个类,这些类被用来构建和治理应用程序的图形用户界面(GUI)

包括了applet运行所需的一些类

包括了与网络相关的操作的类

包括能提供多种输入/输出功能的类

包括一些有效工具类,如概念系统特性、利用与日期日历相关的函数

java运行时所需的类位于jdk\jre\lib\

打jar包,定位到需要打包的最上层的父途径

jar–cvf*.*(*.*指目录中所有文件夹打包)

jar包也可设为classpath变量

继承extends

通过继承,子类自动拥有了基类(superclass)的所有成员(成员变量和方式)(包括private成员,拥有私有变量的所有权,但无利用权)

Java只支持单继承,不准诺多继承,一个子类只能有一个基类,一个基类能够派生多个子类

访问操纵

权限修饰符public、protected、private、default(包访问权限)

修饰符

类内部

同一个包

子类

任何地方

private

X

X

X

default

X

X

protected

X

public

关于class的权限修饰符只能够用public和default

public类能够在任意地址被访问

default类只能够被同一个包内的类访问

方式重写overwrite/override

在子类中能够依照需要对从基类中继承来的方式进行重写

重写方式必需和被重写方式具有相同方式名称、参数列表和返回类型

重写方式不能利用比被重写方式更严格的访问权限

super

在Java类中利用super来引用基类的成份

继承中的构造方式

子类的构造进程中必需挪用其基类的构造方式

子类能够再自己的构造方式中利用super(argument_list)挪用基类的构造方式

利用this(argument_list)挪用本类的另外的构造方式

若是挪用super,必需写在子类构造方式的第一行

若是子类的构造方式中没有显式地挪用基类构造方式,那么系统默许挪用挪用基类无参数的构造方式

若是子类构造方式中既没有显式挪用基类构造方式,而基类中又没有无参的构造方式,那么编译犯错

Object类

Object类是所有Java类的根基类

若是在类的声明中未利用extends关键字指明其基类,那么默许基类为Object类

publicclassPerson{

}

等价于:

publicclassPersonextendsObject{

}

toString()

Object类中概念有publicStringtoString()方式,其返回值时String类型,描述当前对象的有关信息,返回一个字符串,该字符串由类名(对象是该类的一个实例)+“@”+此对象哈希码的无符号十六进制表示组成,即getClass().getName()+‘@’+(hashCode())

在进行String与其他类型数据的连接操作时(如:

+person)),将自动挪用该对象类的toString()方式

能够依照需要在用户自概念类型中重写toString()方式,建议所有子类都从头此方式

equals()

publicbooleanequals(Objectobj)

(y)关于任何非空引用值,当且仅当x和y引用同一个对象时,此方式返回true(x==y具有值true)

JDK提供了一些类,如String,Date等,重写了Object的equals()方式,挪用这些类的equals()方式,(y),当x和y所引用的对象时同一类对象且属性内容相等时(并非一按时同一对象),返回true,不然返回false

建议重写

例子:

Strings1=newString(“Hello”);

Strings2=newString(“Hello”);

==s2);有继承

2.要有重写

3.父类引用指向子类对象

抽象类

用abstract关键字来修饰一个类时,那个类叫做抽象类;用abstract来修饰一个方式时,该方式叫做抽象方式

含有抽象方式的类必需被声明为抽象类,抽象类必需被继承,抽象方式必需被重写

抽象类不能被实例化

抽象方式只需声明,而不需实现

final

final的变量的值不能被改变

final的方式不能被重写

final的类不能被继承

接口interface

实现implements

接口是抽象方式和常量值得概念的集合

从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包括了常量和方式的概念,而没有变量和方式的实现

多个无关的类能够实现同一个接口

一个类能够实现多个无关的接口

与继承关系类似,接口与实现类之间存在多态性

接口中声明属性默以为publicstaticfinal的,也只能是publicstaticfinal的

接口中只能概念抽象方式,而且这些方式默以为public的,也只能是public的

接口能够继承其他的接口,并添加新的属性和抽象方式

第4章异样处置

异样指运行期显现的错误

所谓错误是指在程序运行的进程中发生的一些异样事件(如:

除0溢出、数组下标越界、所要读取的文件不存在)

Java程序的执行进程中如显现异样事件,能够生成一个异样类对象,该异样对象封装了异样事件的信息并将被提交给Java运行时系统,那个进程称为抛出(throw)异样

声明该方法可能抛出的异常

当Java运行时系统接收到异样对象时,会寻觅处置这一异样的代码并把当前异样对象交给其处置,这一进程称为捕捉(catch)异样

异样的概念

publicvoidsomeMethod()throwssomeException{

if(someCondition()){

thrownewsomeException(“错误原因”);

}

………

}

构造并抛出异常对象

调用该方法时试图捕获异常

RuntimeException

Exception

Error

Throwable

定义处理异常的代码

try{

someMethod();

}catch(SomeExceptione){

//异常处理代码;

}

Error:

称为错误,由Java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等,程序对其不做处置

Exception:

所有异样类的父类,其子类对应了各类各样可能显现的异样事件,一样需要用户显式的声明或捕捉

RuntimeException:

特殊的异样,如被0除、数组下标越界等,其产生比较频繁,处置麻烦,若是显式的声明或捕捉将会对程序可读性和运行效率阻碍专门大,因此由系统自动检测并将它们交给缺省的异样处置程序(用户可没必要对其处置)

·Exception(in)

·ClassNotFoundException

·IOException

·InterruptedException

·RuntimeException

·ArithmeticException(当显现异样的运算条件时,抛出此异样。

例如,一个整数“除以零”时,抛出此类的一个实例)

·NullPointerException

·IndexOutOfBoundsException(指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出。

·ArrayIndexOutOfBoundsException(用非法索引访问数组时抛出的异样。

若是索引为负或大于等于数组大小,那么该索引为非法索引。

·StringIndexOutOfBoundsException(此异样由String方式抛出,指示索引或为负,或超出字符串的大小。

对诸如charAt的一些方式,当索引等于字符串的大小时,也会抛出该异样。

finally

try代码段后跟有一个或多个catch代码段

每个catch代码段声明其能处理的一种特定类型的异常并提供处理的方法

当异常发生时,程序会终止当前的流程,根据获取异常的类型去执行相应的catch代码段

如果没有异常产生,所有的catch代码段都被略过不执行

finally段的代码无论是否发生异常都会执行

通常在finally语句中可以进行资源的清除工作,如:

关闭打开的文件,删除临时文件等

try{

//可能抛出异常的语句

}catch(SomeException1e)

{

……

}catch(SomeException2e)

{

……

}finally{

……

}

捕获SomeException2时

try{

语句1;

语句2;

}

catch(SomeException1e)

{……}

catch(SomeException2e)

{……}

finally{……}

后面的语句;

没有捕获到异常时

try{

语句1;

语句2;

}

catch(SomeException1e)

{……}

catch(SomeException2e)

{……}

finally{……}

后面的语句;

getMessage()方式,用来取得有关异样事件的信息

printStackTrace()方式,用来跟踪异样事件发生时执行堆栈的内容

在一个try语句块中,基类异常的捕获语句不可以写在子类异常捕获语句的上面,否则会有编译错误,子类异常不会被捕获

先逮小的,再逮大的

readFile()throwsIOException{……}

抛出

抛出

抛出

publicstaticmain(Strings){

try{method2()

}catch(IOExceptione){…}

}

method2()throwsIOException{

method2()

}

method1()throwsIOException{

readFile()

}

在一个try语句块中,基类异样的捕捉语句

利用自概念的异样

1.通过继承类声明自己的异样类

2.在方式适当的位置生成自概念异样的实例,并用throw语句抛出

3.在方式的声明部份用throws语句声明该方式可能抛出的异样

classMyExceptionextendsException{

privateintid;

publicMyException(Stringmessage,intid){

super(message);

=id;

}

publicitgetId(){

returnid;

}

}

注意:

重写方式需要抛出与原方式所抛出异样类型一致的异样货不抛出异样

第5章数组

数组变量属引用类型,数组也能够看成是对象,数组中的每一个元素相当于该对象的成员变,因此数组分派空间后,每一个元素也被依照成员变量的规那么被隐式初始化

typevar[];或type[]var;

Java语言中声明数组时不能指定其长度(数组中元素的个数)例:

inta[5];

s2

s1

helloworld

hello

world

ppend(“IBM”).append(‘/’).append(“Sun”);

StringBuffersb2=newStringBuffer(“数字”);

for(inti=0;i<=9;i++)(i);

数字09

(8,()).insert(0,a);

数字012345

字数cba

}

}

大体数据类型包装类

包装类(如:

Integer,Double等)这些类封装了一个相应的大体数据类型值,并为其提供了一系列操作

以类为例,构造方式:

Integer(intvalue)

Integer(Strings)

常见方式

publicstaticfinalintMAX_VALUE最大的int型数(231-1)

publicstaticfinalintMIN_VALUE最小的int型数(-231)

publiclonglongValue():

返回封装数据的long型值

publicdoubledoubleValue():

返回封装数据的double型值

publicintintValue():

返回封装数据的int型值

publicstaticintparseInt(Strings)throwsNumberFormatException:

将字符串解析成int型数据,返回该数据

publicstaticIntegervalueOf(Strings)throwsNumberFormatException:

返回Integer对象,其中封装的整型数据为字符串s所表示

Math类

提供了一系列静态方式用于科学计算,其方式的参数和返回值类型一样为double型

abs:

绝对值

acos,asin,atan,cos,sin,tan

sqrt:

平方根

pow(doublea,doubleb):

a的b次幂

log:

自然对数

exp:

e为底指数

max(doublea,doubleb)

min(doublea,doubleb)

random():

返回到(不包括)的随机数

longround(doublea):

double型的数据a转换为long型(四舍五入

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

当前位置:首页 > 人文社科 > 法律资料

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

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