最新整理Java语言基础.docx

上传人:b****8 文档编号:8781680 上传时间:2023-02-01 格式:DOCX 页数:34 大小:36.11KB
下载 相关 举报
最新整理Java语言基础.docx_第1页
第1页 / 共34页
最新整理Java语言基础.docx_第2页
第2页 / 共34页
最新整理Java语言基础.docx_第3页
第3页 / 共34页
最新整理Java语言基础.docx_第4页
第4页 / 共34页
最新整理Java语言基础.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

最新整理Java语言基础.docx

《最新整理Java语言基础.docx》由会员分享,可在线阅读,更多相关《最新整理Java语言基础.docx(34页珍藏版)》请在冰豆网上搜索。

最新整理Java语言基础.docx

最新整理Java语言基础

***####

Java基础

一.Java平台概述

1.Java特点

A.简单:

语言本身既容易学,又容易使用,而且功能强大。

B.面向对象:

Java是“纯”面向对象的语言。

其特征是:

没有全局变量和全局函数那样

的概念。

面向对象的编程更符合人们的思维方式。

C.与平台无关:

这是Java的最大优势,即所谓的”WriteOnce,RunAnywhere”,这个

特点也称为“可移植性(universality)”。

D.解释型:

源代码编译之后生成“字节码”文件,然后由JVM解释执行

E.多线程:

内置多线程支持

F.垃圾回收机制(garbagecollection):

用以自动回收内存垃圾。

G.安全性(security):

Java特有的沙箱(Sandbox)机制保证了这种网络语言的安全性。

同时它

删除了C++语言中复杂而且容易造成错误的指针,它的JavaApplet在客户端运行时也受到

限制,从而保证了程序运行的安全性。

H.效率稍低。

健壮性、安全性、平台无关性、可移植性等方面的提高总是要以牺牲性能为代价的,Java程序的解释执行的效率也要低于直接执行编译后的源码的效率。

可谓“鱼与熊掌不可兼得”,但是Java采用了一些很好的措施来弥补这些性能上的差距

I.不提供对硬件的直接操作

2.Java的三种平台

Java平台主要由java虚拟机(JVM,javavirtualmachine)和应用程序接口

(javaapi,javaapplicationprograminterface)组成.JVM实际上是运行在操作系统上的一种

程序,其主要作用是对java字节码进行解释并执行。

目前有三个版本:

Java2微型版(Java2MicroEdition,简称JavaME)

Java2平台标准版(Java2StandardEdition,简称JavaSE)

Java2平台企业版(Java2EnterpriseEdition,简称JavaEE).

3.JDK

JDK,即JavaDevelopKit,它是Java的基础。

Java程序编译,运行依赖于它。

JDK版本:

JDKV1.2JDKV1.3JDKV1.4JDKV1.5,JDKV6.0

4.Java应用程序常用开发工具

BorlandJbuilder2006,

IBMEclipse,

SunNetBeans

二.Java数据类型

1..基本数据类型

8种基本数据类型

类型

描述

boolean

在内存中占2个字节。

取值为:

true,false

char

2字节(java使用Unicode字符集处理文字)

整型数:

可以用十进制数

八进制数(用0做前缀)

十六进制数表示(用0X做前缀)

int

4字节(-2147483648~~2147483647)

long

8字节

short

2字节(-32768~~+32767)

byte

1字节(-128~~+127)

浮点数(实型数)

float

4字节

double

8字节

说明:

A.char类型采用Unicode编码。

一个汉字仍为一个字符。

Char实际上也是整型量,Unicode表中的字符就是一个字符常量,必须用单引号括起,例如:

’B’‘大’,’7’等

B.要获得一个字符在Unicode字符集中的编码,必须用强制类型转换。

例如:

(int)’Y’如果要获得一个0-65535中的数所表示的Unicode表中相应位置的字符,必须使用char进行转换。

例如:

(char)20320

2.对象类型

有多种形式,如String型对象,用于表示字符串,它是一个与字符串有关的类

Strings1=”你好”;

Strings2=newString(“Hello!

”);

3.类型转换:

3.1.隐式类型转换

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

char-->int-long-float-double

3.2.强制类型转换

intk=(int)3.7;//舍去小数

intm=(int)Math.sqrt(2*365.0);//舍去小数

3.3.String类型对象与基本数据类型间的运算

String对象可以进行“+”(字符串拼接运算),其结果仍然为String,,即

字符串+整数(实数)=字符串

例如:

intb=256;

System.out.println(“b之值为:

”+b+”。

”);

输出结果为:

b之值为:

256。

三.字面量和变量

(一)。

字面量

1.整数字面量

任何整数值都是一个整数字面量。

常用表示方法:

十进制表示法(默认)(基为0--9)1,56,92

八进制表示法(基为0--7),用前导0表示:

0712,05,013

十六进制表示法(基为0—9A-F)用前导0X表示:

0x120xFB,0XFF

2.浮点数字面量

表示有小数的十进制数。

可以用标准计数法或科学计数法表示。

Java中的浮点型

字面量默认是double,要指定一个float类型,必须在字面量之后增加后缀F(或f),当然,double字面量也可以显式增加后缀D(或d)

3.字符字面量

java字符字面量编码为unicode.,是16位的值,可以转换为整数并可以用整数运

算符,如+-运算符。

字符字面量用单引号括起来,如‘A’‘大’.其它表示法

如下表所示:

字符转移序列

\\

表示反斜杠

\’

表示单引号

\”

表示双引号

\r

表示回车

\n

表示换行

\f

表示换页

\t

表示水平制表符(对应键盘TAB键)

\b

表示退格键

\ddd

八进制字符

\uxxxx

十六进制(unicode码)字符(XXXX)

(二)。

变量

变量是基本的存储单元,由一个标识符,一个类型和一个可选的初始值组合而成。

1.变量标识符的组成:

变量标识符由字母,数字,下划线,$组成,但不能以数字开头,并且不能与java保留字相同。

如:

MyClassMy2,_width

2.变量的声明:

type<变量名>如:

inta;

3.变量初始化

<变量名>=<初始值>如:

intB=154StringmyName=”Jon”

4.变量作用域

java变量主要有三种作用域:

类作用域,方法作用域和块作用域,

类作用域变量在整个类的所有方法中均可使用;

方法作用域变量仅在本方法中可用。

块作用域,其标志为”{}”,仅在本块中可用。

四.运算符和表达式:

1.运算符

类型

运算符

一元运算符

++--+-()

算术运算符

*/%(取模)+-

移位运算符

<<(左移)>>(右移)>>>(左边空出的位用0填补)

关系运算符

<<=>>===!

=

位逻辑运算符(按操作数的二进制逐位运算)

&(与)^(异或)|(或)~(求反)

短路逻辑运算符

(非)&&(与)||(或)

条件运算符(三目运算符)

?

:

赋值运算符

=+=-=*=/=%=&=|=^=

对象运算符

instanceof

说明:

A.>>(右移)运算符运算法则:

当被移动的数为正数,则左边填0,否则,左边填1

左移”<<”相当于*2,右移”>>>”相当于/2.

B.运算符instanceof用于判断某个对象是否为某个类的实例,返回值为boolean。

例如

Strings;

Booleanb;

则sinstanceofBoolean返回false

sinstanceofStrng返回true

C.短路逻辑运算符(&&(与)||(或)!

(非))

按照优先级计算,当计算到能够确定该逻辑表达式的值时,停止后面的运算。

例如:

A>=100&&B<999如果给定A=25,则A>=100为假,无论B的值为何值,此时整个逻辑表达式的值都为假。

因此,B<999不再计算了。

D.位运算是按二进制逐位进行的,可以用来提供速度。

如:

检查某数是否为奇数,

Intn;

StringyesNo=(n&1)!

=0?

‘是’:

‘否’;

E.异或运算常用于加解密。

F.注意++--运算符它们。

在变量之前和之后效果是不一样的。

inti=5;

myArray[--I%=10]=10;//10赋值给数组myArray哪一个元素呢?

5,4,

2.运算符优先级:

 

()[].

++--~!

*/%

+-

>><<>>>

>>=<<=

==!

=

&

^

|

&&

||

?

:

=+=-=*=/=%=

说明:

使用园括弧可以强制改变优先级

3.表达式

由运算符将变量(包括字面量)连接而成的有意义的式子称为表达式。

如:

A+5;32*6+(34+7);B,A>=100&&B<999

五.程序控制语句

编程语言使用控制语句来产生执行流,从而完成程序状态的改变。

Java控制语句包含

选择,迭代,跳转。

1.选择语句:

1.1.if语句

if(<条件>)<语句>

[else<语句>]

说明:

A.<语句>可以是单条语句,也可以是多条语句,但必须用大括弧括起来。

B.if语句可以嵌套,即if语句体包含if语句

if(a<0)b=12;//没有else语句!

if(a<0)

b=12;

else

{

x=x+5;

y*=65+7;

}

//嵌套if语句

if(I==100){

if(j<20)a=b;

if(k>100)c=d;

elsea=c;

}

else

a=d;

1.2.switch语句

switch(<整型表达式>){

casevalue1:

<语句序列1>

casevalue2:

<语句序列2>

default:

<缺省语句序列>

}

说明:

1.<整型表达式>可以是:

byte,short,int或char类型或枚举类型

2.当表达式与某个case匹配时,则执行该case语句序列,只有所有的

case都不匹配时,才执行default语句序列;如果没有任何匹配的case,

同时又没有default语句,则什么也不做。

3.在switch语句中可以使用break语句跳出switch体。

4.Switch语句只能测试相等的情况,if语句可以测试表达式的任何情况

5.通常在多分支的情况下使用switch语句。

for(intI=0;I<12;I++){

Switch(I){

Case0:

Case1:

Case2:

Case3:

Case4:

System.out.println(“小于5的整数”);

Break;

Case5:

Case6:

Case7:

Case8:

Case9:

System.out.println(“大于5并且小于10的整数”);

Break;

Default:

System.out.println(“大于等于10的整数”);

}//endswitch

}//endfor

2.迭代语句

又称循环语句。

包含下列几种:

while循环

dowhile循环

for循环

2.1.while循环

while(<布尔表达式>)语句;

说明:

2.1.1.<布尔表达式>必须为boolean

2.1.2.语句如果为多条,则必须用大括弧括起来。

2.1.3.语句可以为空。

例如:

intiSum=0;

intI=10;

while(I>0){

iSum+=I;

i--;

}

 

intI=10,j=25;

while(++I>--j);

System.out.println(“I==”+i);

2.2.dowhile循环

do{

//语句

}while(<布尔表达式>)

这个循环至少要执行一次,一般用于命令选择。

Intn=10;

do{

System.out.println(“Tick“+n);

}while(--n>0)

2.3.for循环

for(<初始化>;<条件>;<迭代>){

//body;

}

说明:

A.如果只有一条语句,则大括弧可以省略。

B.在<初始化>部分可以声明变量,变量作用域仅在for内

C.在<初始化>部分和<迭代>部分可以包含一条以上的语句,用”,”分隔.,变量作用域仅在for内。

D.<初始化>,<条件>,<迭代>部分均可省略,这样可构成无限循环。

例如:

intnum;

booleanisPrime=true;

for(intI=2;I<=num/2;I++){

if(num%I==0){

isPrime=false;

break;

}

}

if(isPrime==true)

System.out.println(“Prime”);

Else

System.out.println(“NotPrime!

”);

3.for循环的for_each版本

for(type<变量>:

<集合变量>)

语句块;

说明:

1.用于对集合进行遍历。

2.Type必须与<集合变量>中的元素类型相同。

3.用于只向前的迭代。

4.银杏树

5.苏州美肤

6.苏州祛斑

7.苏州除皱

8.苏州脱毛

9.苏州人才网

10.南京调查公司

11.南京调查公司

12.不能改变<集合变量>中元素的值。

13.可以用于多维数组上的迭代

例如:

int[]num={1,2,3,4,5,9,7};

intiSum=0;

for(intx:

num){

if(x%2==0)

iSum+=x;

}

 

intsum=0;

intnums[][]=newint[5][3];//二维数组

for(intI=0;I<3;I++)

for(intj=0;j<5;j++)

nums[I][j]=(I+1)*(j+1);

for(intx[]:

nums){

for(inty:

x){

sum+=y;

}

}

System.out.println(“Summation:

”+sum);

//数组查找

 

4.跳转语句:

java支持三种跳转语句:

breakcontinuereturn,这些语句把控制转移到程序的另一部分。

4.1.break语句

有三种用途。

终止switch语句中的语句序列,可以用于退出循环;可用于goto

语句的一种替代形式。

4.1.1.形式1:

break用于跳出当前循环(跳出一层).

4.1.2.形式2:

break<标签>用于跳转到<标签>处。

<标签>是一个带有冒号(:

)后缀的标识符。

且<标签>标识一块语句(用大括弧括起来),最重要的作用是从最内层循环退出

Booleant=true;

First:

{

second:

{

third:

{

System.out.println(“Beforethebreak.”);

If(t)breaksecond;

System.out.println(“thiswon’texecute.”);

}

System.out.println(“Beforethebreak.”);

}

System.out.println(“Thisisaftersecondblock..”);

}

//从最内层循环跳到最外层循环

outer:

for(intI=0;I<3;I++){

System.out.println(“Pass“+I+”:

”);

For(j=0;j<100;j++){

If(j==0)breakouter;

System.out.println(j+“.”);

}

System.out.println(“Thiswillnotprint.”);

}

System.out.println(“Loopscomplete.”);

 

4.2.continue语句

4.2.1.形式1

continue忽略该语句后面的所有语句,回到循环迭代处。

4.2.1.形式2

continue<标签>用于跳转到<标签>所在的那个循环语句的迭代处。

例如:

输出乘法9*9表

outer:

{

for(intI=0;I<10;I++){

for(intj=0;j<10;j++){

if(j>I){

System.out.println();//空行

Continueouter;

}//endif

System.out.println(““+(I*j));

}//endfor(j)

}//endfor(i)

System.out.println();

}

0

11

124

1369

091827364554637281

privatevoidContinue2(){

outer:

for(inta=1;a<=3;a++){

for(intb=1;b<=2;b++){

if(a<=2)

continueouter;

System.out.println(a+""+b);

}//endfor(b)

System.out.println("你好"+a);

}//endfor(a)

}

//输出:

31

32

你好3

 

//求素数

publicvoidOutputPrime(){

finalintUpper2=10;

outer:

for(inta=2;a<=Upper2;a++){

for(intb=2;b<=a-1;b++){

if(a%b==0)

continueouter;//a不是素数,则转到outer,处理下一个整数

}//endfor(b)

System.out.print(a+"");//输出素数a

}

}

//输出结果:

357

 

//break<标签>

publicvoidBreak2(){

Randomr=newRandom();

int[][]a=newint[3][5];

//产生随机整数数组

for(inti=0;i<3;i++){

for(intj=0;j<5;j++)

a[i][j]=r.nextInt(20);

}

inti,j=-1;

intiSum=0;

outer:

for(i=0;i<3;i++){

for(j=0;j<5;j++){

iSum+=a[i][j];

if(iSum>=50){

breakouter;//直接跳到最外层循环

}

}//endfor(j)

}//endfor(i)

System.out.println(i+"---"+j+"和"+iSum);

}

4.3.return语句

return[表达式]//从一个方法中返回(表达式的值)

returnx+y*3;return(b==5);//返回布尔量

return//

练习:

0.计算7+77+777+。

的前10项之和。

1.编写一个程序,用以判断一个5位数n各位数字的奇偶性,并求出他们的和。

2.根据给出的三门课程的成绩,求出平均分,总分和评语(>70为优秀,其余为普通)

3.假设数组A中的数据已按由小到大的顺序存放,设计一程序把数组A中相同的数据删得

只剩一个,然后以每行4个数据的格式输出A数组.

4给定一个二维数组B,编程找出每行的最大值,最小值,并将其保存到对应的二维数组s中

即第0行中的最大值,最小值放入s[0][0],s[0][1],第1行中的最大值,最小值放

入s[1][0],s[1][1]….

3.根据下列数据特点,用函数为各元素赋值,生成一个字符型二维数组,然后输出

数组各元素。

ABCDEFGHIJ

CDEFGHIJKL

EFGHIJKLMN

GHIJKLMNOP

IJKLMNOPQR

4.根据下列数据特点,用函数为各元素赋值,生成一个字符型二维数组,然后输出

数组各元素。

1@2@3@4@5@

2@3@4@5@6@

3@4@5@6@7@

4@5@6@7@8@

5@6@7@8@9@

5.创建一个整型数组f,它有25个元素,元素之间符合下列规律,然后输出它们

f[0]=1,f[1]=2

f[I]=f[I-2]+f[I-1](I>=2)

6.根据上一题要求,编写一段程序输出f[n]的值(其中n为任意数)。

要求使用数组和不使用数组完成。

7.编写程序实现下列目的:

在一个9位整数n(123456789L)中,将其各位上的数都按素数、合数、其它归类,并用字符’*’表示各类数出现的频率。

输出结果如下:

素数****

合数****

其它*

8.编写程序输出1—100间的整数,并且满足条件:

它是3的倍数,但不是5的倍数,也不是9的倍数。

9.设计一个函数,输出下列结果

*****

****

***

**

*

10.输出100以内的所有素数

11.一个数如果恰好等于它的因子之和,这个数称为”完数”,编写程序求1---

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

当前位置:首页 > 总结汇报 > 学习总结

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

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