读书人

黑马软件工程师_Java语法基础(十四)

发布时间: 2012-11-07 09:56:10 作者: rapoo

黑马程序员_Java语法基础(十四)

-------android培训、java培训、java学习型技术博客、期待与您交流! ----------

一、 关键字

关键字是某一个计算机语言赋予了特殊的含义的词.

① 定义数据类型的关键字

classinterface byte short long float double char ovid

② 用于定义数据类型值的关键字

true falsenull

③ 用于定义流程控制的关键字

if elseswitch case while do for break return

④定义访问权限修饰符

privateprotected public

⑤定义类、函数、变量修饰符

abstractfinal static synchronized

⑥类与类之间关系

extendsimplements

⑦建立实例及引用实例,判断实例的关键字

new thissuper instancedof

⑧异常处理

try catch finally throw throws

⑨用于包的关键字

package import

⑩其他修饰符关键字。

native strictfp transient volatile

二、 标识符

就是在程序中起的名字。

包含 0~9,a~z,$ _

三、 注释

注释就是注解,说明,解释

表现形式有三种:单行注释;多行注释;java中特有的注释,文档注释。

四、 常量与变量

常量表示不能改变的数组

Java中常理的分类

1, 整数常量

2, 小数常量

3, 布尔型常量

4, 字符常量

5, 字符串常量

6, Null常量

对于整数,有四种表现形式

二进制,逢2进1;八进制,逢8进1,用O开关;十进制,逢10进1,;十六进制,逢16进1,Ox开关表示。

变量是内存中的一个存储区域,有自己的名称和类型,区域内的数据可以在同一类型范围内不断变化

变量的作用范围,一对{}内有效。

变量的格式

数据类型 变量名 =初始化值;

Java语言是强类型语言,对于每一种数据都定义了

明确的具体数据类型,在内存中分配了不同大小的内存空间

整数类型(byte,short,int,long)

数值型

浮点类型(float,double)

基本数据类型 字符型(char)

布尔型(boolean)

数据类型

类(class)

引用数据类型 接口(interface)

数组([])

整数默认:int 小数默认 double

五、 运算符

1, 算术运算符:+ - / %(模,取余) ++ --

2, 赋值运算符: == += -= *= /= %=

3, 比较运算符: > < >= <= == !=

4, 逻辑运算符: & | &&(短路与) ||(短路或)

5, 位运算符: << >> >>> & | ^(异或运算) ~(反码)

6, 三元运行算符: (条件表达式)?表达式1:表达式2;

六、 语句

程序的控制

⒈ 判断结构

If语句的三种格式:

If(条件表达式){

执行语句;

}

If(条件表达式){

执行语句;

}

else{

执行语句;

}

If(条件表达式){执行语句}else if(条件表达式){执行语句;} … else {执行语句}

⒉ 选择结构

Switch

Switch(){case 取值1:执行语句;执行语句;break;…default:执行语句;break;}

如果是对具体个数的数值进行判断,if和swich都可以,建议用swich,因为会把选择答案加载进内存,选择效率高.

如果要对数据区间进行判断,用if语句.

如果运算结果是boolean型,用if语句.

⒊ 循环结构

黑马软件工程师_Java语法基础(十四)

另外一种格式:

for(初始化表达式;循环条件表达式;循环后的操作表达式){执行语句;(循环体)}

While循环使用的变量在循环结束后还

可以继续使用.

无限循环格式while(ture),for( ; ; )

第三种格式

Fir 嵌套循环.

其它流程控制语句

Break语句:跳出,选择结构和循环结构

Continue 语句:循环结构.

七、 函数

1. 函数的定义

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

函数名,就是一个代码区间的名字,或说一小段程序的名字,或说方法名.

黑马软件工程师_Java语法基础(十四)

2. 函数的特点

3. 函数的应用

必要掌握的一个基本思想:

不要把代码都写到主函数中,只要是功能,都用函数来体现,主函数只用来调用

自己定义的功能,让该功能运行起来.

A. 明确该功能的结果是什么?其实就是在明确java函数的返回值类型.

B. 明确该功能中是否需要未知内容参与运算?其实就是在明确java函数的参数列表

(参数的个数,参数的类型)

4. 函数的重载(overlaod)

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

重载的特点:

与返回值无关,只看参数列表 .

重载的好处:

方便于阅读,优化了程序设计.

重载示例:

返回两个整数的和

Int add(int x,int y){returnx+y;}

返回三个三个整数的和

Int add(int x,int y,intz){return x+y+z;}

返回两具小数的和

Double add(double x,doubley){return x+y;}

八、 数组

1. 数组的定义

同一种类型数据的集合,其实就是数组.

数组的好处,可以自动给数组中的元素从0开始编号 ,方便操作这些元素.

黑马软件工程师_Java语法基础(十四)

2. 数组的内存分配及特点

Java内存划分

1) 寄存器. cpu涉及的区域

2) 本地方法区. 是和系统相关的代码存储区域

3) 栈内存 存储的都是局部变量,变量运算区域一结束,就释放.局部变量:在方法上的参数,方法内的变量,语句中的变量.

4) 堆内存 存储的是数组和对象,简单说,堆内存中存储的是实体,实体就是可以存储多个数据的地方 ,只要是用new建立都存储在堆内存中.

5) 方法区 存储函数的地方 ,共识数据.

3. 数组操作常见问题

3.1 数组角标越界异常(ArrayIndexOutOfBoundsException)

3.2 空指针异常(NullPointerException)

4. 数组常见操作

4.1 获取最值

4.2 排序

⑴ 选择排序

选择排序:选择指定位置和其他位置比较,在该位置确定最值。

*/

public static void selectSort(int[] arr)

{

for(int x=0; x<arr.length-1;x++)

{

for(int y=x+1;y<arr.length; y++)

{

if(arr[x]>arr[y])

{

// int temp =arr[x];

// arr[x] =arr[y];

// arr[y] = temp;

swap(arr,x,y);

}

}

}

}

⑵ 冒泡排序

/*

冒泡排序:相邻两个元素比较,

*/

public static void bubbleSort(int[] arr)

{

for(int x=0; x<arr.length-1;x++)

{

for(int y=0;y<arr.length-1-x; y++)

{

if(arr[y]>arr[y+1])

{

// int temp =arr[y];

// arr[y] =arr[y+1];

// arr[y+1] =temp;

swap(arr,y,y+1);

}

}

}

}

冒泡排序另一种写法

for (intx=arr.length-1;x>0 ;x-- )

{

for (int y=0;y<x ;y++ )

{

if(arr[y]>arr[y+1])

{

换位置.

}

}

}

说明 -1:避免角标越界

-x :让逐轮比较的元素递减.

⑶ 排序代码优化

把换位置的功能封装

/*

对数组中的元素位置进行置换。

*/

public static void swap(int[] arr,inta,int b)

{

int temp = arr[a];

arr[a] = arr[b];

arr[b] = temp;

}

/*

4.3 折半查找(二分查找)

5. 数组中的数组

二维数组

黑马软件工程师_Java语法基础(十四)

-------android培训、java培训、java学习型技术博客、期待与您交流! ----------

更多详情请查看:http://edu.csdn.net

读书人网 >编程

热点推荐