-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
1.Java语言的基本组成:
1)关键字
定义数据类型的关键字:class、interface、int、byte、short、long、char、void、double、float、boolean
定义数据类型值的关键字:true、false、null
定义流程控制的关键字:if、else、switch、case、while、for、break、continue、return、do、default
2)标识符
在程序中自定义的一些名称称之为标识符。
表识符的规则:数字、特殊符号不可以开头,不可以使用关键字。Java中严格区分大小写,威力提高阅读性尽量定义有意义的标识符。
标识符的规范:包名全部小写:xxxyyyzzz , 类接口名 首字母大写:XxxYyy,变量名从第二个单词开始首字母大写:xxxYyy,常量全部大写XXXYYY
3)注释
单行注释:// 多行注释:/* */ 文档注释/** */
4)常量和变量
数据类型分类:
定义变量的示例:int x=3; double d=3.0d; float f = 2.3f; boolean = true;等等
强制转换:byte b=2; b =(byte)(b+2);2是int类型,运算结果会提升为int型,需要强转,否则编译器会报错。
5)运算符
+,-,*,/,%,++x(前自增),x++(后自增),\(转义字符),+=,*=,/=,-=,%=(a=a+3这个是两次运算,a+=3是一次赋值运算)
比较运算符:==,!=,<,>,<=,>=
逻辑运算符:&,|,^,!,&&,||
true & true = true;
true & false = false;
false & true = false;
false & false = false;
true | true = true;
true | false = true;
false | true = true;
false | false = false;
true ^ true = false;
true ^ false = true;
false ^ true = true;
false ^ false = false;
&和&&的特点:
&:无论左边是true是false。右边都运算。
&&:当左边为false时,右边不运算。
|:两边都参与运算。
||:当左边为true。右边不运算。
位运算符:
<<左移,>>右移,>>>无符号右移,&与运算,|或运算,^异或运算,~取反。
三元运算符:(条件表达式)?表达式1:表达式2;
6)语句
判断结构:
if语句:
if(条件表达式){执行语句} if(条件表达式){执行语句}else{执行语句} if(条件表达式){执行语句}else if(条件按表达式){执行语句}...else{执行语句}
选择结构:
switch语句:
switch(条件表达式){case1:执行语句;break;case2:执行语句;break;case3:执行语句;break;......case1:执行语句;break;}
循环结构:
while语句:
while(条件表达式){执行语句} do{执行语句} while(条件表达式) 两种格式的区别:do while 无论条件满足不满足都会先执行一次
for语句:
for(初始化表达式;循环条件表达式;循环后的操作表达式){执行语句;} for语句和while语句的区别:for语句定义的变量只在循环中有效,while语句使用的变量在循环结束后还可以使用。
break(跳出):用在选择结构和循环结构中,用于结束循环。
continue(继续):用在循环结构中,用于结束本次循环,执行下次循环。
7)函数
函数也称之为方法。
函数的格式:修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,.........){执行语句;return 返回值;}
函数的特点:函数可以将功能代码封装,便与复用该功能,提高了代码的复用性。没有返回值是用void表示,可以省略不写return语句。函数被执行只能被调用。
代码示例:
public class FunctionTest {
public static void main(String [] args){
int sum = add(3,4);//调用add函数,返回值用sum接收
System.out.println(sum);//输出sum
}
public static int add(int x,int y){//定义一个add函数,返回值类型为int,有两个参数,参数类型为int
return x+y;//必须写返回语句。返回两个参数的和
}
}
运行结果:7
函数的重载:
什么是重载:在同一个类中,可以存在一个或一个以上的同名函数,只要参数个数、参数类型不同即可。函数的重载与返回值类型无关。
被调用的函数根据调用者所传的参数类型,参数个数决定的。
代码示例:
public class FunctionTest {
public static void main(String [] args){
int sum = add(3,4);//调用add函数,返回值用sum接收
System.out.println(sum);//输出sum
double sum1 = add(3.0,4.0);//调用返回值为double类型,有两个参数的的函数
System.out.println(sum1);
int sum2 =add(3,4,5);//调用返回值为int类型,有三个参数的函数。
System.out.println(sum2);
}
public static int add(int x,int y){//定义一个add函数,返回值类型为int,有两个参数,参数类型为int
return x+y;//必须写返回语句。返回两个参数的和
}
public static double add(double x,double y){//函数名一样,参数类型不一样,返回值类型不一样,是重载。
return x+y;
}
public static int add(int x,int y,int z){//函数名一样,参数类型一样,参数个数不一样,是重载
return x+y+z;
}
}
运行结果:
7
7.0
12
8)数组
8.1数组的概念:同一种类型数据的集合,数组是一个容器,数组的长度是固定的不可改变。
8.2定义数组的格式1:元素类型 [] 数组名 = new 元素类型 [元素的个数或数组的长度];
定义数组的格式2:元素类型 [] 数组名 = new 元素类型 []{元素,元素,.......};
数组引用没有指向实体,却在操作实体中的元素时,会发生空指针异常(NullPointerException)
例:
int[] arr = null;
System.out.println(arr[0]);
访问到数组中不存在的角标是,会发生角标越界异常(ArrayIndexOutOfBoundsException)
例:
int [] arr = new int [2];
System.out.println(arr[3]);
8.3数组的常见操作:
获取最大(最小)值:
代码示例:
package ArrayTest;
public class ArrayMax {
public static void main(String[] args) {
int [] arr = {1,6,8,9,4,3,4};
System.out.println("max="+getMax(arr));//调用getMax方法
System.out.println("min="+getMin(arr));//调用getMin方法
}
public static int getMax(int [] arr){//定义获取最大值的函数
int max = arr[0];//定义一个变量
for(int x=0;x<arr.length;x++){//遍历数组
if(arr[x]>max)//比较数组中的元素,记录大的值
max=arr[x];
}
return max;
}
public static int getMin(int [] arr){//定义获取最小值的函数
int max = arr[0];//定义一个变量
for(int x=0;x<arr.length;x++){//遍历数组
if(arr[x]<max)//比较数组中的元素,记录小的值。
max=arr[x];
}
return max;
}
}
运行结果:
max=9
min=1
排序(冒泡,选择):
代码示例:
package ArrayTest;
import java.util.Arrays;
public class ArraySort {
public static void main(String [] args){
int [] arr = {1,4,3,6,8,3,4,5};//定义数组
arr=selectSort(arr);//调用选择排序的方法
System.out.println(Arrays.toString(arr));//使用数组工具输出数组
arr=bobbleSort(arr);//调用冒泡排序的方法
System.out.println(Arrays.toString(arr));//使用数组工具输出数组
}
public static int[] selectSort(int[] arr){//定义选择排序的方法
for(int count=0;count<arr.length-1;count++){//外循环控制比较的第一个元素
for(int index=count+1;index<arr.length;index++){//内循环控制比较的第二个元素
if(arr[count]>arr[index]){//比较元素的大小
int temp=arr[count];//置换位置
arr[count]=arr[index];
arr[index]=temp;
}
}
}
return arr;
}
public static int[] bobbleSort(int[] arr){//定义冒泡排序
for(int count=0;count<arr.length-1;count++){//外循环控制循环比较的次数
for(int index=0;index<arr.length-count-1;index++){//内循环控制单次比较的次数,-1防止角标越界
if(arr[index]<arr[index+1]){//头一个元素和后一个元素比较
int temp=arr[index];//置换位置
arr[index]=arr[index+1];
arr[index+1]=temp;
}
}
}
return arr;
}
}
运行结果:
[1, 3, 3, 4, 4, 5, 6, 8]
[8, 6, 5, 4, 4, 3, 3, 1]
8.4二维数组:
定义二维数组中的方式:
int [] [] arr=new int[3] [4];表示二维数组arr中有3个一维数组,每个以为数组中有4个元素。
int [] [] arr= {{元素,元素},{元素,元素,元素},{元素}}