JAVA学习笔记(二)
一、JAVA中的数据类型
JAVA中的数据类型主要分为两大类:
(1)原生数据类型(Primitive Data Type),共有8种:
1)整型:使用int表示。长度为4个字节,32位,范围为-2,147,483,648到2,147,483,647,int类型的默认值为0。
2)字节型:使用byte表示。长度为1个字节,8位,范围为-128到127,byte类型的默认值也为0。
3)短整型:使用short表示。长度为2个字节,16位,范围为-32,768到32,767,short类型的默认值为0,一般情况下,因为Java本身转型的原因,可以直接写为0。
4)长整型:使用long 表示。长度为8个字节,64位,范围为-9,223,372,036,854,775,808到9,223,372,036, 854,775,807,long类型的默认值为0L或0l,也可直接写为0。
5)单精度浮点型:使用float表示。所谓浮点型,指的就是小数,也叫做实数,长度为4个字节,32位,float的默认值为0.0f或0.0F。
6)双精度浮点型:使用double表示。双精度浮点型表示的数据范围要比单精度浮点型大,长度为8个字节,64位,double类型的默认值为0.0。
7)字符型:使用char表示(char是character的缩写),长度为2个字节,16位,因为Java本身的字符集不是用ASCII码来进行存储,是使用的16位Unicode字符集,它的字符范围即是Unicode的字符范围,在变量初始化的时候,char类型的默认值为'u0000'。
8)布尔类型,使用boolean表示,长度为1位。布尔类型只有两种可能值,分别是true与false,默认值为false。
(2)引用数据类型(对象类型)(Reference Type)
二、变量与常量
变量,就是值可以变化的量。常量,就是值不可以变化的量。
变量名:以下划线、字母、$符号开头,并且后跟下划线、字母、$符号以及数字。总之,Java中的变量名不能以数字开头。
定义变量:变量类型 变量名; 如:int a; 变量赋值: 变量名=变量值; 如:a=1;“=”表示赋值,将等号右边的值赋给左边的变量。“==”表示逻辑相等,等价于数学中的“=”。
将定义变量和变量赋值合并: 变量类型 变量名=变量值; int a=1;
变量在使用前必须要赋值;变量必须要声明其类型方可使用;变量在使用前必须要定义,并且只能定义一次。
Java中的所有浮点类型默认情况下都是double。不能将double类型的值赋给float类型的变量,即便该double类型的值处于float类型的范围内也是不可以的。总之,能否成功赋值取决于等号右边的值类型与等号左边的变量类型是否一致。
将double类型的值赋给float类型的变量,方法有两种:
(1)强制类型转换,将double类型的值强制转换为float类型。强制类型转换的语法为:类型 变量名 = (类型)变量值;
(2)使用java预言的支持。
可以将表示范围小的值赋给表示范围大的变量;但不能直接将表示范围大的值赋给表示范围小的变量,只能通过强制类型转换实现。
三、注释
Java 中共有3种类型的注释:
1)单行注释:以//开头,//后面的所有内容均被当作注释处理。
2)多行注释:以/*开头,以*/结束,中间的所有内容均被当作注释处理。多行注释来源于C/C++。关于多行注释,需要注意的是,多行注释不能嵌套。
3)另一种多行注释。用于产生Java Doc帮助文档。
四、运算符
当有若干个变量参与运算时,结果类型取决于这些变量中表示范围最大的那个变量类型。比如,参与运算的变量中,有整型int,有双精度浮点型double,有短整型short,那么最后的结果类型就是double。例如:
int a = 1; int b = 2; double c = (double)a / b;
上面的代码中,a与b都是整型,但是通过(double)a这种转换将a转换为一个匿名的变量,该变量的类型是double,但是要注意:a本身依旧是int 类型,而不是double类型,这样,(double)a / b就是double类型除以int型,结果自然是double类型。
(1)取模运算符:使用%表示。取模的结果符号永远与被除数的符号相同。例如:
int a = 5; int b = -3; int c = a % b; 被除数是5,那么取模的结果是2
int a = -5; int b = 3; int c = a % b; 被除数是-5,那么取模的结果是-2
(2)关系运算符:大于(>)、小于(<)、等于(==)、不等于(!=)、大于等于(>=)、小于等于(<=),关系运算的结果是个boolean值。
(3)逻辑运算符:也返回一个boolean值。
1) 逻辑与:使用&&表示,逻辑与是个双目运算符(即有两个操作数的运算符),只有当两个操作数都为真的时候,结果才为真;其余情况结果均为假。逻辑与表示的并且的意思。
2) 逻辑或:使用||表示,逻辑或也是个双目运算符,只有当两个操作数都为假的时候,结果才为假;其余情况结果均为真。逻辑或表示或者的意思。
逻辑运算符的短路特性:
1) 逻辑与:如果第一个操作数为false,那么结果肯定就是false,所以在这种情况下,将不会执行逻辑与后面的运算了,即发生了短路。
2) 逻辑或:如果第一个操作数为true,那么结果肯定就是true,所在在这种情况下,将不会执行逻辑或后面的运算了,即发生了短路。
(4)变量的自增与自减运算:
1) 关于int b = a++,作用是将a的值先赋给b,然后再让a自增1。
2) 关于int b = ++a,作用是将a的值先自增1,然后将自增后的结果赋给b。
五、流程控制语句
if语句的三种形式:
第一种形式: if(布尔表达式) { //待执行的代码 } 第二种形式: if(布尔表达式) { //待执行的代码 } else { //待执行的代码 } 第三种形式: if(布尔表达式) { //待执行的代码 } else if(布尔表达式) { //待执行的代码 } else if(布尔表达式) { //待执行的代码 } else { //待执行的代码 }
switch语句的形式:
switch(变量) //此处的变量类型就目前所学内容来看,只能为4种类型:byte, short, int, char。 { case 常量1: //待执行的代码 break; case 常量2: //待执行的代码 break; case 常量3: //待执行的代码 break; default: //待执行的代码 }
虽然case语句中的break是可选的,但在绝大多数情况下,如果没有break,程序的逻辑就会发生错误,因此,通常情况下都需要加上break。
Java 中的循环控制语句一共有3种,分别是while,do… while以及for循环。
while循环语句形式为:
while(布尔表达式) { //待执行的代码 }
do...while循环语句形式为:
do { //待执行的代码 } while(布尔表达式);
while与do…while之间的区别:如果布尔表达式的第一次判断就为false,那么while循环一次也不执行;do…while循环则会执行一次。如果布尔表达式第一次判断为true,那么while循环与do…while循环等价。
for循环的语句形式为:
for(变量初始化; 条件判断; 步进) { //待执行的代码 }
for循环的执行过程:
1) 执行变量初始化。
2) 执行条件判断。如果条件判断结果为假,那么退出for 循环,开始执行循环后面的代码;如果条件判断为真,执行for循环里面的代码。
3) 执行步进。
4) 重复步骤2。
增强for循环,又称为foreach循环,为JDK1.5新增语法:
for(元素类型 t 元素变量x :遍历对象A) { 引用了x的Java语句 }// 如果遍历对象A是数组的话,则变量x的类型必须与数组类型相同
foreach循环的局限性:虽然foreach在循环遍历上要比for语句来的简便,但在很多情况下,还是需要使用传统的for循环。例如:如果不希望遍历整个集合,或者在循环内部需要操作下标值就需要使用传统的for循环。
break语句:经常用在循环语句中,用于跳出整个循环,执行循环后面的代码。
continue语句:经常用在循环语句中,用于跳出当前的这个循环(或者是跳出本次循环),开始下一次循环的执行。
break与continue可以搭配标签使用,在实际开发中,根本没有人会将break与continue搭配标签来使用。