1.java语言的组成部份:

关键字:被Java语言赋予了特殊含义的单词,所有关键字字母都是小写。

Java中的保留关键字:

Java关键字

goto:C\C++中实现无条件转向语句,为了结构化程序设计java中现在一般不用。

const:和const一样,在Java中,const是作为保留字以备扩充。可以用final替换const,一般C++中用const,java中用final。

abstract

boolean

break

byte

case

catch

char

class

continue

default

do

double

else

extends

false

final

finally

 float

 for

if

implements

 import

instanceof

int

interface

long

native

new

null

package

private

protected

public

return

short

static

synchronized

super

this

throw

throws

transient

true

try

void

 volatile

 while

 

 

 

要特别注意的是,虽然goto、const在Java中并没有任何意义,却也是保留字,与其它的关键字一样,在程序里不能用来做为自定义的标识符。

 标识符:就如人的名字,是一个标识,是Java中的包、类、方法、参数和变量的名字,但标识符不能以数字开头,不能是Java中的保留关键字。由26个英文字母,0~9个数字,下划线(_)和美元符号($)组成,java中严格区分大小写的。

      定义格式如下:

      1、包名:多单词组成时所有字母都小写,xxxyyyzzz。

      2、类名接口名:多单词组成时,所有单词的首字母大写,XxxYyyZzz。

      3、变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写,xxxYyyZzz。

      4、常量名:所有字母都大写。多单词时每个单词用下划线连接,XXX_YYY_ZZZ。

Java注释格式:

      1、单行注释;格式://注释文字。

      2、多行注释;格式:/* 注释文字*/。

      3、文档注释;格式:/** 注释文字*/。

      单行和多行注释,被注释的文字,不会被JVM解释执行。

      文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具javadoc解析,生成一套以网页文件形式体现该程序的说明文档。注释是一个程序员必须要具有的良好编程习惯。编写程序先写注释再写代码。

常量与变量:

常量表示它的值是固定的,变量的值是可以改变的,是内存中的一块存储区域,该区域有自己的名字(变量名)和属性(数据类型),该区域的数据可以在同一类型范围内不断变化。

声明变量的格式:数据类型 变量名 = 初始化值。比如:String str = "Hello.Java!";

数据类型:

                                                                          ┌字节型(byte)

                                        ┌布尔型(boolean)     │字符型(char)

               ┌基本数据类型┤               ┌定点类型┤短整型(short)

               │                      │               │                │整型(int)

               │                      └数值类型┤               └长整型(long)

               │                                       │

数据类型┤                                       │               ┌单精度型(float)

               │                                       └浮点类型┤

               │                                                         └双精度型(double)

               │

               │                      ┌数组(array)

               └引用数据类型┤类(class)

                                       └接口(interface)

数据格式转换:

自动类型转换和强制类型转换;

自动数据类型转换:表达式的数据类型自动提升,byte型、short型和char的值都可以提升为int型,float类型可以提升为double类型。如:short s = 1;s += 1;

强制类型转换:变量=(类型)运算。如:int a = 1;short s= (short)a;

运算符:

算术运算符

运算符

优先级

用法

含义

结合方向

>

6

a>b

大于

从左到右

<

6

a<b

小于

从左到右

>=

6

a>=b

大于等于

从左到右

<=

6

a<=b

小于等于

从左到右

!=

7

a!=6

不等于

从左到右

==

7

a==b

等于

从左到右

逻辑运算符

||:当左边满足,右边不运算

&&:当左边不满足,右边不运算

运算符

优先级

用法

含义

结合方向

|

10

a|b

逻辑或

从左到右

&

8

a&b

逻辑非

从左到右

||

12

a||b

逻辑双或

从左到右

&&

11

a&&b

逻辑双与

从左到右

2

!a

逻辑非

从右到左

赋值运算符

运算符

优先级

用法

等效表达式

结合方向

=

14

a=b

a = b

从右到左

+=

14

a+=b

a = a + b

从右到左

-=

14

a-=b

a = a - b

从右到左

*=

14

a*=b

a = a * b

从右到左

/=

14

a/=b

a = a / b

从右到左

%=

14

a%=b

a = a % b

从右到左

|=

14

a|=b

a = a | b

从右到左

&=

14

a&=b

a = a & b

从右到左

^=

14

a^=b

a = a ^ b

从右到左

>>=

14

a>>=b

a = a >>= b

从右到左

>>>=

14

a>>>=b

a = a >>>= b

从右到左

<<=

14

a<<=b

a = a <<= b

从右到左

位运算符

运算符

优先级

用法

含义

结合方向

~

2

~a

按位取反

从左向右

|

10

a | b

按位或

从左向右

&

8

a & b

按位与

从左向右

^

9

a ^ b

按位异或

从左向右

>>

5

a >> b

按位向右移

从左向右

>>>

5

a >>>b

无符号右移

从左向右

<<

5

a << b

按位向左移

从左向右

运算符优先级和结合性

优先级

运算符

结合性

1

()[].

从左到右

2

! +(正)  -(负) ~ ++ --

从右到左

3

* / %

从左到右

4

+(加) -(减)

从左到右

5

<< >> >>>

从左到右

6

< <= > >= instanceof

从左到右

7

==   !=

从左到右

8

&(按位与)

从左到右

9

^

从左到右

10

|

从左到右

11

&&

从左到右

12

||

从左到右

13

?:

从右到左

14

= += -= *= /= %= &= |= ^=  ~=  <<= >>=   >>>=

从右到左

程序流程控制:

if语句格式1:

if(条件表达式)

{

执行语句;

}

if语句格式2:

if(条件表达式)

{

执行语句;

}

else

{

执行语句;

}

if语句格式3:

if(条件表达式)

{

执行语句;

}

else if(条件表达式)

{

执行语句;

}

......

else

{

执行语句;

}

switch语句格式:

switch(表达式)

{

case value1:

执行语句;

break;

case value2:

执行语句;

break;

......

default:

语句主体;

}

循环结构格式1:

while(条件表达式)

{

执行语句;

}

循环结构格式2:

do

{

执行语句;

}while(条件表达式);

do{}while(case);不管条件是否满足循环体至少被执行一次

for循环:

for(初始化表达式;循环条件表达式;循环后的操作表达式)

{

执行语句;

}

 

break(跳出), continue(继续):

break语句的作用范围:选择结构(switch)和循环结构(while,do......while,for)。

continue语句:只作用于循环结构。

这个两个语句单独存在下面都不可以有语句,因为执行不到,continue语句是结束本次循环继续下次循环。标号的出现,可以让这两个语句作用于指定的范围。

数组的定义:

同一种类型数据的集合,其实数组就是一个容器。

数组定义的格式:

元素类型[] 数组名= new 元素类型[元素个数或数组长度];  

元素类型[] 数组名= new 元素类型[]{元素,元素,……};

数组内存结构:

java程序在运行时,需要在内存中的分配空间,为了提高运算效率,有对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

栈内存:用于存储局部变量,当数据使用完,所占空间就会自动释放。

堆内存:数组和对象,通过new建立的实例都存放在堆内存中,每一个实体都有内存地址值,实体中的变量都有默认初始化值,实体不在被使用,会在不确定的时间内被垃圾回收器回收。

数组操作常见的问题:

1.数组角标越界异常(ArrayIndexOutOfBoundsException);

2.空指针异常(NullPointerException);

二维数组:

就是在数组中又定义了数组。

定义格式:

数据类型[][] 数组名 = new 数据类型[行的个数][列的个数] ;

数据类型[][] 数组名 = {{......},{......},{......},{......},......};

格式1:int[][] arr = new int[3][2];定义了名为arr的二维数组,二维数组中有3个一维数组,每一个一维数组中有两个元素,一维数组的名称分别为arr[0], arr[1], arr[2]。

格式2:int[][] arr = new int[3][];二维数组中有3个一维数组,每个一维数组都是默认初始化值null。

格式3:int[][] arr = {{6,1,4},{5,2},{2,7,0,2}}; 定义一个名称为arr的二维组,二维数组中的有三个一维数组,每一个一维数组中具体元素都已初始化。

多维数组:

经过前面一、二维数组不难发现,想要提高数组的维数,只要在声明数组的时候将索引与中括号再加一组即可,所以三维数组的声明为:数据类型 数组名[][][],而四维数组为数据类型 数组名[][][][] … …,以此类推。使用多维数组时,输入、输出的方式和一、二维相同,但是每多一维,嵌套循环的层数就必须多一层,所以维数越高的数组其复杂度也就越高。如:

/*
输出数组内容并计算总和
*/
public class Test
{
	public static void main(String args[])
	{
		int i,j,k,sum=0;
		int A[][][]={{{7,2},{6,7}},{{9,9},{6,6}}};
		for(i=0;i<A.length;i++)
			for(j=0;j<A[i].length;j++)
				for(k=0;k<A[i][j].length;k++)
				{
					System.out.print("A["+i+"]["+j+"]["+k+"]=");
					System.out.println(A[i][j][k]);
					sum+=A[i][j][k];
				}
					System.out.println("sum="+sum);
	}
}
输出结果:
C:\Users\lenovo\Desktop>javac Test.java

C:\Users\lenovo\Desktop>java Test
A[0][0][0]=7
A[0][0][1]=2
A[0][1][0]=6
A[0][1][1]=7
A[1][0][0]=9
A[1][0][1]=9
A[1][1][0]=6
A[1][1][1]=6
sum=52

函数的定义:

函数就是定义在类中的具有特定功能的一段独立小程序,函数也称为方法。

函数的格式:

修饰符 返回值类型 函数名(数据类型 形式参数1,数据类型 形式参数2,......)
{
执行语句;
return 返回值;
}
返回值类型:函数运行后结果的数据类型。

数据类型:是传入函数参数的数据类型。

形式参数:是一个变量,作用就是存储调用函数时传递给函数的实际参数。

实际参数:传递给形式参数的具体数值。

return:返回函数的运算结果。

返回值:该值会返回给调用者。

函数的重载:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。如:

//返回两个整数的和
int add(int a,int b)
{
	return a+b;
}

//返回三个整数的和
int add(int a,int b,int c)
{
	return a+b+c;
}
//返回两个小数的和
double add(double a,double b)
{
	return a+b;
}

 二维数组用函数的体现形式:

/*
返回一个二维数组的实现过程
*/
public class FunctionArray
{
	public static void main(String args[])
	{
		int arr1[][]={{34,45,52,2,24},{42,14,10,19}}; // 定义二维数组
		int arr2[][]=new int[2][5];
		arr2=add10(arr1); // 调用add10()方法,并把返回的值设给数组arr2
		for(int i=0;i<arr2.length;i++) // 输出数组的内容
		{
			for(int j=0;j<arr2[i].length;j++)
				System.out.print(arr2[i][j]+" ");
				System.out.print("\n");
		}
	}

	public static int[][] add10(int arr[][])
	{
		for(int i=0;i<arr.length;i++)
			for(int j=0;j<arr[i].length;j++)
				arr[i][j]+=10; // 将数组元素加10
		return arr; // 返回二维数组
	}
}
运算结果如下:
C:\Users\lenovo\Desktop\javaspace>javac FunctionArray.java

C:\Users\lenovo\Desktop\javaspace>java FunctionArray
44 55 62 12 34
52 24 20 29

C:\Users\lenovo\Desktop\javaspace>