马士兵JAVA基础知识整理.docx

上传人:b****6 文档编号:6621744 上传时间:2023-01-08 格式:DOCX 页数:41 大小:570.89KB
下载 相关 举报
马士兵JAVA基础知识整理.docx_第1页
第1页 / 共41页
马士兵JAVA基础知识整理.docx_第2页
第2页 / 共41页
马士兵JAVA基础知识整理.docx_第3页
第3页 / 共41页
马士兵JAVA基础知识整理.docx_第4页
第4页 / 共41页
马士兵JAVA基础知识整理.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

马士兵JAVA基础知识整理.docx

《马士兵JAVA基础知识整理.docx》由会员分享,可在线阅读,更多相关《马士兵JAVA基础知识整理.docx(41页珍藏版)》请在冰豆网上搜索。

马士兵JAVA基础知识整理.docx

马士兵JAVA基础知识整理

Java语言基础知识整理

一.计算机语言的发展史及历史地位

1.第一代语言打孔机——纯机器语言

2.第二代语言汇编

3.第三代语言

(1)C、Pascal、Fortran面向过程的语言

(2)C++面向过程/面向对象

(3)java跨平台的纯面向对象的语言

(4).NET跨平台语言

4.java语言特点

(1)一种面向对象的语言

(2)一种平台无关的语言,提供程序运行的解释环境

(3)一种健壮的语言,吸收了c/c++语言的优点,但去掉了影响程序健壮性的部分(如:

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

二.Java程序运行机制及运行过程

1.java两种核心机制

(1)Java虚拟机(JavaVirtualMachine)

(2)垃圾收集机制(GarbgeCollection)

2.java运行过程

源程序(*.java文件)—>java编译器—>字节码(*.class文件)—>类装载器—>字节码校验器—>解释器—>操作系统平台

4.java虚拟机

(1)java虚拟机可以理解为是一个以字节码为机器指令的CPU。

(2)对于不同的运行平台有不同的虚拟机。

(3)Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。

5.垃圾收集机制

(1)不再使用的内存空间应回收—垃圾收集。

(2)在c/c++语言中,由程序员负责回收无用的内存空间。

(3)Java语言消除了由程序员负责回收无用的内存空间的责任,它提供了一种系统级线程跟踪存储空间的分配情况,检查并释放那些可以被释放的存储器空间。

(4)垃圾收集在java程序运行过程中自动进行,程序员无法精确进行控制和干预。

三.JavaApplication初步

1.java源文件以“java”为扩展名。

源文件的基本组成部分是类(class)。

2一个源文件最多只有一个public类,其他类的个数不限,如果源文件包括一个public类,它必须按该类名命名。

3.java应用程序的执行入口是main()方法,有固定的书写格式:

publicstaticvoidmain(String[]args){…}

4.java语言严格区分大小写。

5.java方法由一条条语句构成,每条语句已分号结束。

6.java语言有三种注释方式:

(1)//单行注释

(2)/*…..*/多行注释

(3)/**

*用于多行注释,且可以被doc工具解析

*/

四.J2SE基础语法

1.标识符:

java对各种变量、方法和类等要素命名时使用的字符序列。

(1)凡是可以自己起名字的地方都叫标识符,都要符合标识符的规则。

(2)标识符的命名规则:

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

标识符应该以字母、下划线或者美元符开头。

java标识符大小写敏感,长度无限制。

(4)java标识符选取应该“见名知意”且不可以和java关键字重复。

2.关键字:

(1)java中一些赋以特定含义,用作专门用途的字符串。

(2)所有java关键字都是英文小写字母。

(3)goto和const虽然从未用过,但是也被留作java的关键字。

abstract

defalut

if

private

this

bolean

do

implements

protected

throw

break

double

import

return

throws

byte

else

instanceof

public

try

case

extends

int

short

volatile

catch

final

interface

static

while

class

finally

package

super

void

char

float

new

switch

null

const

for

native

synchronized

transient

continue

goto

long

strictfp

4.java常量

(1)java的常量值用字符串表示,区分不同的数据类型。

整形常量、实型常量、字符常量、逻辑常量、字符串常量。

(2)区分字符常量和字符串常量

(3)“常量”这个名字还会用在其他环境中用来表示值不变的变量。

5.java变量

(1)java变量是程序中最基本的存储单元,其要素包括变量名、变量类型、作用域。

(2)java中每一个变量都属于特定的数据类型,在使用前必须对其进行申明。

(3)从本质上讲,变量其实是内存中一小块区域,使用变量名来访问这块区域,因此,每一个变量进行使用之前,必须对其进行申明,然后进行赋值,这样才可以使用。

(4)heap:

new出来的东西存放;

(5)stack:

局部变量存放在里面;

(6)datasegment:

静态常量及字符串常量;

(7)codesegment:

存放代码

6.java变量的分类

(1)按声明的位置划分:

局部变量:

方法或语句块内部定义的变量

成员变量:

方法外面、类的里面定义的变量

类外面不能有变量的声明

(2)按所属数据类型划分:

基本数据类型变量

引用数据类型变量

7java局部变量和成员变量

(1)方法体内部声明的变量(包括形参)称为局部变量。

(2)方法体内部是指与方法对应的大括号内部。

(3)在方法体外部,类体内部声明的变量是成员变量。

8.数据类型的划分

(1)基本数据类型:

整数类型(byte、int、short、long)、浮点类型(float)、字符型(char)、布尔型(boolean)

(2)引用数据类型:

类(class)、接口(interface)、数组。

9.逻辑型boolean

(1)boolean数据类型适合逻辑运算,一般用于流程的控制。

(2)boolean数据类型只允许取值为true或false,不可以用0或者非0代替true或者false.

10.字符型char

(1)char型数据用来表示通常意义上的”字符”。

(2)字符常量为用单引号括起来的单个字符。

(3)java字符采取Unicode字符编码,每个字符占据两个字节,因此可以采用十六进制编码表示。

(4)java语言还允许使用转义字符’\’来将其后的字符转化为其他的含义。

(5)2进制、8进制、16进制的转化。

11.整数类型

(1)java各整数类型有各自的字段长度和表数范围,其不受具体操作系统的影响,以保证java程序的可移植性。

(2)java语言整形常量的三种表示形式:

十进制整数;

八进制整数:

要求以0开头;

十六进制整数:

要求以0x或者0X开头

(4)java语言整形常量默认的类型为int,声明long型常量时后面需要加上”l”或者”L”;

类型

占用内存空间

表数范围

byte

1字节

-128~127

short

2字节

-2^15~2^15-1

int

4字节

-2^31~2^31-1

long

8字节

-2^63~2^63-1

12.浮点类型

(1)与整形类似,浮点类型也有各自的字段长度和表数范围,不受平台影响。

(2)java浮点类型常量有两种表示方法:

十进制形式和科学计数法形式

(3)java浮点型默认的常量类型为double,声明为float时需要后面加上”f”或者”F”;

类型

占用内存空间

表数范围

float

4字节

-3.403E38~3.403E38

double

8字节

-1.798E308~1.798E308

13.基本数据类型转化

(1)boolean类型不可以转化为其他的数据类型

(2)容量小的数据类型自动转化为容量大的数据类型。

Byte.short.char->int->long->float->double

byteshortchar三者不会相互的转化,计算时三者都先转化为int型进行计算

(3)容量大的数据类型转化为容量小的数据类型时,要加上强制类型转化符,这样可能造成精度降低或者溢出,使用时要格外注意。

(4)有多种数据库类型进行计算时,应该将所有的数据类型转化为容量最大的那种数据类型,在进行计算。

(5)实型默认为double;整形默认为int。

14.运算符

(1)算术运算符:

+-*/%++--

(2)关系运算符:

><>=<=!

=

(3)逻辑运算符:

!

|&&&||

(4)位运算符:

&!

|^>><<>>>

(5)赋值运算符:

=

(6)扩展赋值运算符:

+=-=/=*=

(7)字符串连接运算符:

+

15.赋值运算符和扩展赋值运算符:

(1)当”=”两侧数据类型不一致时,可以使用默认类型转化或者强制类型转化。

(2)可以将整形常量直接赋值给byteshortchar,可以不使用强制类型转化符,只要不超过其表数范围即可。

16.字符串连接符:

(1)两侧的操作数只要有一个是字符串类型,则会默认将另一个自动转化为字符串类型然后再进行运算。

(2)当进行打印时,无论是什么类型都会被转化为字符串类型进行打印。

17.表达式

(1)表达式是符合一定语法规则的运算符和操作数的序列。

(2)表达式的值是指对操作数进行运算得到的结果

(3)表达式的类型是指表达式结果的数据类型

(4)应该按照运算符从高到低的的优先级顺序进行运算

(5)优先级相同的应该按照事先约定的结合方向进行运算

18.三目条件运算符

(1)语法格式:

X?

Y:

Z

(2)x为boolean类型,先计算x的值,如果x的值为真,则整个表达式的值为y;反之,整个表达式的值为z

19.if语句、for语句、while语句、dowhile语句

(1)break语句:

用于终止某个语句块的结束,用于循环语句体中,可以强制退出循环。

(2)continue语句:

用于循环语句中,用于终止某次循环过程,跳过循环体中continue未执行的循环,直接进行下一次的循环。

(3)switch语句:

小心case穿透,推荐使用break语句

多个case可以合并到一起

default可以省略,但是不推荐省略

java中switch只能探测到int类型的值

20.方法

(1)java的方法类似与其他语言的函数,是一段完成特定功能的代码片段,声明格式:

[修饰符1修饰符2…]返回值类型方法名{形式参数列表}{

Java语句….

}

(2)形式参数:

在方法被调用的时候用于接收外部输入的数据。

(3)实参:

调用方法时实际传给方法的数据。

(4)返回值:

方法被调用完后返还给调用他的环境的数据。

(5)返回值类型:

事先约定返回值的数据类型,如果没有返回值,则一定要给出void。

(6)java语言中使用下述形式调用方法:

对象名.方法名(实参列表)。

(7)实参的数目、数据类型和次序必须和所调用方法的形参列表相匹配。

(8)return终止方法的执行并且指定返回数据类型。

(9)java中函数调用中传递参数时,遵循值传递原则:

基本类型传递的是数据值的本身,引用类型传递的是对对象的引用,而不是对象本身。

21.递归调用:

在方法执行过程中出现方法本身的调用。

五.面向对象的设计思想

1.从现实世界中客观存在的事物出发来构造软件系统,并在系统构造的过程中尽可能的运用人类的自然思维方式。

2.面向对象更加强调人类在日常的思维逻辑中经常采用的思想方法和原则,如抽象、分类、聚合、多态、继承等。

3.对象用计算机语言对问题域中的事物的描述,对象通过属性(attribute)和方法(method)来对应事物所具有的静态属性和动态属性。

4.类是用于描述同一类型对象的一个抽象概念,类中定义了这一类对象因具有的静态和动态属性。

5.类可以看成是一类对象的模版,对象可以看作是该类的一个具体实例。

六.类(对象)之间的关系

(1)关联关系

(2)继承关系(一般和特殊)如:

XXX是一种XXX

(3)多态关系

(4)聚合关系(整体和部分)

(5)实现关系

七.java与面向对象

(1)对象是java程序的核心,在java中“万事万物皆对象”。

(2)对象可以看作是静态属性(成员变量)和动态属性(方法)的封装体。

(3)类是用来创建同一类型对象的“模版”,在一个类中定义该类所因具有的成员变量和方法。

(4)j2sdk提供了很多类给编程人员,编程人员也可以自己定义类。

(5)成员变量=属性方法=函数

八.为什么使用对象?

1.面向对象编程—一组对象相互配合通过沟通完成特定功能。

2.对象都有对外服务的接口,通过继承可以复用。

3.对象隐藏内部服务的实现,通过聚合可以复用。

4.面向对象可以使我们达到这些年苦苦追求的境界。

5.组件—比对象更高层次上的抽象。

九.面向对象

1.java类的定义

(1)类的定义主要有成员变量和方法这两个方面。

(2)声明成员变量的格式:

[]type[=defaultValue]

如:

privateintid;privateintmoney=20;

(3)声明方法的格式:

[][]{

[]

}如:

publicintgetAge(){returnage;}

2.成员变量

(1)成员变量可以是java数据类型中任何一种数据类型(基本数据类型和引用数据类型)。

(2)在定义成员变量时可以对其进行初始化,如果对其不进行初始化,则java使用默认的初始化值。

(3)成员变量的整个范围为整个类体。

成员变量类型

byte

short

int

long

float

double

boolean

char

所有引用类型

取值

0

0

0

0L

0.0F

0.0D

false

‘\u0000’

null

3.引用

(1)java语言中除了基本的数据类型之外其余的都称之为引用类型。

(2)java中的对象是通过引用对其进行操作的。

4.如何在内存中区分类和对象?

(1)类是静态概念,在代码区。

(2)对象是new出来的,位于堆内存。

类的每个成员变量在不同的对象中都有不同的值(除静态变量),而方法只有一份,只在执行的时候占据内存。

5.对象的创建和使用

(1)必须使用new关键字创建对象。

(2)使用对象(引用).成员变量或者引用对象的成员变量。

(3)使用对象(引用).方法(参数列表)来调用对象的方法。

(4)同一类的每个对象有不同的变量存储空间。

(5)同一类的每个对象共享该类的方法。

(6)非静态方法是针对每个对象进行调用。

6.构造方法(构造函数)

(1)使用new+构造方法创建一个新的对象。

(2)构造函数是一个定义在Java类中用来初始化对象的函数。

(3)构造函数与类同名且没有返回值。

(4)创建对象时,使用构造函数初始化对象的成员变量。

(5)当没有指定构造函数时,编译器会自动给类添加形如类名(){}的构造函数。

7.约定俗成的命名规则

(1)类名的首写字母大写

(2)变量名和方法名的首写字母小写

(3)运用驼峰标识

8.方法的重载

(1)方法的重载是指在一个类中可以有相同的名字,但是参数不同的多个方法。

调用时会根据不同的参数表选择相应的方法。

9.构造方法的重载

(1)与普通方法一样,构造方法也有重载。

10.this关键字

(1)在类的方法定义中使用this关键字代表使用该方法的对象的调用。

(2)当必须指出当前使用方法的对象是谁时要使用this关键字。

(3)有时使用this关键字可以处理方法中的成员变量和参数重名的情况。

(4)this可以看作是一个变量,他的值是当前对象的引用。

11.static关键字

(1)在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说static成员变量只有一份。

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

(3)静态方法不再是针对某个对象调用,所以不能访问非静态成员。

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

12.package和import语句

(1)为便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,java引入包(package)机制,提供类的多重类命名空间。

(2)package语句作为java的第一条语句,指明该文件中类所在的包。

(若缺省该句,则为无名包)。

如:

packagepkg1[.pkg2[…]]

(3)java编译器把包对应于文件系统的目录管理,package语句中用”.”来指明包(目录)的层次。

(4)如果将一个类打包,使用该类时,需要使用该类的全名,java编译器才会找到该类.

(5)也可以使用import在文件开头引入要使用的类。

(6)可以不需要使用import语句直接引入java.lang的包中的类。

(7)如果要将一个类放入包中,在这个类原文件第一句需要写package。

(8)必须保证该类的class文件位于正确的目录下。

该类的源码可能会产生影响

删除或者转移到另外的目录

(9)另外的类想访问的话

写全名

引入*具体类名

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

(10)必须class文件的最上层包的父目录位于classpath下

(11)执行一个类需要写全包名

13.j2sdk主要包的介绍

(1)java.lang—包含java语言的一些核心类,String,Math,Integer,System,Thread,提供常用的类。

(2)java.wat—包含了构成抽象窗口工具集(abstractwindowtookits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。

(3)java.applet—包含applet运行所需要的一些类。

(4)—包含一些与网络相关操作的类。

(5)java.io—包含多种能提供输入/输出功能的类。

(6)java.util—包含实用的工具类,如定义系统特性,使用与日期日历相关的函数。

(7)打包的格式java–cvfxx.jar*.*

14.类的继承与权限控制

(1)java中使用extends关键字来实现类的继承机制,语法规则如下:

class[extends]{…}

(2)通过继承,子类自动拥有基类所有的成员(成员变量和方法)。

(3)java只支持单继承,不支持多继承。

一个子类只能有一个基类,一个基类可以派生出多个子类。

(4)java权限修饰符public,private,protected置于类的成员定义之前,用来限定其他对象对该类对象成员的访问权限。

修饰符

类内部

同一包

子类

任何地方

private

Yes

default

Yes

Yes

protected

Yes

Yes

Yes

public

Yes

Yes

Yes

Yes

(5)对于class的权限修饰只可以用public和default

public类可以在任何地方都被访问。

default只可以被同一个包中的类访问。

15.方法的重写

(1)在子类中可以根据需要对于从基类中继承来的方法进行重写。

(2)重写方法必须和被重写方法具有相同的名称,参数列表和返回值类型。

(3)重写方法不能使用比被重写方法更严格的访问权限。

16.super关键字:

在java类中使用super关键字来引用基类的成分。

17.继承中的构造方法

(1)子类的构造过程中必须调用基类的构造方法。

(2)子类可以在自己的构造方法中使用super(argu_list)来调用基类的构造方法。

使用this(argu_list)调用本类中另外的构造方法。

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

(3)如果子类的构造方法中没有显示的调用基类的构造方法,则系统默认的调用基类无参的构造方法。

(4)如果子类中既没有显示的调用基类的构造方法,而基类中又没有无参的构造方法,则编译出错。

18.Object类

(1)Object类是java中所有类的根基类。

(2)如果在类的声明中未使用extends关键字来指明其基类,则默认基类为Object类。

19.toString方法

(1)Object类中定义类publicStringtoString()方法,其返回值为String类型,描述当前的对象的有关信息。

(2)在进行String与其他数据类型的连接操作时,将自动调用该类对象的toString()方法。

(3)可以根据需要在用户自定义类型中重写toSring()方法。

20.equals()方法—Object类中定义

(1)publicBooleanequals(Objectobj)提供对象是否相等的逻辑。

(2)Object的equals方法定义为:

x.equals(y)当x和y是同一对象的应用时返回true否则返回false。

(3)j2sdk提供了一些类,如String,Date等,重写了Object类中的equals方法,调用这些类的equals方法,x.equals(y),当x和y所引用的对象是同一类的对象且属性内容相等时(并不一定是相同对象),返回true否则返回false。

(4)可以根据需要在用户自定义类型中重写equals()方法。

21.对象转型(casting)

(1)一个基类的引用类型变量可以指向其子类对象。

(2)一个基类的引用不可以访问子类对象新增加的成员(成员变量和方法)。

(3)可以使用引用变量Instanceof类名来判断该引用型变量所指向的对象是否属于该类或者该类的子类。

(4)子类的对象可以当作基类的对象来使用称作向上转型(upcasting),反之称为向下转型(downcasting)。

22.动态绑定;

在执行期间而非编译期间判断所引用对象的实际类型,根据其实际类型来调用相应的方法。

23.抽象类

(1)用abstact类来修饰一个类时,这个类叫做抽象类,用abstract来修饰一个方法时,这个方法叫做抽象方法。

(2)含有抽象方法的类必须声明为抽象类,抽象类必须被继承,抽象方法必须被重写。

(3)抽象类不能被实例化。

(4)抽象方法只需要声明,不需要实现。

24.final关键字

(1)final变量的值不可以改变:

final的成员变量和局部变量(形参)。

(2)final方法不能被重写。

(3)final类不可以被继承。

25.接口

(1)接口(interface)是抽象方法和常量值的定义的集合。

(2)从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含方法和常

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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