------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
Java语言基础组成:1.关键字,2.标识符,3.注释,4.常量和变量,5.运算符,6.语句,7.函数,8.数组。
一.关键字:
被java赋予了特殊含义的单词。(java中的这些关键字我会以后用到,用到哪个关键字时再把它记住掌握)。二.标识符:
1.定义:在程序中自定义的一些名称。由26个英文字母大小写,数字0-9,符号组成。注意:标识符规则,数字不能开头,不可以使用关键字。
2.Java中的名称规范:
包名:都小写xxxyyyzzz;类名接口名:首字母大写XxxYyyZzz;变量名和函数名:第一个单词首字母小写,剩下的单词的首字母大写xxxYyyZzz;常量名:所有字母都大 写,每个单词用下划线连接XXX_YYY_ZZZ。
三.注释:
单行://多行:/* */
文档:/** */
四.常量和变量。
1.常量:1)、定义:表示不能改变的数值。
2)、分类:1.整数。 2.小数。 3.布尔型常量true和false。 4.字符'' 5.字符串“” 6.null常量。
3)、对于整数而言,java有三种表现形式。十进制:0-9,满10进1。八进制:0-7,满8进1,用0开头表示。十六进制:0-9,A-F,满16进1,用0x开头表示。
4)、进制转换:二进制转十六进制:四个二进制位就是一个十六进制。 二进制转八进制:三个二进制位就是一个八进制。负数的二进制表现形式:对应的正数二进制取反 加1。
2.变量:
1) 、定义:其实就是内存中的一个存储空间,用于存储常量数据。
2)、作用:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间,没有具体的值。
3)、特点:变量空间可以重复使用。
4)、什么时候定义变量?只要是数据不确定的时候,就定义变量。
5)、定义变量的格式:数据类型 变量名 = 初始化值;
6)、数据类型:
1:基本数据类型:byte(一个8位)、short(两个8位)、int(四个8位)、long、float(四个8位)、double(八个8位)、char、boolean 。
2:引用数据类型: 数组、类、接口。
级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double
自动类型转换:从低级别到高级别,系统自动转换的;
强制类型转换:什么情况下使用?把一个高级别的数赋给一个比该数的级别低的变量。
ASCII码:a 97; A 65; 0 48;
五.运算符:
包括:1.算术运算符 2.赋值运算符 3.比较运算符 4.逻辑运算符 5.位运算符 6.三元运算符。
1.算术运算符。
+ - * / %
+:连接符。
++,--:自增,自减。例如:int a = 3; b=++a; c=a++; a和b同时变为4,但c仍为3。
2.赋值运算符。
= += -= *= /= %=
3.比较运算符。
特点:运算完的结果,要么是true,要么是false。
4.逻辑运算符。
& | ^ ! && ||
逻辑运算符除了 ! 外都是用于连接两个boolean类型表达式。
&: 只有两边都为true结果是true。否则就是false。 注意:一个数异或同一个数两次,结果还是那个数。例:7 & 3 & 3 = 7;
|:只要两边都为false结果是false,否则就是true
^:异或:和或有点不一样。两边结果一样,就为false。两边结果不一样,就为true.
& 和 &&区别: & :无论左边结果是什么,两边都参与运算。
&&:短路与,如果左边为false,那么右边不参数与运算。
| 和|| 区别: |:两边都运算。 ||:短路或,如果左边为true,那么右边不参与运算。
5.位运算符:
用于操作二进制位的运算符。
& | ^
<< >> >>>(无符号右移)
例如:3<<1 等价于 3乘以2的1次幂。
6>>1 等价于 6除以2的1次幂。
>>:最高位补什么由原有数据最高位而定。
>>>:无论做高位是0还是1,都补0。
6.三元运算符:
格式:(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;如果条件为false,运算后的结果是表达式2。
六.语句:
包括:1.判断结构,2.选择结构,3.循环结构。
1.判断结构:
三种格式:
1)、if(条件表达式)
{
执行语句;
}
2)、if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}
3)、if(条件表达式)
{
执行语句;
}
else if (条件表达式)
{
执行语句;
}
……
else
{
执行语句;
}
注意:第三种格式如果上一个条件满足时下面的不再运算。
2.选择结构:
格式:
switch(变量){
case 值:要执行的语句;break;
…
default:要执行的语句;break;
}
注意:switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种,因为前三种可以自动的转化为int型。
3.循环语句:
1)、while语句格式:
while(条件表达式)
{
执行语句;
}
2)、do while语句格式:
do
{
执行语句;
}while(条件表达式);
注意:do while特点是条件无论是否满足,循环体至少被执行一次。
3)、for循环格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
4.最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。
5.这些语句什么时候用?
1)、当判断固定数的值的时候,可以使用if,也可以使用switch。但是如果判断的具体数值不多建议使用switch,效率相对较高。
2)、当判断数据范围,获取判断运算结果boolean类型时,需要使用if。
3)、当某些语句需要执行很多次时,就用循环结构。 while和for可以进行互换。区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量 在内存中释放。
6.break和continue区别?
break:作用于选择语句switch ,和循环语句,用于跳出,或者称为结束。
continue:只作用于循环结构,继续循环用的。作用:结束本次循环,继续下次循环。
7.语句嵌套形式:其实就是语句中还有语句。
七.函数。
1.定义:函数就是定义在类中的具有特定功能的一段独立小程序。函数也称为方法。
2.格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…){
执行语句;
return 返回值;
}
当函数没有具体的返回值时,返回的返回值类型用void关键字表示。
如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。
return的作用:结束函数。结束功能。
3.特点:
1)、定义函数可以将功能代码进行封装。
2)、便于对该功能进行复用。
3)、函数只有被调用才会被执行。
4)、函数的出现提高了代码的复用性。
4.函数的应用:
两个明确:
1)、明确要定义的功能最后的结果是什么。
2)、明确在定义该功能的过程中,是否需要未知内容参与运算。
5.重载:
1)、定义:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数不同或者参数类型不同即可。
2)、当定义的功能相同,但参与运算的未知内容不同用重载。
3)、如何区分重载:当函数同名时,只看参数列表。和返回值类型没关系。
八.数组。
1.定义:同一种类型数据的集合。其实数组就是一个容器。
2.好处:
可以对该容器中的数据进行编号,从0开始。数组用于封装数据,就是一个具体的实体。(注意:length代表数组长度)。
3.格式:
1)、元素类型[] 变量名 = new 元素类型[元素的个数];
2)、元素类型[] 变量名 = {元素1,元素2...};
3)、元素类型[] 变量名 = new 元素类型[]{元素1,元素2...};
4.java分了5片内存:寄存器,本地方法区,方法区,栈,堆。
栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 )。只要数据运算完成所在的区域结束,该数据就会被释放。
堆:用于存储数组和对象,也就是实体(就是用于封装多个数据的)。
注意:
1)、每一个实体都有内存首地址值。
2)、堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样。
3)、垃圾回收机制。
5.数组操作常见问题:
1)、数组脚标越界异常(ArrayIndexOutOfBoundsException)
例如:int[] arr = new int[2]; System.out.println(arr[3]); 访问到了数组中的不存在的脚标时发生。
2)、空指针异常(NullPointerException)
例如:int[] arr = null; System.out.println(arr[0]); arr引用没有指向实体,却在操作实体中的元素时。
6.数组常用操作:
获取最值(最大值,最小值),查找(逐个查找,折半查找),排序(冒泡,选择)。
7.二维数组(数组中的数组)格式:
1)、int[][] arr = new int[3][2];
2)、int[][] arr = new int[3][];
3)、int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};