第二章 Java基本语法(上):变量与运算符

目录

1.关键字和保留字

2.标识符

3.变量

4.运算符

5.程序流程控制

 

2.1 关键字与保留字

2.1.1 关键字(keyword)

关键字的定义和特点:

定义:被Java语言赋予了特殊含义,用作专门用途的字符串(单词)。

特点:关键字中所有字母都为小写。

2.1.2 保留字(reserved Word)

Java保留字:现有Java版本尚未使用,但以后的版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字。

比如:goto、const等。

 

2.2 标识符(Identifier)

2.2.1 标识符:

  Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符;

  技巧:凡是自己可以起名字的地方都叫标识符,比如:类名、变量名、方法名、接口名、包名......

2.2.2 定义合法标识符规则:(强制遵守)

  由26个英文字母大小写,0-9,_或¥组成;

  数字不可以开头;

  不可以使用关键字和保留字,但能包含关键字和保留字;

  Java中严格区分大小写,长度无限制;

  标识符不能包含空格。

  注:如果不遵守以上规则,编译不通过。

2.2.3 Java标识符名称命名的规范:(只是建议大家遵守、或者约定俗成)

  包名:多单词组成时所有字母都小写;

  类名和接口名:多单词组成时,所有单词都首字母大写(大驼峰);

  变量名和方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写;

  常量名:所有字母都大写,多单词时每个单词用下划线连接。

  注意1:在起名的时候,为了提高阅读性,要尽量有意义,“见名知意”;

  注意2:Java采用Unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。

 

2.3 变量

>基本数据类型

>基本数据类型变量间转换

>基本数据类型与String间转换

>进制与进制间的转换

2.3.1 变量的概念:

  内存中的一个存储区域;

  该区域的数据可以在同一个类型范围内不断变化;

  变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值。(Java是强类型的语言)

2.3.2 变量的作用:

  用于在内存中保存数据;

2.3.3 使用变量时注意:

  Java的每一个变量必须先声明,后使用;

  使用变量名来访问这块区域的数据;

  变量的作用域:其定义所在的一对{}内;

  变量只有在其作用域内才有效,换句话说,出了定义域,它就失效了;

  同一种作用域内,不能定义重名的变量。

2.3.4 变量的使用:

  Java定义变量的格式:数据类型 变量名 = 变量值;(使用前未被定义或未被赋值,编译都会报错)

2.3.5 变量的分类-按数据类型分:

  对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分配了不同大小的内存空间。

  

  注:还有一种分类方式:按照变量声明的位置的不同分

  

2.3.6 整型类型:byte、short、int、long

  Java各整数类型有固定的表数范围和字段长度,不受具体OS影响,以保证Java程序的可移植性;

  Java的整型常量默认为int型声明long型常量须后加'l'或'L';如:long i1 = 232536457457L;(L只是声明,编译后L不显示)

  Java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long;

  byte   1字节   -128~127

  short  2字节  

  int      4字节

  long   8字节

  注:1byte = 8bit,bit是计算机中最小的存储单位,byte是计算机中基本存储单元。

2.3.7 浮点类型:float(单精度)、double(双精度)--------表示带小数点的数值

  与整数类型类似,Java浮点类型也有固定的表数范围和字段长度,不受具体操作系统的影响;

  浮点型常量有两种表示形式:

    >十进制数形式:如 5.12   512.0f   .512(必须有小数点);

    >科学计数法形式:如 5.12e2   512E2   100E-2;

  float:单精度,尾数可以精确到7位有效数字,很多情况下,精度很难满足需求;

  double:双精度,精度是float的两倍,通常采用此类型。  

  Java的浮点型常量默认为double型,声明float型常量,须后加'f'或'F'。

  单精度float    4字节 

  双精度double   8字节

2.3.8 char类型(1字符=2字节)

  定义char型变量,通常使用一对' ',内部只能写一个字符;

  表示方式:①声明一个字符;②转义字符(char c5 = '\n' 意思是声明一个换行符,\t为制表符Tab);

  直接使用Unicode值来表示字符型常量:'\uXXXX'。其中,XXXX代表一个十六进制整数。如:\u000a表示\n;

  char类型是可以进行运算的。因为它都对应有Unicode码。

 2.3.9 乱码的情况

乱码:世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号,因此,要想打开一个文本文件,

就必须知道它的编码方式,否则错误的编码方式解读,就会出现乱码。

Unicode:一种编码,将世界上所有的符号都纳入其中,每一个符号都给予一个独一无二的编码,使用Unicode

没有乱码的问题。

Unicode的缺点:只规定了符号的二进制代码,却没有规定这个二进制代码该如何存储;无法区分Unicode和ASCII;

计算机无法区分三个字节表示一个符号还是三个符号。另外,已知英文字母只用一个字节表示就够了,如果Unicode

统一规定,每个符号用三个或四个字节表示,那么每个英文字母前都必然有两到三个字节是0,造成存储空间的极大浪费。

UTF-8:是在互联网上使用最广的一种Unicode的实现方式。

 

 2.3.10 布尔类型(Boolean)

①只能取两个值中之一;

②常在条件判断、循环结构中使用;

2.3.11 基本数据类型之间的运算规则(不含boolean)

1.自动类型提升

  当容量小的数据类型变量和容量大的数据类型变量做运算时,结果自动提升为容量大的数据类型;

  说明:此时的容量大指的是,表示数的范围的大和小,比如:float容量要大于long的容量。

  byte、char、short --> int --> long --> float --> double

  注:当byte、char和 short三种类型的变量做运算时,至少需要用int类型变量接收。

2.强制类型转换

定义:自动类型提升运算的逆运算

强制转换方式:类型符 变量2 = (类型符)变量1 

例:double d1 = 12.3;

  int i1 = (int)d1;          //将double类型变量强制转换为int类型。(截断操作,可能会导致损失精度)

补充:

①long l = 123123;//定义long类型变量后面不加L声明,不会报错,因为编译系统默认把不加L的123123看成int型,

再把int型123123赋值给long型变量l;但如果不是123123,而是一个超出int范围的数,就会报错;

②float不行,后面必须要加F。

2.3.12 字符串类型:String

①String不是基本数据类型,属于引用数据类型

②使用方式与基本数据类型一致,例如:String str = "abcd";

③一个字符串可以串接另外一个字符串,也可以直接串接其他类型的数据。例如:

 str = str + "xyz";//连接运算

 int n = 100;

 str = str + n;

注:定义字符串时可以空,但定义char型变量不可以空。

④String可以和八种基本数据类型做运算,且运算只能是连接运算;运算的结果仍然是String类型;

2.3.13 关于进制

 

2.4 运算符

定义:运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。

主要有:算术运算符、赋值运算符、比较运算符(关系运算符)、逻辑运算符、位运算符(开发中用的不多)、三元运算符。

2.4.1 算术运算符

注:① %取余(取模)运算,结果符号与被模数的符号相同;

  ② (前)++:先自增1,再运算。(后)++:先运算,再自增1;

  ③  自增运算不会改变本身变量的数据类型(方便,开发中常用);

2.4.2 赋值运算符

=  +=   -=   *=   /=   %=  

(1)赋值符号:=

    int i2 = 10;

    int j2 = 10;

    等价于:int i2,j2;       //连续赋值

        i2 = j2 = 10;

  也可以这样:int i3 =10, j3 = 20;

(2)+=   -=

  int num1 = 10;

  num1 += 2;   //等价于 num1 = num1 +2;

  注意:num1 += 2不改变变量的数据类型,但num1 = num1 +2(变量类型不是int时)会改变数据类型!

小练习1:有几种方法实现变量+2的操作(前提:int num = 10)?

     方式一:num = num +2;(不推荐,因为可能改变变量数据类型)

     方式二:num += 2;(推荐,因为不改变变量数据类型)

小练习2:有几种方法实现变量+1的操作(前提:int num = 10)?

     方式一:num = num +2;

     方式二:num += 2;

     方式三:num ++;(推荐)

 

posted @ 2020-06-21 22:39  和而不同  阅读(157)  评论(0)    收藏  举报