黑马程序员_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语句.
⒊ 循环结构

另外一种格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式){执行语句;(循环体)}
While循环使用的变量在循环结束后还
可以继续使用.
无限循环格式while(ture),for( ; ; )
第三种格式
Fir 嵌套循环.
其它流程控制语句
Break语句:跳出,选择结构和循环结构
Continue 语句:循环结构.
七、 函数
1. 函数的定义
函数就是定义在类中的具有特定功能的一段小程序.函数也称为方法.
函数名,就是一个代码区间的名字,或说一小段程序的名字,或说方法名.

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开始编号 ,方便操作这些元素.

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. 数组中的数组
二维数组
更多详情请查看:http://edu.csdn.net