JAVA知识点.docx
- 文档编号:27355251
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:26
- 大小:23.71KB
JAVA知识点.docx
《JAVA知识点.docx》由会员分享,可在线阅读,更多相关《JAVA知识点.docx(26页珍藏版)》请在冰豆网上搜索。
JAVA知识点
JAVA知识点
第1章Java概述
1.Java语言有下面一些特点:
简单、面向对象、分布式、解释执行、鲁棒、安全、体系结构中立、可移植、高性能、多线程以及动态性。
2.简单的Java程序
例2.1publicclassHelloWorldApp{//anapplication
publicstaticvoidmain(Stringargs[]){
System.out.println("HelloWorld!
");
}}
本程序的作用是输出下面一行信息:
HelloWorld!
第2章数据类型
1.数据类型
表AJava简单数据类型
简单类型
大小
范围/精度
float
4字节
32位IEEE754单精度
double
8字节
64位IEEE754双精度
byte
1字节
-128到127
short
2字节
-32,768到32,767
int
4字节
-2,147,483,648到2,147,483,647
long
8字节
-9,223,372,036,854,775,808到9,223,372,036,854,775,807
char
2字节
整个Unicode字符集
boolean
1位
True或者false
表BJava简单数据类型的默认值
类型
默认值
boolean
false
Byte
0
short
0
int
0
Long
0
Char
'\u0000'
Float
0.0
double
0.0
第3章运算符和表达式
1.i++与++i的区别
i++在使用i之后,使i的值加1,因此执行完i++后,整个表达式的值为i,而i的值变为i+1。
++i在使用i之前,使i的值加1,因此执行完++i后,整个表达式和i的值均为i+1。
例1.1下面的例子说明了算术运算符的使用
publicclassArithmaticOp{
publicstaticvoidmain(Stringargs[]){
inta=5+4;//a=9
intb=a*2;//b=18
intc=b/4;//c=4
intd=b-c;//d=14
inte=-d;//e=-14
intf=e%4;//f=-2
doubleg=18.4;
doubleh=g%4;//h=2.4
inti=3;
intj=i++;//i=4,j=3
intk=++i;//i=5,k=5
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
System.out.println("d="+d);
System.out.println("e="+e);
System.out.println("f="+f);
System.out.println("g="+g);
System.out.println("h="+h);
System.out.println("i="+i);
System.out.println("j="+j);
System.out.println("k="+k);
}
}
其结果为:
C:
\>javaArithmaticOp
a=9
b=18
c=4
d=14
e=-14
f=-2
g=18.4
h=2.4
i=5
j=3
k=5
第4章流控制
一、分支语句:
if-else,break,switch,return.
1.条件语句if-else.
例4.1判断某一年是否为闰年。
闰年的条件是符合下面二者之一:
①能被4整除,但不能被100整除;②能被4整除,又能被100整除。
======================================================================================
publicclassLeapYear{
publicstaticvoidmain(Stringargs[]){
intyear=1989;//method1
if((year%4==0&&year%100!
=0)||(year%400==0))
System.out.println(year+"isaleapyear.");
else
System.out.println(year+"isnotaleapyear.");
year=2000;//method2
booleanleap;
if(year%4!
=0)
leap=false;
elseif(year%100!
=0)
leap=true;
elseif(year%400!
=0)
leap=false;
else
leap=true;
if(leap==true)
System.out.println(year+"isaleapyear.");
else
System.out.println(year+"isnotaleapyear.");
year=2050;//method3
if(year%4==0){
if(year%100==0){
if(year%400==0)
leap=true;
else
leap=false;
}else
leap=false;
}else
leap=false;
if(leap==true)
System.out.println(year+"isaleapyear.");
else
System.out.println(year+"isnotaleapyear.");
}
}
运行结果为
C:
\>javaLeapYear
1989isnotaleapyear.
2000isaleapyear.
2050isnotaleapyear.
======================================================================================
2.多分支语句switch
(1)case子句中的值valueI必须是常量,而且所有case子句中的值应是不同的。
(2)break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行。
因为case子句只是起到一个标号的作用,用来查找匹配的入口并从此处开始执行,对后面的case子句不再进行匹配,而是直接执行其后的语句序列,因此应该在每个case分支后,要用break来终止后面的case分支语句的执行。
return语句从当前方法中退出,返回到调用该方法的语句处,并从紧跟该语句的下一条语句继续程序的执行。
(3)case分支中包括多个执行语句时,可以不用大括号{}括起。
例4.2根据考试成绩的等级打印出百分制分数段。
======================================================================================
publicclassGradeLevel{
publicstaticvoidmain(Stringargs[]){
System.out.println("\n****firstsituation****");
chargrade='C';//normaluse
switch(grade){
case'A':
System.out.println(grade+"is85~100");
break;
case'B':
System.out.println(grade+"is70~84");
break;
case'C':
System.out.println(grade+"is60~69");
break;
case'D':
System.out.println(grade+"is<60");
break;
default:
System.out.println("inputerror");
}
System.out.println("\n****secondsituation****");
grade='A';//createrrorwithoutbreakstatement
switch(grade){
case'A':
System.out.println(grade+"is85~100");
case'B':
System.out.println(grade+"is70~84");
case'C':
System.out.println(grade+"is60~69");
case'D':
System.out.println(grade+"is<60");
default:
System.out.println("inputerror");
}
System.out.println("\n****thirdsituation****");
grade='B';//severalcasewithsameoperation
switch(grade){
case'A':
case'B':
case'C':
System.out.println(grade+"is>=60");
break;
case'D':
System.out.println(grade+"is<60");
break;
default:
System.out.println("inputerror");
}
}
}
运行结果为
C:
\>javaGradeLevel
****firstsituation****
Cis60~69
****secondsituation****
Ais85~100
Ais70~84
Ais60~69
Ais<60
inputerror
****thirdsituation****
Bis>=60
======================================================================================
二、循环语句:
while,do-while,for,continue.
Java中提供的循环语句有:
while语句,do-while语句和for语句。
1.while语句
while语句实现“当型”循环,while语句首先计算终止条件,当条件满足时,才去执行循环体中的语句。
2.do-while语句
(1)do-while语句实现“直到型”循环,do-while语句首先执行循环体,然后计算终止条件,若结果为true,则循环执行大括号中的语句,直到布尔表达式的结果为false。
(2)与while语句不同的是,do-while语句的循环体至少执行一次,这是“直到型”循环的特点。
3.for语句
for语句也用来实现“当型”循环
(1)for语句执行时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。
完成一次循环后,重新判断终止条件。
(2)可以在for语句的初始化部分声明一个变量,它的作用域为整个for语句。
(3)for语句通常用来执行循环次数确定的情况(如对数组元素进行操作),也可以根据循环结束条件执行循环次数不确定的情况。
(4)初始化、终止以及迭代部分都可以为空语句(但分号不能省),三者均为空的时候,相当于一个无限循环。
4.continue语句
continue语句用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。
对于for语句,在进行终止条件的判断前,还要先执行迭代语句。
它的格式为:
continue;
======================================================================================
例4.4下例分别用while、do-while和for语句实现累计求和。
publicclassSum{
publicstaticvoidmain(Stringargs[]){
System.out.println("\n****whilestatement****");
intn=10,sum=0;//initialization
while(n>0){//termination
sum+=n;//body
n--;//iteration
}
System.out.println("sumis"+sum);
System.out.println("\n****do_whilestatement****");
n=0;//initialization
sum=0;
do{
sum+=n;//body
n++;//iteration
}while(n<=10);//termination
System.out.println("sumis"+sum);
System.out.println("\n****forstatement****");
sum=0;
for(inti=1;i<=10;i++){//initialization,termination,iteration
sum+=i;
}
System.out.println("sumis"+sum);
}
}
运行结果为:
C:
\>javaSum
****whilestatement****
sumis55
****do_whilestatement****
sumis55
****forstatement****
sumis55
例4.5求100~200间的所有素数
publicclassPrimeNumber{
publicstaticvoidmain(Stringargs[]){
System.out.println("****primenumbersbetween100and200****");
intn=0;
outer:
for(inti=101;i<200;i+=2){//outerloop
intk=15;//selectforconvinence
for(intj=2;j<=k;j++){//innerloop
if(i%j==0)
continueouter;
}
System.out.print(""+i);
n++;//outputanewline
if(n<10)//after10numbers
continue;
System.out.println();
n=0;
}
System.out.println();
}
}
运行结果为:
C:
\>javaPrimeNumber
****primenumbersbetween100and200****
101103107109113127131137139149
151157163167173179181191193197
199
该例通过一个嵌套的for语句来实现。
例4.6对输入字符计数。
publicclassCount{
publicstaticvoidmain(Stringargs[])
throwsjava.io.IOException
{
intcount=0;
while(System.in.read()!
=-1)
count++;
System.out.println("Youhaveinput"+count+"characters");
}
}
运行结果为:
C:
\>javaCount
countcountcount
Youhaveinput18characters
======================================================================================
三、注释语句
Java中可以采用三种注释方式:
1//用于单行注释。
注释从//开始,终止于行尾。
2/*…*/用于多行注释。
注释从/*开始,到*/结束,且这种注释不能互相嵌套。
3/**…*/是Java所特有的doc注释。
它以/**开始,到*/结束。
这种注释主要是为支持JDK工具javadoc而采用的。
javadoc能识别注释中用标记@标识的一些特殊变量,并把doc注释加入它所生成的HTML文件。
第5章数组
1.一维数组的定义:
typearrayName[];
(1)其中类型(type)可以为Java中任意的数据类型,[]指明该变量是一个数组类型变量。
例如:
intintArray[];
(2)与C、C++不同,Java在数组的定义中并不为数组元素分配内存,因此[]中不用指出数组中元素的个数,即数组长度,而且对于如上定义的一个数组是不能访问它的任何元素的。
我们必须为它分配内存空间,这时要用到运算符new,其格式如下:
arrayName=newtype[arraySize];
其中,arraySize指明数组的长度。
如:
intArray=newint[3];
为一个整型数组分配3个int型整数所占据的内存空间。
通常,这两部分可以合在一起,格式如下:
typearrayName=newtype[arraySize];
例如:
intintArray=newint[3];
(3)下标从0开始,一直到数组的长度减1。
对于上面例子中的intArray数组来说,它有3个元素,分别为:
intArray[0],intArray[1],intArray[2]。
注意:
没有intArray[3]。
(4)同时,对于每个数组都有一个属性length指明它的长度,例如:
intArray.length指明数组intArray的长度。
例5.1冒泡法排序(从小到大)
冒泡法排序对相邻的两个元素进行比较,并把小的元素交换到前面。
======================================================================================
publicclassBubbleSort{
publicstaticvoidmain(Stringargs[]){
inti,j;
intintArray[]={30,1,-9,70,25};
intl=intArray.length;
for(i=0;i for(j=i+1;j if(intArray[i]>intArray[j]){ intt=intArray[i]; intArray[i]=intArray[j]; intArray[j]=t; } for(i=0;i System.out.println(intArray[i]+""); } } 运行结果为: C: \>javaBubbleSort -9 1 25 30 70 ====================================================================================== 第6章对象、类、包和接口 一、类 1.成员变量 成员变量的类型可以是Java中的任意数据类型包括简单类型、数组、类和接口。 在一个类中,成员变量应该是唯一的,但是成员变量的名字可以和类中某个方法的名字相同,例如: classPoint{ intx,y; intx(){ returnx; } } 其中,方法x()和变量x具有相同的名字。 类的成员变量和在方法中所声明的局部变量是不同的,成员变量的作用域是整个类,而局部变量的作用域只是方法内部。 2.方法 (1)方法的返回类型可以是任意的Java数据类型,当一个方法不需要返回值时,返回类型为void。 其中,参数的类型可以是简单数据类型,也可以是引用数据类型(数组类型、类或接口)。 对于简单数据类型,Java实现的是值传送,方法接收参数的值,但并不能改变这些参数的值,如果要改变参数的值,则要用到引用数据类型,因为引用数据类型传递给方法的是数据在内存中的地址,方法中对数据的操作可以改变数据的值。 下例说明了简单数据类型与引用数据类型的区别。 例6.1 classLocation{ intx,y; } classPoint{ intx,y; Point(){ x=20; y=30; } voidgetXY(intxValue,intyValue){ xValue=x; yValue=y; } voidgetLocation(LocationlReference){ lReference.x=x; lReference.y=y; } } publicclassArgumentTest{ publicstaticvoidmain(Stringargs[]){ Pointp=newPoint();//label1: passbyvalue System.out.println("Passbyvalue: "); System.out.println("xValue="+xValue+"yValue="+yValue); Locationl=newLocation(); p.getLocation(l);//label2: passbyreference System.out.println("Passbyreference: "); System.out.println("xValue="+l.x+"yValue="+l.y); } } 运行结果为: C: \>javaArgumentTes
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 知识点
![提示](https://static.bdocx.com/images/bang_tan.gif)