JAVA初级知识点大总结

JAVA初级知识点大总结
JAVA初级知识点大总结

第一章Java编程环境

1、什么是java,java的诞生?

Java是一种革命性的程序设计语言,用它编写的程序可以在不同类型的计算机上运行。用java语言可以编写applet小程序,可以将这些小程序嵌入到网页中,也可以编写大型应用程序,编写GUI实用程序,编写网络应用程序。

Java的诞生,1941年java的创始人是SUN MicroSystem公司的Jame Gosling、Bill joe等人创始的,真正形成是在1942年。

2、java的语言特点

简单性、面向对象、分布式、解释执行、健壮、安全、体系结构中立、可移植、高性能、多线程、动态性。

3、java程序

用Java可以编写两类程序:一类是嵌入到网页的程序,叫做java applet(java小程序),另一类是通常的对立应用程序,叫做java application(java应用程序)。Java应用程序进一步细分为:一时控制台应用程序(concole application)。它仅支持将字符输出到计算机的屏幕;另一个是窗口式应用程序(windowed application),它能建立和管理多个窗口。

4、java三大平台

J2SE:针对普通pc应用,是java的基础,另外两个领域都以这个为基础,可实现基于操作系统的应用程序。

J2EE:java2企业版,是一套面向企业应用的体系结构,适用于开发分布式、多层式,以组件为基础,为WEB为基础的应用程序。

J2ME:java版本中最小的一个,目的是作为小型数字设备上开发及部署的应用平台,针对嵌入式设备的,如:手机、股票机等。

5、java环境

Java平台由两部分组成:一是用于实现软件的假想计算机,叫做java虚拟机(JVM);另一个叫做java应用程序编程接口(java API),它是一个软件组件的集合。

Java编译器:将java源代码转换成由字节代码组成的二进制程序,这些字节码是虚拟机的机器指令。Java解释器:检查并解释该程序的源代码,以确定该字节码的未曾被篡改过。并可以顺利执行,然后在执行字节代码在虚拟机内规定的动作。

Java字节代码执行的两种方式:一是interpreter解释方式;二是

just-initiative-time即时编译。

6、java程序设计环境

一、JDK、JRE的介绍

JDK是java的核心,包括java的运行环境,一堆java工具和java基础的类库(rt.jar)。它也包含JRE,但是不是系统内部公共的。JRE跟java虚拟机一个概念,它包括java虚拟机、java平台核心类和支持文件,不包含开发工具—编译器、调试器和其他工具。

二、Java SDK的安装

配置Java运行环境(假设将java安装到E盘的根目录下)

1)、先安装java JDK,一般系统会默认的安装路径是:c:\program file\java。注意:在安装JDK的时候文件夹的命名不支持有空格、标点。

2)、设置环境变量

右击“我的电脑”?“属性”?“高级”?“环境变量”在“系统变量”或“用户变量”中编辑path,在变量值中加入“;E:\j2sdk1.4.2_01\bin”,新建变量名“classpath”,变量值是“.;E:\j2sdk1.4.2_01\bin”,新建变量名“JAVA-HOME”,变量值为“E:\j2sdk1.4.2_01”。说明:(1)path是让Java程序设计者在任何目录下都可以运行bin目录下的工具文件,如:javac.exe,java.exe,javap.exe和javadoc.ex;

(2)classpath是让Java虚拟机找到所需要的类库;

(3)“E:\j2sdk1.4.2_01”与本人安装Java的具体目录而改变;

7、java程序的执行

<1>Java程序的编译

在DOS窗口中输入:Javac Hello.java

功能:将文本文件Hello.java编译成可执行的Hello.class字节码文件

<2>运行Java程序

在DOS窗口中输入:Java Hello[.class]

第二章java程序的基本结构

1、一个简单的java小程序的说明

public class HelloWorldApp{

public static void main(String[]args){

System.out,println(“hello world!”);

}

}

1).关键字public是类的访问修饰符,class是用来创建类的

2).main()方法有且只有一个,且严格按照格式定义;

3).String args[]是传递给main()方法的参数,名为args,它是类string的一个实例,参数

可以没有,可以一个或多个,每个参数用“类名参数”来指定,多个参数间用逗号分隔;

4).Java区分大小写;

5).一定以公共类名相同的主文件名Hello.java存盘,且大小写一致;

2、Java语言中的注释

(1)//注释一行

以“//”开始,终止于行尾,一般作单行注释,可放在语句的后面

(2)/*……*/一行或多行注释

以“/*”开始,最后以“*/”结束,中间可写多行。

(3)/**……*/

以“/**”开始,最后以“*/”结束,中间可写多行。这种注释主要是为支持JDK工具javadoc而采用的。

3、数据类型

一、Java要求在程序中使用任何变量之前必须先声明其类型。

Java的数据类型分为:

1>基本类型:整型、浮点型、布尔型、字符型

2>数组类型:一维数组和多维数组

3>复合类型:类、接口

二、基本数据类型

类型位长/b默认值取值范围

布尔型(boolean)1false true false

字节型(byte)80-128~127

字符型(char)16‘\u0000’‘\u0000’~’\uffff’即0~65535

短整型(short)160-32768~32767

整型(int)320-231~231-1

长整型(long)640-263~263-1

单精度(float)320.0+-1.4E-45或+-3.4028235E+38

双精度(double)640.0+-4.9E-324或+-1.797693134862315E+308

说明:

(1)一般情况下,没小数点的数字是int型,有小数点的数是double型;

(2)String(字符串)型,如:“合肥”、“I am student”;

(3)Java的char类型采用UniCode(国际编码标准)的新字符处理方式,即大字符编码方案,汉字和字母均看作是一个字符,占两个字节;

(4)Java程序是定义的变量若没有赋初值,Java取默认值。

4、变量与常量

常量和变量是java语言中的基本元素。常量一般用于表示一个,而变量则是程序中的基本存储单位。

一、变量

Java通常用小写字母或单词作为变量名。变量具有名字、类型、值三元素

1.变量的声明

格式:类型变量名[,变量名]=初值,…;

赋值:[类型]变量名=值

如:int a=5,b=6,c,d;

说明:

(1)变量名必须在作用域中是唯一的,不同作用域中才允许相同名字的变量出现;

(2)只要在同一代码块没有同名的变量名,可以在程序中任何地方定义变量,一个代码块就是两个相对的“{}”之间部分。

2.变量的使用范围

每个变量的使用范围只在定义它的代码块中,包括这个代码块中包含的代码块。

在类开始处声明的变量是成员变量,作用范围在整个类;

在方法和块中声明的变量是局部变量,作用范围到它的“}”;

3.变量类型的转换

Java可以将低精度的数字赋值给高精度的数字型变量,反之则需要强制类型转换。

强制转换格式:(数据类型)数据表达式

字节型短整型字符型整型长整型单精度实型双精度实型

转化规律:由低到高

二、常量

Java中的常量值是用文字串表示的,它区分为不同的类型,如整型常量123,实型常1.23,字符常量‘a’,布尔常量true、false以及字符串常量“This is a constant string”。

Java的常量用final说明,约定常量名一般全部使用大写字母,如果是多个单词组合在一起的,单词之间用下划线连接,常量在程序执行时不可更改。

如:final int i=1;

i=i+1;//错,i是final(常量),不可更改值

例如:final double IP= 3.14159D

说明:默认类型为64位double双精度类型(D或d),数字后面加F或f则是32位float单精度(实数)类型

5、运算符

一、赋值运算符

赋值运算符用于把一个数赋予一个变量。赋值运算符两边的类型不一致时,那么如果左侧的数据类型的级别高,则右边的数据将转换成左边的数据类型在赋予左边的变量,否则需要强制类型转换。

赋值运算符包括=、+=、-=、*=、%=、/=等。

二、算术运算符

算数运算符用于对整型数或者浮点数进行运算,java语言中的算术运算符包括二元运算符和一元运算符。所谓的几元运算符即参加运算的操作数的个数。

1)二元运算符

Java的二元运算符有+(加)、-(减)、*(乘)、/(除)、%(取余数)。

2)一元运算符

Java的一元运算符有++(自加)、--(自减)

三、关系运算符

关系运算符用来比较两个值,返回布尔类型的值true或false。

等于不等于小于小于等于大于等于大于

==!=<<=>=>

四、条件运算符

条件运算符的作用是根据表达式的真假决定变量的值。

1>格式:条件表达式?表达式2:表达式3

2>功能:条件表达式为true,取“表达式2”值,为false,取“表达式3”的值

例:int a=0x10,b=010,max;

max=a>b?a:b;

System.out.println(max);//输出16

五、逻辑运算符

第三章java程序的控制语句

1、java控制语句的分类

1)分支语句:if-el—else、switch

2)循环语句:while、do—while、for

2、条件语句

一、if语句

格式:if(条件表达式)

语句

功能:条件表达式为true就执行语句,如果要执行的语句不只是一条是要用大括号将这些语句括起来,而这些语句叫做语句块。

二、if……else语句

格式:if(条件表达式)

语句1

else

语句2

功能:条件表达式为true就执行语句1,为false执行语句2

三、if……else复合结构

格式:if(条件表达式1)语句1

else if(条件表达式2)语句2

…………

else if(条件表达式n)语句n

else语句n+1

功能:如果某个条件表达式的值为true,就执行它后面的语句,其余部分被忽略,若条件表达式都为假,执行else后语句。

3、循环语句

while循环、do—while循环、for循环

一、while循环语句

格式:while(条件表达式)

循环语句块

功能:先计算条件表达式,为true,则执行循环语句块,为false则跳出循环。

二、do…while循环语句

格式:do{循环体}

while(条件表达式);

注意:while后面的“;”

三、for循环语句

格式:for(赋初值;判断条件;循环控制变量增减方式)

{语句块}

功能:(1)第一次进入for循环时,对循环控制变量赋初值;

(2)根据判断条件检查是否要继续执行循环。为真执行循环体内语句块,为假则结束循环;

(3)执行完循环体内语句后,系统根据“循环控制变量增减方式”改变控制变量值,再回(3)到步骤(2)根据判断条件检查是否要继续执行循环。

4、中断控制语句

Java支持3种跳转语句:break,continue,return

一、break语句

格式:break;

功能:(1)退出switch结构;

(2)退出当前一层循环。

带标号的break语句

格式:标识符://标识符应在break前面

……

break标识符;

功能:直接跳转到标识符处,可以退出多重循环;

二、continue语句

格式:continue;

功能:只有用在循环结构中,跳过循环体中尚未执行的语句,重新开始下一轮循环。从循环体第一个语句开始执行。

带标号的continue语句

格式:标识符:

……

continue标识符;

功能:用标号标出想跳到的语句,继续重复执行程序。

说明:“break标识符;”是结束循环;“continue标识符;”是继续循环。

三、return语句

格式:return[表达式];

功能:返回调用的语句,执行它的下一条语句,可以带参数返回。

说明:当方法用void声明时,说明不需要返回值(即返回类型为空),使用不带参数return 语句。不带参数return语句可以省略。

5、多分支选择语句

格式:switch(表达式){

case常量1:[语句块1;][break;]

…………

case常量n:[语句块n;][break;]

[default:语句块n+1;]

}

功能:先计算switch表达式,再与每个case常量表达式值相比较,若相同,则执行相应语句被执行。若都不同,则执行default语句n+1(若有的话)

说明:

1.switch后表达式必须是整型,字符型;

2.每个case的常量必须不同;

3.若没有break,程序将继续执行下一个case语句;

4.default位置可任意,但要注意break

第四章java字符串操作与位运算

1、数制及数制的转换

一、数制

数制是人们利用符号进行计数的科学方法。数制有很多种,在计算机中常用的数制有:十进制,二进制和十六进制。

数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。计算机是信息处理的工具,任何信息必须转换成二进制形式数据后才能由计算机进行处理,存储和传输。编辑本段

1)十进制数(Decimal)

人们通常使用的是十进制。它的特点有两个:有0,1,2….9十个基本数字组成,十进制数运算是按“逢十进一”的规则进行的.

在计算机中,除了十进制数外,经常使用的数制还有二进制数和十六进制数.在运算中它们分别遵循的是逢二进一和逢十六进一的法则.

编辑本段

2)二进制数(Binary)

二进制数有两个特点:它由两个基本数字0,1组成,二进制数运算规律是逢二进一。

为区别于其它进制数,二进制数的书写通常在数的右下方注上基数2,或加后面加B表示。

例如:二进制数10110011可以写成(10110011)2,或写成10110011B,对于十进制数可以不加注.计算机中的数据均采用二进制数表示,这是因为二进制数具有以下特点:

(1)二进制数中只有两个字符0和1,表示具有两个不同稳定状态的元器件。例如,电路中有,无电流,有电流用1表示,无电流用0表示。类似的还比如电路中电压的高,低,晶体管的导通和截止等。

(2)二进制数运算简单,大大简化了计算中运算部件的结构。

二进制数的加法和乘法运算如下:

0+0=00+1=1+0=11+1=10

0×0=00×1=1×0=01×1=1

3)八进制数(Octal)

由于二进制数据的基R较小,所以二进制数据的书写和阅读不方便,为此,在小型机中引入了八进制。八进制的基R=8=2^3,有数码0、1、2、3、4、5、6、7,并且每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。八进制用下标8或数据后面加Q 表示例如:二进制数据(11101010.010110100)2对应八进制数据(352.

264)8或352.264Q.

4)十六进制数(Hex)

由于二进制数在使用中位数太长,不容易记忆,所以又提出了十六进制数

十六进制数有两个基本特点:它由十六个字符0~9以及A,B,C,D,E,F组成(它们分别表示十进制数10~15),十六进制数运算规律是逢十六进一,即基R=16=2^4,通常在表示时用尾部标志H或下标16以示区别。

例如:十六进制数4AC8可写成(4AC8)16,或写成4AC8H。

二、数制转换

1)十---->二

比如:6,如果将它转换成二进制数呢?

10进制数转换成二进制数,这是一个连续除2的过程:

把要转换的数,除以2,得到商和余数,

将商继续除以2,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。

听起来有些糊涂?我们结合例子来说明。比如要转换6为二进制数。

“把要转换的数,除以2,得到商和余数”。

那么:

十转二示意图

要转换的数是6,6÷2,得到商是3,余数是0。

“将商继续除以2,直到商为0……”

现在商是3,还不是0,所以继续除以2。

那就:3÷2,得到商是1,余数是1。

“将商继续除以2,直到商为0……”

现在商是1,还不是0,所以继续除以2。

那就:1÷2,得到商是0,余数是1

“将商继续除以2,直到商为0……最后将所有余数倒序排列”

好极!现在商已经是0。

我们三次计算依次得到余数分别是:0、1、1,将所有余数倒序排列,那就是:110了!

6转换成二进制,结果是110。

把上面的一段改成用表格来表示,则为:

被除数计算过程商余数

66/230

33/211

11/201

(在计算机中,÷用/来表示)

2)二---->十

二进制数转换为十进制数

二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……

所以,设有一个二进制数:01100100,转换为10进制为:

下面是竖式:

01100100换算成十进制

备注:"^"为次方

第0位0*2^0=0

第1位0*2^1=0

第2位1*2^2=4

第3位0*2^3=0

第4位0*2^4=0

第5位1*2^5=32

第6位1*2^6=64

第7位0*2^7=0+

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

100

0乘以多少都是0,所以我们也可以直接跳过值为0的位

3.十---->八

10进制数转换成8进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成8。

来看一个例子,如何将十进制数120转换成八进制数。

用表格表示:

被除数计算过程商余数

120120/8150

1515/817

11/801

120转换为8进制,结果为:170。

4)八---->十

八进制就是逢8进1。

八进制数采用0~7这八数来表达一个数。

八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……

所以,设有一个八进制数:1507,转换为十进制为:

用竖式表示:

1507换算成十进制。

第0位7*8^0=7

第1位0*8^1=0

第2位5*8^2=320

第3位1*8^3=512

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

839

同样,我们也可以用横式直接计算:

7*8^0+0*8^1+5*8^2+1*8^3=839

结果是,八进制数1507转换成十进制数为839

5)十---->十六

10进制数转换成16进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成16。

同样是120,转换成16进制则为:

被除数计算过程商余数

120120/1678

77/1607

120转换为16进制,结果为:78。

6)十六---->十

16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。字母不区分大小写。

十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……

所以,在第N(N从0开始)位上,如果是是数X(X大于等于0,并且X小于等于15,即:F)表示的大小为X*16的N次方。

假设有一个十六进数2AF5,那么如何换算成10进制呢?

用竖式计算:

2AF5换算成10进制:

第0位:5*16^0=5

第1位:F*16^1=240

第2位:A*16^2=2560

第3位:2*16^3=8192+

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

10997

(别忘了,在上面的计算中,A表示10,而F表示15)

现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。

假设有人问你,十进数1234为什么是一千二百三十四?你尽可以给他这么一个算式:1234=1*10^3+2*10^2+3*10^1+4*10^0

7)二---->八

(11001.101)(二)

整数部分:从后往前每三位一组,缺位处用0填补,然后按十进制方法进行转化,则有:

001=1

011=3

然后我们将结果按从下往上的顺序书写就是:31,那么这个31就是二进制11001的八进制形式

小数部分:从前往后每三位一组,缺位处用0填补,然后按十进制方法进行转化,则有:

101=5

然后我们将结果部分按从上往下的顺序书写就是:5,那么这个5就是二进制0.101的八进制形式

所以:(11001.101)(二)=(31.5)(八)

8)八---->二

(31.5)(八)

整数部分:从后往前每一位按十进制转化方式转化为三位二进制数,缺位处用0补充则有:

1---->1---->001

3---->11

然后我们将结果按从下往上的顺序书写就是:11001,那么这个11001就是八进制31的二进制形式

说明,关于十进制的转化方式我这里就不再说了,上一篇文章我已经讲解了!

小数部分:从前往后每一位按十进制转化方式转化为三位二进制数,缺位处用0补充则有:

5---->101

然后我们将结果按从下往上的顺序书写就是:101,那么这个101就是八进制5的二进制形式

所以:(31.5)(八)=(11001.101)(二)

9)十六---->二;二---->十六

二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算,每个C,C++程序员都能做到看见二进制数,直接就能转换为十六进制数,反之亦然。

我们也一样,只要学完这一小节,就能做到。

首先我们来看一个二进制数:1111,它是多少呢?

你可能还要这样计算:1*2^0+1*2^1+1*2^2+1*2^3=1*1+1*2+1 *4+1*8=15。

然而,由于1111才4位,所以我们必须直接记住它每一位的权值,并且是从高位往低位记,:8、4、2、1。即,最高位的权值为2^3=8,然后依次是2^2=4,2^1=2,2^0=1。

记住8421,对于任意一个4位的二进制数,我们都可以很快算出它对应的10进制值。

下面列出四位二进制数xxxx所有可能的值(中间略过部分)

仅4位的2进制数快速计算方法十进制值十六进值

1111=8+4+2+1=15F

1110=8+4+2+0=14E

1101=8+4+0+1=13D

1100=8+4+0+0=12C

1011=8+0+2+1=11B

1010=8+0+2+0=10A

1001=8+0+0+1=99

....

0001=0+0+0+1=11

0000=0+0+0+0=00

二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。

如(上行为二制数,下面为对应的十六进制):

11111101,10100101,10011011

F D,A5,9B

反过来,当我们看到FD时,如何迅速将它转换为二进制数呢?

先转换F:

看到F,我们需知道它是15(可能你还不熟悉A~F这五个数),然后15如何用8421凑呢?应该是8+4+2+1,所以四位全为1:1111。

接着转换D:

看到D,知道它是13,13如何用8421凑呢?应该是:8+4+1,即:1101。

所以,FD转换为二进制数,为:11111011

由于十六进制转换成二进制相当直接,所以,我们需要将一个十进制数转换成2进制数时,也可以先转换成16进制,然后再转换成2进制。

比如,十进制数1234转换成二制数,如果要一直除以2,直接得到2进制数,需要计算较多次数。所以我们可以先除以16,得到16进制数:

被除数计算过程商余数

12341234/16772

7777/16413(D)

44/1604

结果16进制为:0x4D2

然后我们可直接写出0x4D2的二进制形式:010*********。

其中对映关系为:

0100--4

1101--D

0010--2

同样,如果一个二进制数很长,我们需要将它转换成10进制数时,除了前面学过的方法是,我们还可以先将这个二进制转换成16进制,然后再转换为10进制。

下面举例一个int类型的二进制数:

01101101111001011010111100011011

我们按四位一组转换为16进制:6D E5AF1B

2、补码

所有的整数类型(除了char类型之外)都是有符号的整数。这意味着他们既能表示正数,又能表示负数。Java使用补码来表示二进制数,在补码表示中,最高位为符号位,正数的符号位为0,负数为1。补码的规定如下:

对正数来说,最高位为0,其余各位代表数值本身(以二进制表示),如+42的补码为00101010。

对负数而言,把该数绝对值的补码按位取反,然后对整个数加1,即得该数的补码。如-42的补码为11010110(00101010按位取反11010101+1=11010110)

用补码来表示数,0的补码是唯一的,都为00000000。(而在原码,反码表示中,+0和-0的表示是不唯一的,可参见相应的书籍)。而且可以用111111表示-1的补码(这也是补码与原码和反码的区别)。

先把负数写为其补码形式(在此不议),然后再根据二进制转换其它进制的方法进行。

如-12的补码

第一步:转换成二进制

1000000000001100

第二步:补码,取反加一

注意:取反时符号位不变!

1111111111110100

3、位运算符

位运算符用来对二进制位进行操作,Java中提供了如下所示的位运算符:

位运算符(>>,<<,>>>,&,|,^,~),位运算符中,除~以外,其余均为二元运算符。操作数只能为整型和字符型数据。

Java位运算符

Java定义的位运算(bitwise operators)直接对整数类型的位进行操作,这些整数类型包括long,int,hort,char,and byte。表4-2列出了位运算:

运算符结果

~按位非(NOT)(一元运算)

&按位与(AND)

|按位或(OR)

^按位异或(XOR)

>>右移

>>>右移,左边空出的位以0填充;无符号右移

<<左移

&=按位与赋值

|=按位或赋值

^=按位异或赋值

>>=右移赋值

>>>=右移赋值,左边空出的位以0填充;无符号左移

<<=左移赋值

按位非(NOT)

按位非也叫做补,一元运算符NOT“~”是对其运算数的每一位取反。例如,数字42,它的二进制代码为:00101010

经过按位非运算成为11010101

按位与(AND)

按位与运算符“&”,如果两个运算数都是1,则结果为1。其他情况下,结果均为零。看下面的例子:0010101042&0000111115

0000101010

按位或(OR)

按位或运算符“|”,任何一个运算数为1,则结果为1。如下面的例子所示:0010101042|0000111115

0010111147

按位异或(XOR)

按位异或运算符“^”,只有在两个比较的位不同时其结果是1。否则,结果是零。下面的例子显示了“^”运算符的效果。这个例子也表明了XOR运算符的一个有用的属性。注

4、数组

数组是有序数据的集合,数组中的每个元素具有相同的数组名,根据数组名和下标来唯一确定数组中的元素。使用时要先声明后创建

一、一位数组

1)一维数组的声明

格式:数据类型数组名[]或数据类型[]数组名

例:int a[];String s[];char[]c;

说明:定义数组,并不为数据元素分配内存,因此“[]”中不用指出数组中元素个数。

2)一维数组的创建与赋值

创建数组并不是定义数组,而是在数组定义后,为数组分配存储空间,同时对数组元素进行初始化

(1)用运算符new分配内存再赋值

格式:数组名=new数据类型[size]

例:int a[];

a=new int[3];//产生a[0],a[1],a[2]三个元素

a[0]=8;a[1]=8;a[2]=8;

3)直接赋初值并定义数组的大小

例:int i[]={4,5,010,7,3,2,9};

String names[]={“张三”,”李四”,”王五”,”宋七”};

4)测试数组长度(补充)

格式:数组名.length

char c[]={‘a’,’b’,’c’,’北’,’京’};

System.out.print(c.length);//输出5

二、多维数组

以二维数组为例

例:int d[][];//定义一个二维数组

d=new int[3][4];//分配3行4列数组内存

int a[][]=new int[2][];

a[0]=new int[3];//第二维第一个元素指向3个整型数

a[1]=new int[5];//第二维第一个元素指向5个整型数

注意:Java可以第二维不等长

int i[][]={{0},{1,4,5},{75,6},{8,50,4,7}};//定义和赋初值在一起

下面数组定义正吴的判断

int a[][]=new int[10,10]//错

int a[10][10]=new int[][]//错

int a[][]=new int[10][10]//错

int[]a[]=new int[10][10]//对

int[][]a=new int[10][10]//对

注意:java中二维数组分配空间是第二维可以为空,但是第一维必须分配内存。

5、字符串

字符串的几种用法:

拼接直接用“+”把两个字符串拼接起来

例如:String firstName=“li”;

String secondName=“ming”;

String fullName=firstName+secondName;

检测字符串是否相等检测两个字符串内容是否相等时使用“equals”;比较两个字符串

的引用是否相等时用“==”

得到字符串的长度字符串变量名.length();

第五章类的构建和对象的使用

1、面向对象简介

1)对象:对象包括对象特征(行为)和对象属性

2)面向对象的步骤:

<1>写类找类(系统提供或是第三方软件)

<2>用类创建对象

<3>把对象组合成一个更大的对象,从而形成一个系统

<4>通过对象之间的消息传递来完成任务

3)面向对象的思想:将客观事物看作具有状态和行为的对象,通过抽象找出同一类对象的共同状态和行为构成一个类

4)面向对象的特点:继承性、封装性、多态性

继承性:支持继承通过接口实现多继承

封装性:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装

的对象,这些对象通过一个受保护的接口访问其他对象。

多态性:从另一个角度将接口从具体的实施细节中分离出来

2、java中的类

类是java的核心和本质,用java编写的任何东西都在类中,java就是很多类的组合。

类类之间的3种关系:依赖关系(uses-a)、聚集关系(has-a)、继承关系(is-a)

1)类的定义:用class来创建类

格式:[修饰符]<类名>[extends父类][implements接口]

{类体(成员变量和成员方法)}

修饰符:指明类在使用时所受到的限制,包括类访问权限[public]和其他特性

[abstract],[final]

说明:

<1>class<类名>告诉编译器这是一个类

<2>Public(公共的)

在没有任何修饰符的默认情况下,类只能被同一个源程序文件或同一个包中的其他类使用,加上public后,该类可以被任何包中的类使用,称为公共类。

注意:

在同一个源程序文件中不能出现两个及以上的public类,否则编译器会告诉你将第二个public类放在另一个文件中。

2)对象的声明与创建

类的对象的模板,Java运行应该是用类创建实例化对象。一旦任务完成,对象就会被垃圾收集器收回,完成它从创建、使用到清除。

<1>创建对象与构造方法

创建对象格式:类名对象名=new类名([参数]);

说明:(1)运算符new为对象分配内存空间;

(2)生成对象的最后一步是执行构造方法;

(3)创建对象相当于定义一个变量,即分两步进行。

创建对象分成两步:类名对象名;

对象名=new类名([参数]);

<2>对象初始化的说明

(1)系统如何对变量初始化

当用new创建了一个对象时,系统会为对象中的变量进行初始化。即不但为变量分配相应的存储单元,还设置相应初值。系统为byte,short,int,long类型设置初值为0;float类型变量初值为0.0f;double类型变量初值为0.0;char字符型变量为’u\0000’;boolean逻辑变量初值为false;引用类型初值勤为null。

(2)构造方法的作用与构成

new操作符为对象分配内存后将调用类的构造方法确定对象的初始状态,初始化所有变量。构造方法功能:创建对象时,用给定的值,将对象初始化

史上最全Java基础知识点归纳

史上最全Java基础知识点归纳 写这篇文章的目的是想总结一下自己这么多年来使用Java的一些心得体会,主要是和一些Java基础知识点相关的,所以也希望能分享给刚刚入门的Java 程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE 相关的、和Java中各个框架相关的内容。 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。 1.JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资

深开发者来说,不会JVM几乎是不可接受的。 JVM作为Java运行的基础,很难相信对于JVM一点都不了解的人可以把Java语言吃得很透。我在面试有超过3年Java经验的开发者的时候,JVM几乎就是一个必问的问题了。当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证Java开发能力的高低。 在JVM这个大类中,我认为需要掌握的知识有: JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump,分析内存结构 class二进制字节码结构,class loader体系,class加载过程,实例创建过程 方法执行过程 Java各个大版本更新提供的新特性(需要简单了解) 2.Java的运行(基础必备) 这条可能出看很简单,Java程序的运行谁不会呢?不过很多时候,我们只是单纯通过IDE去执行Java程序,底层IDE又是如何执行Java程序呢?很多人并不了解。

java知识点总结

https://www.360docs.net/doc/428698601.html,ng.Object 类,是所有类的根父类! 2.Object类仅有一个空参的构造器public Object(){ } 3.关于方法: ①equals(Object obj) public boolean equals(Object obj) { return (this == obj); } // == // 1.基本数据类型:根据基本数据类型的值判断是否相等。相等返回true,反之返回false // 注:两端数据类型可以不同,在不同的情况下,也可以返回true。 // 2.引用数据类型:比较引用类型变量的地址值是否相等。 //equals(): >①只能处理引用类型变量②在Object类,发现equals()仍然比较的两个引用变量的地址值是否相等 >像String 包装类File类Date类这些重写Object类的equals()方法,比较是两个对象的 //"实体内容"是否完全相同。 >若我们自定义一个类,希望比较两个对象的属性值都相同的情况下返回true的话,就需要重写Object类的 equals(Object obj)方法 ②toString()方法

当我们输出一个对象的引用时,会调用toString()方法。 1.public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 当我们没有重写Object类的toString()方法时,打印的就是对象所在的类,以及对象实体在堆空间的位置 2.一般我们需要重写Object类的toString()方法,将此对象的各个属性值返回。 3.像String类、Date、File类、包装类都重写了toString()方法。 1. String类:不可变的字符序列(如:String str = "atguigu"; str += "javaEE") 1.关注于String常用的方法! 2.String类与基本数据类型、包装类;与字符数组、字节数组; * 1.字符串与基本数据类型、包装类之间转换 * ①字符串--->基本数据类型、包装类:调用相应的包装类的parseXxx(String str); * ①基本数据类型、包装类--->字符串:调用字符串的重载的valueOf()方法 *

java基础知识点总结

Created by AIwen on 2017/5/14. java是面向对象的程序设计语言;类可被认为是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都是引用变量,它们将会引用到类的对象。类用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在,java程序使用类的构造器来创建该类的对象。 java也支持面向对象的三大特征:封装、继承、和多态。java提供了private、protected、和public三个访问控制修饰符来实现良好的封装,提供了extends关键字让子类继承父类,子类继承父类就可以继承到父类的成员变量和和方法,如果访问控制允许,子类实例可以直接调用父类里定义的方法。继承是实现类复用的重要手段。使用继承关系来实现复用时,子类对象可以直接赋给父类变量,这个变量具有多态性。 面向对象的程序设计过程中有两个重要的概念:类(Class)和对象(object,也被称为实例,instance)。类可以包含三种最常见的成员:构造器、成员变量、和方法。 构造器用于构造该类的实例,java语言通过new关键字类调用构造器,从而返回该类的实例。构造器是一个类创建对象的根本途径,如果一个类没有构造器,这个类通常无法创建实例。因此java语言提供了一个功能:如果程序员没有为一个类编写构造器,则系统会为该类提供一个默认的构造器,这个构造器总是没有参数的。一旦程序员为一个类提供了构造器,系统将不再为该类提供构造器。 构造器用于对类实例进行初始化操作,构造器支持重载,如果多个重载的构造器里包含了相同的初始化代码,则可以把这些初始化代码放置在普通初始化块里完成,初始化块总在构造器执行之前被调用。静态初始化块代码用于初始化类,在类初始化阶段被执行。如果继承树里某一个类需要被初始化时,系统将会同时初始化该类的所有父类。 构造器修饰符:可以是public、protected、private其中之一,或者省略构造器名:构造器名必须和类名相同。 注意:构造器既不能定义返回值类型,也不能使用void声明构造器没有返回值。如果为构造器定义了返回值类型,或使用void声明构造器没有返回值,编译时不会出错,但java会把这个所谓的构造器当成方法来处理——它就不再是构造器。 实际上类的构造器是有返回值的,当使用new关键字来调用构造器时,构造器返回该类的实例,可以把这个类的实例当成构造器的返回值。因此构造器的返回值类型总是当前类,无须定义返回值类型。不要在构造器里显式的使用return来返回当前类的对象,因为构造器的返回值是隐式的。 java类名必须是由一个或多个有意义的单词连缀而成的,每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分隔符。 成员变量: 成员变量的修饰符:public、protected、private、static、final前三个只能出现一个再和后面的修饰符组合起来修饰成员变量,也可省略。 成员变量:由一个或者多个有意义的单词连缀而成,第一个单词首字母小写,后面每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分隔符。 类型:可以是java语言允许的任何数据类型,包括基本类型和引用类型。 成员方法: 方法修饰符:public、protected、private、static、final、abstract,前三个只能出现一个,static和final最多只能出现其中的一个,和abstract组合起来使用。也可省略。 返回值类型:可以是java语言的允许的任何数据类型,包括基本类型和引用类型。 方法名:和成员变量的方法命名规则相同,通常建议方法名以英文动词开头。 方法体里多条可执行语句之间有严格的执行顺序,排在方法体前面的语句总先执行,排在方法体后面的语句总是后执行。 static是一个特殊的关键字,它可用于修饰方法、成员变量等成员。static修饰的成员表明它属于这个类本身,而

《Java编程基础知识点汇总及习题集》--答案

目录 第一章 Java入门 (2) 第二章 Java基础 (5) 第三章条件转移 (16) 第四章循环语句 (22) 第五章方法 (28) 第六章数组 (35) 第七章面向对象 (44) 第八章异常 (65)

第一章Java入门 知识点汇总 1、JAVA 三大体系 ?Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个平台中最核心 的部分,包含Java最核心的类库。 ?JavaEE:(J2EE,Java 2 Platform, Enterprise Edition,企业版),开发、装 配、部署企业级应用,包含Servlet、JSP、 JavaBean、JDBC、EJB、Web Service等。 ?Java ME:(J2ME,Java 2 Platform Micro Edition,微型版),用于小型电子设备 上的软件开发。 2、JDK,JRE,JVM的作用及关系 作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 ?path环境变量:存放可执行文件的存 放路径,路径之间用逗号隔开 ?classpath环境变量:类的运行路径, JVM在运行时通过classpath加载需要 的类 4、重点掌握两个程序 ?javac.exe:Java编译器工具,可以将编 写好的Java文件(.java)编译成Java 字节码文件(.class); ?java.exe:Java运行工具,启动Java虚 拟机进程,运行编译器生成的字节码 文件(.class) 5、一切程序运行的入口 public static void main(String args []){ System.out.println(“Hello World!”); } 课堂笔记

java面向对象知识点总结

j a v a面向对象知识点总 结 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

1 类和对象 类: 类是用来描述一类事物的共性内容的, 类是抽象的; 创建类,如何描述 属性功能 用变量来描述属性 用方法来描述功能 对象: 就是现实中具体的事物,对象是具体的; 创建对象 类名对象名 = new 类名(); 如何通过对象访问类中属性和方法呢 对象名.变量名 对象名.方法名(); 只要是new的对象,就是新创建的,就会在内存中开辟一段单独的空间匿名对象 创建的对象没有赋值给具体的变量; 所以给匿名对象的属性赋值是没有任何意义的; 匿名对象使用场景

1 调用方法 2 作为参数传递 3 添加进容器中 This 关键字 This. 类中的普通方法访问到的成员前边都有this.这个关键字This. 就代表当前对象, 普通方法, 创建对象调方法, 谁调用就代表谁 This(); 可以用来在构造函数中调用本类与之相对应的构造函数使用注意事项: 1 this() 只能是构造函数的第一条执行语句 2 this() 不能在构造函数之间相互调用 3 this() 不能调用自己 构造函数(方法) 构造函数的作用 用来给对象进行初始话的(初始化就是指给对象的各个属性赋值) 构造函数何时执行 对象一创建就会调用与之相对应的构造函数

构造函数语法 修饰符没有返回值类型类名(参数列表){ 具体执行的代码 } 构造函数自动添加 当一个类中我们没有明确指定构造函数的话,jvm会自动帮我们添加一个空参数的构造, 如果我们指定了,就不添加了 构造函数和普通函数的区别 执行时机不同 对象一创建就会调用与之相对应的构造函数 普通函数只有被调用才会执行 return 1 就是用来在方法中返回具体结果(结果类型必须和方法的返回值类型一致) 2 即便方法的返回值类型是void,方法中也可以出现 return; 3 构造函数中也可以有return关键字 成员变量和局部变量 1 作用范围不同, 成员变量是定义在类中的,在整个类中都起作用 局部变量是定义在方法中的,在所在代码块起作用

JAVA技术--Java基础知识常见考试题JAVA技术.doc

一、单选题 1.对类:(B) public class Test( //...do something } 下面那个正确地定义了类Test的构造函数。 A)public void Test() () B)publicTest()(} C ) public static Test() (} D) publicTest(); 2.下面哪个函数是public void example()(...)的重载函数。(A) A)public void example( float f)(...) B)public int example() (...) C)public void example2()(...} D)public int example_overLoad ()(...) 3.下面的代码段中,执行之后i和j的值是_C_。 int i = 1; intj; j = i++; A)1, 1 B) 1,2 C) 2, 1 D) 2,2 4.以下for循环的执行次数是_B o for(int x=0,y=0;(y !=0)&&(x<4) ;x++); A)无限次B) 一次也不执行 C)执行4次D)执行3次 5.下面程序的输出结果是—C o public class People( String name; int id; public People( String str, int n )( name = str; id = n; } public String toString(){ return id + " :” + name; } public String print()(

《Java编程基础知识点汇总及习题集》--答案

目录 第一章Java入门2? 第二章 Java基础5? 第三章条件转移1?4 第四章循环语句20? 第五章方法 ............................................... 26 第六章数组33? 第七章面向对象........................................... 42第八章异常63? ? 第一章Java入门 知识点汇总 1、JAVA 三大体系 ?Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个 平台中最核心的部分,包含Java最核 心的类库。?JavaEE:(J2EE,Java 2 Platform, EnterpriseEdition,企业版), 开发、装配、部署企业级应用,包含 Servlet、JSP、JavaBean、JDB C、EJB、Web Service等。 ?Java ME:(J2ME,Java 2 Platfor mMicro Edition,微型版),用于 小型电子设备上的软件开发。

2、JDK,JRE,JVM的作用及关系 作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 ?path环境变量:存放可执行文件的存 放路径,路径之间用逗号隔开 ?classpath环境变量:类的运行路径,J VM在运行时通过classpath加载需 要的类 4、重点掌握两个程序 ?javac.exe:Java编译器工具,可以将 编写好的Java文件(.java)编译成 Java字节码文件(.class); ?java.exe:Java运行工具,启动Java 虚拟机进程,运行编译器生成的字节 码文件(.class) 5、一切程序运行的入口 publicstatic voidmain(String args []){ System.out.println(“Hel lo World!”); } 课堂笔记 练习题 一、填空题 1、Java的三个技术平台分别是(J2SE )、(J2EE)、(J2ME)。 2、Sun公司针对领域不同,提供了三个Java版本,其中对于个人计算机程序开发的是( J2SE ), 对于企业开发应用的是(J2EE),对于嵌入式设备应用开发的是( J2ME )。 (classpath )。 3、建立Java开发环境,安装JDK,一般需要设置环境变量(path)、 4、编写一个Java源程序,其文件名为Test.java,则编译该源程序的命令为(javac ),运行 该程序的命令为( java),生成文档注释的命令为( javadoc)。 5、Java程序的运行环境简称之为( JRE)。

--动力节点之java的知识点归纳总结

1. 基本数据类型 整形: byte 1 个字节 short 2 个字节 int 4个字节 long 8个字节 字符: char 2个字节 浮点数: float 4个字节 double 8个字节 布尔: boolean 1个字节 2.java 7 新增二进制整数 以0b或者0B开头 3.java中字符时16位的Unicode编码方式,格式是'\uXXXX',其中xxxx代表一个十六进制整数 4.java中规定了正无穷大、负无穷大和零 正无穷大= 一个正数除以0 负无穷大= 一个负数除以零 0.0 除以0.0 或者对一个负数开方得到一个非数 5. 在java中布尔类型只能是true和false 6. 在java中没有多维数组 动力节点

看似像C语言中的多维数组不是真正的数组,比如 a[3][4] , a[0] a[1] a[2] 是真实存在的,装的是地址,和 c语言中动态分配为的数组一样 int [][] b = new int[3][4] 7. Java中带包的编译方法 javac -d . Hello.java 会在当前目录下生成目录树 运行 java 包名字.类名字 8. Java多态中的对象的filed 不具有多态性,如父类对象 = new 子类(),对象.field 是调用的父类的,即使子类中覆盖了该字段。 9. instanceof 运算符 格式:引用变量名 instanceof 类名(或者接口)他用于判断前面的对象是否是后面对象的类,子类、实 现类的实例,是返回true,否者返回false 10. Java 中基本数据类型和对应封装类之间的转化 int a = 1; Integer A = new Integer(a); a = A.intValue(); 其他的类型也是这样的。 11.单例(singleton)类例子 复制代码代码如下: class Singleton { private static Singleton instance; private Singleton(){} public static Singleton getInstance() { 动力节点

java各知识点详细总结(毕向东笔记整理)

Java基础知识总结 写代码: 1,明确需求。我要做什么? 2,分析思路。我要怎么做?1,2,3。 3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。4,代码实现。用具体的java语言代码把思路体现出来。 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用。demo 4,该技术什么时候用?test。 ----------------------------------------------------------------------------------------------- 一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;

JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序; 1,JDK:Java Development Kit,java的开发和运行环境,java 的开发工具和jre。 2,JRE:Java Runtime Environment,java程序的运行环境,java 运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin 2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。 classpath的配置: 1):永久配置方式:classpath=.;c:\;e:\ 2):临时配置方式:set classpath=.;c:\;e:\ 注意:在定义classpath环境变量时,需要注意的情况如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件;

java期末考试知识点总结

java知识点总结 应同学要求,特意写了一个知识点总结,因比较匆忙,可能归纳不是很准确,重点是面向对象的部分。 java有三个版本:JAVA SE 标准版\JAVA ME移动版\JAVA EE企业版 java常用命令:java, javac, appletview java程序文件名:.java, .class java的两类程序:applet, application; 特点,区别,这两类程序如何运行 java的主方法,主类,共有类;其特征 java的数据类型,注意与C++的不同,如字符型,引用型,初值 java与C++的不同之处,期中已总结 java标记符的命名规则 1)标识符有大小写字母、下划线、数字和$符号组成。 2)开头可以是大小写字母,下划线,和$符号(不能用数字开头) 3)标识符长度没有限制 4)标识符不能使关键字和保留字 面向对象的四大特征 抽象、封装、继承、多态 封装,类、对象,类与对象的关系,创建对象,对象实例变量 构造函数,默认构造函数,派生类的构造函数,构造函数的作用,初始化的顺序,构造方法的重载 构造函数:创建对象的同时将调用这个对象的构造函数完成对象的初始化工作。把若干个赋初值语句组合成一个方法在创建对象时一次性同时执行,这个方法就是构造函数。是与类同名的方法,创建对象的语句用new算符开辟了新建对象的内存空间之后,将调用构造函数初始化这个新建对象。 构造函数是类的特殊方法: 构造函数的方法名与类名相同。 构造函数没有返回类型。 构造函数的主要作用是完成对类对象的初始化工作。 构造函数一般不能由编程人员显式地直接调用。 在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。 类的修饰符:public类VS 默认; abstract类; final类; 1)类的访问控制符只有一个:public,即公共的。公共类表明它可以被所有其他类访问和引用。 若一个类没有访问控制符,说明它有默认访问控制特性,规定该类智能被同一个包中的类访问引用(包访问控制)。 2)abstract类:用abstract修饰符修饰的类被称为抽象类,抽象类是没有具体对象的概念类,抽象类是它所有子类的公共属性集合,用抽象类可以充分利用这些公共属性来提高开发和维护效率。 3)final类:被final修饰符修饰限定的,说明这个类不能再有子类。所以abstract与final 不能同时修饰一个类。 域和方法的定义 1)域:定义一个类时,需要定义一组称之为“域”或“属性”的变量,保存类或对象的数据。

Java基础阶段复习题2(附答案)

复习题2 如有雷同,纯属巧合! 1.下列哪一种叙述是正确的() A. abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{ }包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 2.下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 3.以下哪个表达式是不合法的() A、String x=”Hello”; int y=9; x+=y; B、String x=”Hello”; int y=9; if(x= =y) { } C、String x=”Hello”; int y=9; x=x+y; D、String x=null; int y=(x!=null)&&(x.length()>0) ? x.length() : 0 4.下列关于修饰符混用的说法,错误的是() A.abstract不能与final并列修饰同一个类 B.abstract类中不可以有private的成员 C.abstract方法必须在abstract类中 D.static方法中能处理非static的属性 5.()修饰符允许对类成员的访问不依赖于该类的任何对象 A、abstract B、static C、return D、public 6.关于被私有访问控制符private修饰的成员变量,以下说法正确的是() A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问

JAVA知识点总结

第一章面向对象程序设计 一、识记知识 1.结构化程序设计思想、特点、基本过程 思想:⑴自顶向下、逐步求精; ⑵模块化; ⑶语句结构化。 特点:程序设计= 数据结构+ 算法 程序内容= 过程+ 过程调用 基本过程:软件开发的基本过程: 1)需求分析、2)系统分析、3)系统实现、4)系统测试、5)系统维护 结构化贯穿于每个过程中时,其基本过程:分解和组装 2.面向对象程序设计基本思想、特点 基本思想:以对象的观点描述分析现实世界中的问题。从普通人认识世界的观点出发,把事物归类、综合,提取共性并加以描述。 特征:1)所有待处理的内容都表示成对象; 2)对象之间依靠相互发送消息或响应消息实现通信; 3)每个对象有自己的唯一标识,以便区别属于同一个类的不同对象; 4)对象一定属于某个类,这个对象又称为所属类的一个实例; 5)类是将具有共同属性的对象进行抽象的结果,他可以具有层次关系,即一个类既可以通过继承其他类而来,又可以被其他类继承。 通过公式描述:面向对象=类+对象+继承+消息+通信 3.基本概念、面向对象的4个特性 概念: 1)抽象:从许多食物中,舍弃个别的,非本质的属性,抽取出共同的、本质的属性过程,它是形成概念的不要手段。 2)封装:指将显示世界中的某个客体的属性与行为聚集在一个逻辑单元内部的机制。 3)对象:用来描述现实世界中客体的部件,是面向对象软件系统在运行时刻的基本单位。 4)类:是一组具有相同属性特征的对象的抽象描述,是面向对象程序的有一个核心概念。(具体地说,类是面向对象程序的唯一构造单位,是抽象数据类型的具体实现,是对象的生成模板) 5)消息:是一个对象要求另一个对象实施某项操作的请求。(是对象之间相互请求或相互协作的途径,是要求某个对象执行其中某个功能操作的规格的说明) 6)继承:表达了一种对象类的相交关系。是类之间的一种常见关系,为共享数据和操作提供了一种良好的机制。 7)多态:不同的类对象收到同一个消息可以产生完全不同的响应效果。 特性:抽象性、多态性、封装性、继承性 4.消息 概念:是一个对象要求另一个对象实施某项操作的请求。是对象之间相互请求或相互协作的途径,是要求某个对象执行其中某个功能操作的规格的说明。

java基础刷题知识点总结

基础 1.object类的方法有哪些 clone() protect 创建并返回一个对象的副本 equals()用来比较某个对象是否与调用此方法的对象相等 finalize() protect getClass() 返回一个对象的运行时类 hashCode()返回一个对象的hash值 notify()唤醒在此对象监听器上等待的单个线程。如果有多个,则随机唤醒一个 notifyAll()唤醒在此对象监听器上等待的所有线程 registerNatives() 本地私有方法,在类初始化是会调用此方法 toString() 返回当前对象的字符串表示 wait()使当前线程处于等待直到其他线程调用这个对象的notify或notifyAll方法或者超过指定的时间量 2.接口和抽象类的区别 1.首先描述接口和抽象类的特性 抽象类:是子类通用特性的集合 接口:是抽象方法的集合l 从某种意义上说抽象类包含了接口的所有功能。但是通过实现接口可以实现多继承

什么时候用抽象类和接口 1.如果一些方法必须提供默认的实现,就必须用抽象类,比如在dao层,每个类都有增删查改这几个操作,我们可以把这些操作写在抽象类里,并让抽象类提供默认的实现。 否则的话用接口 2.假如要实现多继承,则必须要用接口,java不支持多继承但是可以通过实现多个接口来解决 3.如果基本功能在不断改变,那么就用抽象类。如果不断改变基本功能并且使用接口,子类就必须不停的更改 03.抽象类是否有构造方法 抽象类有构造方法只是抽象类不能够实例化 4.Final finally finalize()方法的区别 5.Sleep()和wait()的区别 ①这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。 ②锁: 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。 sleep不出让系统资源;wait是进入线程等待池等待,出让系统资源,其他线程可以占用CPU。一般wait不会加时间限制,因为如果wait线程的运行资源不够,再出来也没用,要等待其他线程调用notify/notifyAll唤醒等待池中的所有线程,才会进入就绪队列等待OS 分配系统资源。sleep(milliseconds)可以用时间指定使它自动唤醒过来,如果时间不到只能调用interrupt()强行打断。 Thread.sleep(0)的作用是“触发操作系统立刻重新进行一次CPU竞争”。 ③使用范围:wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,配合synchronized实现等待通信机制,而sleep可以在任何地方使用。 synchronized(x){ x.notify() //或者wait() }

javaweb知识点总结

javaweb知识点总结 篇一:javaweb期末复习知识点整理 1、 Web应用概述 1. URL与URI URL: 统一资源定位器 URI:统一资源定位符 2. 常见HTML标签 3. 表单的处理 4. 静态文档与动态文档的概念:静态文档是一种以文件的形式存放在服务器端的文档,客户发出对该文档的请求,服务器返回这个文档。动态文档是指文档的内容可根据需要动态生成,又可分为服务器端动态文档和客户端动态文档技术。 5. Servlet概念:服务器端小程序,是使用ServletAPI 以及相关类编写的java程序,主要用来扩展web服务器的功能。 6. 处理404错误:查看给定的路径名是否正确,查看Servlet类文件是否在classes目录下,查看文件内容是否正确,查看tomcat是否启动 2、 Servlet技术模型 1. Servlet的API:包,包 Servlet接口及方法 :

1) public void init(ServletConfig config):完成Servlet初始化并准备提供服务。容器传给该方法一个ServletConfig类型的参数。 2)public void service(ServletRequest req,ServletResponse res)throw ServletException,IOException:对每个客户请求容器调用一次该方法,它允许Servlet为请求提供响应。 3) public void destroy()该方法由容器调用,指示Servlet清除本身,释放请求的资源并准备结束服务。 4) public ServletConfig getServletConfig()返回关于Servlet的配置信息,如传递给init()方法的参数。 5) public String getServletInfo()返回关于Servlet 的信息,如作者,版本及版权信息。 ServleConfig接口作用及方法 HttpServlet类 :新的service方法,doGet,doPost HttpServletRequest接口及常用方法 HttpServletResponse接口及常用方法 2. Servlet的开发步骤 编写一个Servlet类 编译 部署 (1)在tomcat的虚拟目录下,创建Web目录

java基础知识练习题

Java基础测试题 一、选择题(每题2分) 1、在JAVA编程中,Java编译器会将java程序转换为()。 A. 字节码; B. 可执行代码; C. 机器代码; D. 以上所有选项都不正确。 2、下列那些不是合法的标识符?() A. Tel_num B. 8ABc C. Emp_1 D. b123.6 E. NULL F. Hello World 3、以下字符常量中不合法的是( )。 A. '|' B. '\'' C."\n" D.'我' 4、下列语句编译没有错误的是:() A. float a=1.5; B.byte a=129; C.byte a=5; D.byte a=(byte)200; 5、java中int数据类型在内存中表示为() A. 2个字节 B.4个字节 C. 由程序员指定 D. 以上都不正确 6、下列程序段执行后t5的结果是( )。 int t1 = 9, t2 = 11, t3=8; int t4,t5; t4 = t1 > t2 ? t1 : t2+ t1; t5 = t4 > t3 ? t4 : t3; A. 8 B.20 C.11 D.9 7、若有定义int a = 2;则执行完语句a += a -= a * a; 后,a的值是( )。 A. 0 B. 4 C. 8 D.–4 8、设 a, b, c, d 均为 int 型的变量,并已赋值,下列表达式的结果属于非逻辑值的是( ) A. a!=b & c%d < a B.a++ = =a+b+c+d C.++a*b--+d D.a+b>=c+d 9、以下代码段执行后的输出结果为() int x=3; int y=10; System.out.println(y%x); A.0 B.1 C.2 D.3 10、下列语句序列执行后,k 的值是( )。 int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A. 31 B. 32 C. 2 D.33 11、假定有变量定义: int k=7,x=12; 则能使值为3的表达式是()。 A. x%=(k%=5) B.x%=(k-k%5) C. x%=k-k%5 D. (x%=k)-(k%=5) 12、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是()。 A. 把x和y按从大到小排列 B. 把x和y按从小到大排列

java基础知识详细整理(图文并茂深入浅出)

JSE第一部分 分享者:张振羽 2017.6.30

1.什么是 JDK API (1) Application Programming Interface ,应用程序编程接口 (2) 是一些预先定义的函数,开发人员可提供直接调用的功能。 2.JDK包结构 便于维护,按照功能划分,不同功能的累划分在不同功能的包中,常用的包如下表: 3.字符串的基本操作 3.1 String 及其API

3.1.1 String (1) String是不可变对象 (2) https://www.360docs.net/doc/428698601.html,ng.String使用了final修饰,不能被继承。 (3)字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中 (4) 任何一个字符对应2个字节的长度,1个字节 = 8位二进制。 3.1.2 String s=new String (“abc”) (1) 众所周知,答案是:创建两个对象 (2) why?举例子: 分析步骤: a) 栈中开辟一块空间存放引用str1(地址信息); b) String池中有一块空间,存放String常量"abc"; c) 引用str1指向池中String常量"abc"; d) str1所指代的地址即常量"abc"所在地址,输出为true; 结论:创建了一个引用对象str1

分析步骤: 1) 栈中开辟一块空间存放引用str3; 2) 堆中开辟一块空间存放一个新建的String对象"abc"; 3) 引用str3指向堆中的新建的String对象"abc"; 4) str3所指代的对象地址为堆中地址,而常量"abc"地址在池中,输出false; 3.2 StringBuilder常见API

Java期末知识点整理总结

Java期末知识点整理总结 计科2班苏锐师编号47 学号201330551464 第一章 Java语言概述 1. Java语言发展历史和现状及前景 2. Java语言的特点: 简单、面向对象、分布式、健壮性、结构中立、 安全性、可移植、解释的、高性能、多线程、多态性 3. Java虚拟机概念(JVM),Java程序的执行过程 4. Java应用程序分类:Application和Applet 5. Java程序的开发环境:JDK,IDE 第二章 Java数据类型及其运算 1. 标识符与保留字 1.2 标识符命名语法规则与Java推荐的标识符命名规则 1.3 Java中的关键字 2. 数据类型byte, short, int long, char, float, double, boolean 注意点:Java中所有数据类型是确定的,与平台无关,没有sizeof操作,其中特别注意char 类型是2字节Unicode编码,与C++ 不同;知道基本类型都有对应的默认值。 整型数的十进制、八进制、十六进制值的表示。 实型数的十进制、十六进制与科学计数法表示,注意实型常量默认类型为double型。 3. 运算符与表达式算术运算符: + - * / % ++ -- 关系运算符:> >= < <= == != 逻辑运算符:&& || !& | 注意短路计算与非短路计算的差别 位运算符: >> << >>> & | ^ ~ 要认识异或(^)与按位取反(~)运算符 赋值运算符: += -= *= /= %= &= |= ^= <<= >>= >>>= 要注意赋值运算符中包含了强制转换: 若: int k = 1; k += 44.232D; 则相当于: k = (int) ( k + 44.232D); 条件运算符:exp ?stat1 :stat2 要注意stat1与stat2要求类型相兼容且不能为void类型。运算符的优先级:算术运算 > 关系运算> 逻辑运算

Java基础知识整理

Java知识点总结 1环境搭建与开发 1.1 环境变量 JA V A_HOME:Java的安装目录; CLASSPATH:指定一个路径列表,用于搜索Java在编译或运行时需要用到的类(.class文件); PATH:指定一个路径列表,用于搜索可执行文件。 1.2 Java SDK应用 编译:Javac 类名.class; 运行:Java 类名; 打包:jar cf test.jar test (把当前目录下的test目录下的所有文件压缩到test.jar文件中)。 2变量与常量 Java中的常量用保留字final来实现。 变量:局部变量(local variable)、实例变量(instance variable)、类变量(class variable);任何变量在使用前都必须初始化,局部变量必须显示初始化,实例变量在类的构造方法被调用时初始化(分配默认值),类变量在类被加载时被初始化。 3标识符 3.1 命名 在Java语言中,标识符的定义规则是以字母、下划线、美元符开始,后面可以跟字母、下划线、美元符、数字。 因为Java语言使用Unicode字符集,所以对字母不仅限于英文,还可以是日文、韩文、阿拉伯文、中文等。 区分大小写,没有字数限制。

3.2 关键字 3.2.1static static方法中不能有this和super关键字(static方法不是“面向对象”的,而是“面向类”的)。 static方法中只能访问所属类的static方法和变量。 static数据成员的初始化:在第一次生成该类的对象时初始化。 3.2.2final 1)final数据 a)static final ●更加典型的定义方式是public static final; ●占用一段不能改变的存储空间; ●代表编译时常量,即在编译器就能知道其值(如果只声明为final或 者static,是在运行时才知道值)。 ●全部用大写字母命名,单词之间用下划线隔开。 b)final数据与final引用 ●final数据的值不能被改变; ●final引用是指无法将其指向一个新的对象(数组也是一种引用),对 象本身的值是可以改变的。 c)空白final(声明为final却未赋初始值) ●可以做到根据对象有所不同,又保持恒定不变的特性; ●必须保证使用前已经初始化:在定义处赋值或者在构造器中赋值。 2)final参数 ●无法在方法中更改引用所指向的对象。 3)final方法 ●禁止覆盖,防止任何继承类修改它的定义; ●private方法都是final的,因此private方法无法覆盖。 4)final类 ●不允许继承该类; ●final类中的所有方法都隐式指定为final的。

相关文档
最新文档