《从JAVA到Android》JAVA篇之认识JAVA

时间:2023-02-16 20:12:17

《从JAVA到Android》JAVA篇之认识JAVA

  • 标识符和关键字
  • 基本数据类型
  • 常量与变量
  • 运算符
  • 数据类型转换
  • 注释及代码编写规范等

转载请注明 —— [ 肖义熙 ]

1、标识符和关键字

通俗的讲,标识符就是程序员自己起的一个名称(包括变量名,类名,方法名等等),而关键字是在JAVA语言中已经被赋予某种特定含义的一些单词。例如:

int i = 0;  //这里的i是程序员命名的 int是JAVA本身赋予的代表基本数据类型中的整数

当然,标识符不是随意命名的,它是有一定规则的,建议程序员们按照规则来命名自己所需要的标识符。

标识符命名规则

(1)标识符由字母、数字、下划线以及美国佬的美元符号组合而成,但是一定不允许以数字开头。例如:

int age = 23;   //合法
String my_name = xiao;      //合法
int a1_1 = 0;   //合法
int 1a = 0//非法

(2)JAVA使用的Unicode标准字符集,最多可以识别65535个字符,标识符可以使用其中的任意字符,包括中文。但是建议不使用中文,避免出现不必要的错误,毕竟这是老外的东西。
(3)标识符虽说是任意字符组合,但是不能是JAVA语言中已经赋予某种特定含义的关键字以及保留字,如:this,int,goto等。
(4)JAVA中标识符区分大小写,例如:age和Age是不同的标识符。

关键字

JAVA中包含的关键字如下表:
《从JAVA到Android》JAVA篇之认识JAVA

2、基本数据类型

JAVA的基本数据类型有八种,如下:
《从JAVA到Android》JAVA篇之认识JAVA

(1) 整数类型

按照内存所占位数从小到大排列
1、byte类型:其所占内存空间最小,只占8位即1个字节,取值范围-128~127,在使用时注意不要超出范围。
2、short类型:在内存中占16位即2个字节,取之范围为-32768~32767之间,虽然取值范围变大,但是依然不是最常用的。
3、int类型:最常用的一个数据类型,其占32为即4个字节,取值范围为-2147483648~214783647之间
4、long类型:长整型,在对long类型赋值时必须在末尾加上L或者l,系统为long类型分配64位即8个字节。
在整型数据中,按常用度来分:int>byte>long>short

(2) 浮点类型

有整数就应该有小数,浮点类型的来表示小数的。分为双精度和单精度(double/float)。
(1)在float型变量进行赋值时,必须在末尾加F或f,否则系统将会自动将其定义为double类型数据,float类型数据取值范围:1.4E-45和3.4028235E-38之间。
(2)double型变量进行赋值时,可加可不加D或d,double比float的取值范围大,其取值范围:4.9E-324和1.79769311348623157E-308。

注意:

浮点类型数据做运算可能出现意想不到的结果。
原因可能float类型数据占内存8位,而double类型占16位,相加结果会自动转换位16位数据,故会在末尾补一些数。例:

public class SumNumber {
    /** * 浮点类型数据运算 * @param args */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        float f1 = 13.23f;
        double d1 = 4562.12d;
        double d2 = 45678.1564;
        System.out.println("相加结果可能出现意想不到的结果:"+(f1+d1+d2));
    }
}
//运行结果可能是:"相加结果可能出现意想不到的结果:50253.50639954224"

(3) 字符类型

字符类型即char类型,用于存储单个字符。系统分配16位即两个字节的内存存储空间,定义变量赋值时需要用单引号“‘‘“引起来如: char c = ‘a’;需要注意的是:在unicode表中a排列的位置在97,故也可以这样定义 char c = 97;

在字符类型中还有一种特殊的字符-转义字符,以”\”开头,如:\n代表回车换行等。详情如下:
《从JAVA到Android》JAVA篇之认识JAVA

(4) boolean类型

布尔类型即boolean,通常用于流程控制中if的判断条件。boolean类型只有两个值:true和false,分别代表逻辑真和逻辑假

3、变量与常量

变量顾名思义即可变的量,那么常量就是常用的量,在程序执行过程中不会变化的量称为常量。变量和常量都需要使用合法标识符进行声明后才可以进行使用。

(1)变量声明

变量声明是为了告诉编译器这个变量属于哪种数据类型,编译器告诉计算机分配多少内存空间,以及存放的内容,存放在哪里等,变量名称必须是合法的标识符。在声明变量过程中,可以赋值,也可以不赋值。
变量名是有程序员命名的,但是也是有一定规范的。
I 首先变量名必须是标识符,规则参照标识符。
II 变量名不能重复
III 尽量选择有含义的单词来命名变量名,增加代码可读性以及后续维护等。

(2)变量有效范围

变量的有效范围是指程序代码中能够访问该变量的区域。按照这样区分将变量分为成员变量和局部变量。

I 成员变量:
在类体中定义的变量称为成员变量,有效范围为整个类。成员变量又分为实例变量和静态变量:

public class Test{
    public int i = 0;  //定义一个实例变量
    public static m = 0;  //定义一个静态变量,由于数据共享
}
//若其他类想要访问Test中的m,只需要Test.m就可以直接访问。

II 局部变量
在类的方法中定义的变量称为局部变量,局部变量的有效范围只在方法体(代码块)中有效,在范围之外的地方无法访问。当方法被调用的时候,内存中开始分配局部变量的存储空间,当该方法结束的时候,该局部变量销毁,内存空间将被释放。

public class Test{
    public int i = 0;  //定义一个实例变量
    public static m = 0;  //定义一个静态变量,由于数据共享
    public static void main(String[] args){
        int m = 1;  //定义一个局部变量
        System.out.println("局部变量m的值为:"+m);
        System.out.println("静态变量m的值为:"+Test.m);
    }
}
//结果为:局部变量m的值为1 静态变量m的值为:0

注:局部变量可与成员变量名字相同,但是此成员变量在局部变量所在方法体中是不可见(失效的),如果想要试用成员变量,必须使用:类名.静态变量。如:Test.m;

4、运算符

I 赋值运算符 “=”

这个符号并不是数学中简单的等于。赋值运算符是一个二元运算符,功能是将右边的结果赋值给左边。如:

变量类型 变量名 = 结果(所需要赋的值);

左边必须是一个变量,右边可以是变量,数值,表达式,常量等等。在JAVA中,运算符可以连用。例如:

int a = 0;
int b = a;
int c = a+b;
int x,y,z;  //定义三个变量
x = y = z = 0;//连用顺序是从右到左

II 算数运算符

JAVA中主要的算数运算符有:+(加)、-(减)、*(乘)、/(除)、%(取余),且都是二元运算符。加减乘不用说,但是在JAVA中的除和取余必须说明一下。

/(除),只取整数,例如 103  得到的结果是3。
%(取余),只取余数,例如 103 得到的结果是1

注意:+-这两个符号如果不放在表达式中,放在一个变量的前面,则会被当作正负号来解释,如-1,+5等。同时0不能作为除数,这和数学中一样,否则系统将会抛出异常。

III 自增自减运算符

++/–运算符,使用它的只能是整数类型或浮点类型。放在操作元前后是有区别的,例如:

int a = 0;      //此时a=0
int b = a++;    //此时b=0,a=1 将a先赋值给b后,a+1
int c = ++b;    //此时b=1,c=1 将b+1后赋值给c
System.out.println("a,b,c的值分别为:"+a+" "+b+" "+c);
//以上程序输出的内容将是:
//a,b,c的值分别为:1,1,1

IV 比较运算符

比较运算符有 >、<、==、>=、<=、!=。主要用于程序中的变量和变量之间,变量和常量之间以及其它数据类型信息之间的比较。返回结果boolean类型。

《从JAVA到Android》JAVA篇之认识JAVA

IV 逻辑运算符

逻辑运算符包括&&(&)(逻辑与)、||(|)(逻辑或)、!(逻辑非)。针对数据类型为boolean,返回值类型也是boolean。使用逻辑运算符进行运算结果可能如下:
《从JAVA到Android》JAVA篇之认识JAVA
逻辑与及逻辑或又各分为两种情况
&&短路与:如果第一个条件不成立,则不会执行第二个条件。
||短路或:如果第一个条件成立,则不会执行第二个条件。

int a = 1;
int b = 1;
int c = 2;
(a==b) && (a==b)    //因为a==b为true,第一个条件成立,则会执行(a==b)
(a==c) && (a==b)    //因为a==c为false,第一个条件不成立,则不会执行(a==6)
(a==c) & (a==b)     //因为是非短路与,第一个条件虽然是false,同样会执行(a==b)
//逻辑或相同。

V 三元运算符

boolean a = 1<2 ? true : false //定义一个boolean类型变量a,值为三元运算符结果
//三元运算符:条件表达式或boolean ? 条件表达式A(值) : 条件表达式B(值)。当条件表达式或boolean值为true,则返回条件表达式A,反之相反。
//本例a的值为true

5、数据类型转换

(1)自动类型转换

基本数据类型混合运算时,会将其自动转换为同一种数据类型的数据,然后进行计算。自动类型转换遵循占用内存小的自动转换为占用内存大的数据类型的规则。例如:short类型与int类型混合计算时,会将short类型转换为int类型后再进行计算。如图:
《从JAVA到Android》JAVA篇之认识JAVA

(2)强制类型转换

强制类型转换使用:(类型),如:int a = (int) 1.1; 则a的值为1。
在强制类型转换过程中,切记不要超出数据类型的取值范围,否则会出现意想不到的结果。

注意:boolean不能进行强制类型转换。

6、注释及代码编写规范

三种注释方式,例如:

int a = 0; //单行注释,说明一下a的作用
/* 多行注释, 注释内容 ... */
/** * 文档注释 * 程序名称:xxx * 时间:xxx * 作者:xxx */

编写规范:
作为一个好的程序员,需要有一个好的代码编写习惯。
这里不多说~

从JAVA到Android第一篇到此结束了,养成写博客的习惯就从现在开始。