------- android培训、java培训、java学习型技术博客、期待与您交流! ----------
二、java语言基础组成
1 关键字
其实就是某一个计算机语言对指定的单词赋予了特殊的含义。
特点:体现上都是英文小写。
2 标识符
就是在程序中起的名字。
包含:0~9,a~z,$,_。
注意:1、数字不可以开头。
2、名称不可以使用关键字。
3 注释
作用1: 注解,说明,解释。
表现形式三种:
1、单行注释。行的开头加 “//”
2、多行注释。有开始有结束 /* 注释的内容 */
3、java中特有的注释,文档注释。/** 注释内容*/ 通常用于对程序进行说明,并可以建立说明文档。
作用 2:用于调试程序
注释的细节:注释的嵌套
单行注释中可以有单行,多行注释。
多行注释中可以有单行注释。
4 常量和变量
常量:表示不能改变的数值。
1、整数常量,所有整数。表现形式有:二、八(以0开头)、十、十六(以0x开头)进制。
2、小数常量,所有小数。
3、布尔型常量,较为特有,只有两个数值,true、false。
4、字符常量,将一个数字、字母或者符号用单引号(‘’)标识 。
5、 字符串常量,将一个或者多个数字、字母或者符号用双引号(“”)标识 。
6、null常量,只有一个数值就是null。
负数转换:对应的正数的二进制取反+1,。
变量:就是将不确定的数据进行存储。
也就是需要在内存中开辟一个空间。
定义变量的格式:数据类型 变量名 = 初始化值
数据类型:
类型转换
制动类型提升
强制转换,即b=(byte)(b+2)
5 运算符
1、算术运算符:+、-、*、/、%(模,取余)+(连接符,用于连接字符串)++自增,——自减
对于a自增
++a 即 a=a+1
当自增参与运算的时候,++在前在后市有区别的,在前自增后参与运算。
2、赋值运算符: =、+=、-=、*=、/=、%=
3、比较运算符:>、<、>=、<=、==、!=
该运算符运算完的结果要么是true,要么是false。
4、逻辑运算符(用于连接boolean类型的表达式)
&、|、&&、||、^(异或)、!非
&&:当左边为false时,右边不参与运算
||:当左边为true时,右边不参与运算
^:两边结果一致。运算结果是false,两边结果不一致。运算结果是true。
5、位移运算符
左移:<<
右移:>>
无符号右移:>>>
&、|、^、~(反码)
6、三元运算符
int x=1;y
y = x + 1?100:200 真100,假200。
6 语句
程序流程控制:顺序结构、判断结构、选择结构、循环结构。
1、判断结构
if 语句,三种格式:
1> if (条件表达式)
{
执行语句;
}
2> if (条件表达式)
{
执行语句;
}
else
{
执行语句;
}
3>if (条件表达式)
{
执行语句;
}
else if
{
执行语句;
}
……
else
{
执行语句;
}
if else 结构间歇格式:变量 = (条件表达式)?表达式1:表达式2;
三元运算符
好处:可以简化 if else 代码。
弊端:因为是一个运算符,所有运算完必须有一个结果。
2、选择结构
swith 语句 格式:
swith(表达式)//byte、short、int、char
{
case 取值1:
执行语句;
break;
case 取值:2
执行语句;
break;
case 取值3:
执行语句;
break;
default:
执行语句;
break;
}
if和swith 语句很像具体用那么语句?
如果判断的具体数值不多,而是符合byte short int char这四种类型,虽然两个语句都可以使用,建议使用swith语句,因为效率稍高。
其他情况,对区间判断,对结果为boolean类型判断,使用if, if 的使用范围更广。
3、循环结果
代表语句:while、do while、for
while语句格式
while(条件表达式)
{
执行语句(循环体);
}
do while语句格式
do
{
执行语句(循环体);
}
while(条件表达式);
do while 循环体至少执行一次。
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句(循环体);
}
for 语句
1、变量有自己的作用域,对于for来讲,如果将用于控制循环的增量定义在for语句中,那么该变量只在for语句内有效,
for语句执行完毕,该变量在内存中被释放。
2、for和while 可以进行互换,如果需要定义循环增量,用for更为合适。
语句嵌套形式,其实就是语句中还有语句
“\”的应用
制表符\t 换行符 \n 退格键 \b 按下回车键\r 转移符 \
其他流程控制语句
break(跳出),continue(继续)
break语句:应用范围:选择结构和循环结构
continue语句:应用与循环结构
注:1、break和continue语句的作用范围
2、break和continue单独存在时,下面可以有任何语句,因为都执行不到。
7 函数
定义:函数就是定义在类中的具有特定功能的一段独立小程序,也称方法。
函数的格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2)
{
执行语句;
return 返回值;
}
修饰符:通过关键字对被修饰的内容加上指定的含义。
返回值类型:这要先明确什么是返回值,函数就是一个功能,通常功能结束后,都有一个结果,而这个结果就是返回值。
函数名:函数就是一个代码区间,这个区间要被使用,必须有个名字,这就是函数名。
参数:就是参加运算的数据。
return 有结束函数的功能。
功能技巧:1、明确该功能的结果是什么?
2、明确该功能中是否需要未知内容参与运算。
当函数运算后,没有具体的返回值时,这是返回值类型用一个特殊的关键字来标识,该关键字就是void,
void:代表的是函数没有具体返回值的情况。
函数的重载(overload)
什么时候用重载?
当定义的功能相同,但参与运算的未知内容不同,那么这时就定义一个函数名称以表示其功能,方便
阅读,而通过参数列表的不同来区分多个同名函数
8 数组
概念:同一种类型数据的集合,其实数组就是一个容器。
特点:1、这些数据必须是同一类型。2、存储时必须明确元素的个数。
格式1(非静态):元素类型 [ ] 数组名 = new 元素类型 [ 元素个数或数组长度];
数组创建后都有默认初始化值,如int类型,默认值为0。
例:int [ ] arr = new int [2 ] ;
内存结构
栈:数据使用完毕,会自动释放。
堆:堆允许程序在运行时动态地申请某个大小的内存(实体包括数组和对象,用new创建)。
格式2(静态):元素类型 [ ] 数组名 = new 元素类型 [ ]{元素,元素,……};
元素类型 [ ] 数组名 = {元素,元素,……};
常见异常
角标越界异常:arrayIndexOutOfBoundsException
空指针异常:NullpointerException
数组的操作:获取数组中的元素,通常会用到遍历。例如
int [ ] arr = new int [3];
数组中有一个属性可以直接获取到数组元素个数。length
使用方式:数组名称.length
获取最大值(最小值)
public static int getMax(int [ ] arr)
{
int max = 0;
for (int x = 1; x <arr.length ; x++)
{
if (arr[x] >arr[max])
max = x;
}
return arr[max];
}
数组选择排序
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;
}
}
}
}
冒泡排序
public static void bubbleSort( int [ ] arr)
{
for (int x = 0; x < arr.length-1; x++)
{
for (int y = 0; y < arr.length-x-1; y++)
{
if (arr[x] <arr[y])
{
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
java中的排序, Arrays.sort (arr);
数组元素的位置置换
public static void swap( int [ ] arr,int a,int b)
{
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
数组的查找
pubic static int getIndex (int[] arr ,int key)
{
for(int x = 0; x <arrr.length; x++)
{
if (arr[x]==key)
return x ;
}
return -1;
}
折半查找,必须数组是有序的
pubic static int halfsearch(int[ ] arr ,int key)
{
int min, max ,mid;
min = 0;
max = arr,length-1;
mid = (max + min)/2;
while (arr[mid]!=key)
{
if (arr[mid] > key)
min = mid +1;
esle if (key < arr [mid])
max = mid -1;
if (min>max)
return -1;
mid = (max + min )/2;
}
return -1;
}
二维数组
格式1:int [ ][ ] arr = new int [3] [4];
格式2:int [ ][ ] arr = new int [3] [ ];
引用变量初始化值都为null。
------- android培训、java培训、java学习型技术博客、期待与您交流! ----------