【标识符】

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

 

Java标识符命名规则:

<1>由字母、数字、下划线"_"和美元符"$"组成(不能有空格);

<2>以字母、下划线、$开头;

<3>对大小写敏感,长度无限制。

 

【关键字】

Java关键字都是小写。

goto和const虽然从未被使用,但也作为Java关键字保留。

 

【Java常量】

Java的常量用字符串表示,区分为不同的数据类型:

<1>整型常量:123

<2>实型常量:1.23

<3>字符常量:'a'

<4>逻辑常量:true false

<5>字符串常量:"hello"

【注意】"常量"还会用在其他语境中,表示值不可变的变量(--变量赋值后,不允许改变,例如final)。

 

【变量】

<1>Java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域。

<2>Java程序中每个变量都有特定的数据类型,在使用前必须对其声明,格式如下:

       type varName  = value ;

【注意】

变量实际上是内存上的一小块区域,使用变量名访问这块区域,因此,每个变量使用前必须要先申明[声明],然后必须进行赋值[填充内容],才能使用。

 

【分类】

局部变量:方法或语句块内部定义的变量(方法参数列表中的形参也属于局部变量)。

成员变量:方法外部、类的内部定义的变量。

【注意】

类外面(即与类对应的大括号外面)不能有变量声明,即不存在C++中的全局变量的概念,原因在于Java是纯面向对象的语言,只要出现变量,必须是在对象class内部声明。

 

【程序执行过程】

 

java符号常量类 java定义符号常量的关键字_Java

<1>放置在硬盘上的可执行文件只有加载到内存中才能运行(加载后存放在内存的cod segment中);

<2>实际代码的运行还需要借助于操作系统的代码(已经加载在内存中);

<3>在code segment中找到main方法开始执行程序时,需要其余三部分的支持(heap、stack、data segment);

 

【数据类型】

 

java符号常量类 java定义符号常量的关键字_数据类型_02

注:逻辑型--布尔型  文本型--字符型

【内存中如何区分不同数据类型】

<1>在内存中所占大小不同;

<2>在内存中占用空间相同的,通过内部01布局区分。

 

【布尔型】

boolean类型数据只允许取true、false,不可以以0或非0的整数替代true和false,这点和C语言不同。

 

【字符型】

Java字符采用Unicode编码(全球语言统一编码),每个字符占两个字节,因而可用十六进制形式表示。

char c = '\u0061';    //这里\u表示Unicode编码

char c =125;//直接给出ASCII码值也可以

 

【整数类型】

<1>Java各整数类型有固定的表数范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移植性。

       (这也是C语言编译后不可移植的原因)

<2>Java语言整型常量有3种表示形式:

      a>十进制整数;

      b>八进制整数(要求以0开头);

      c>十六进制整数(要求以0x或0X开头)。

<3>Java语言的整型常量默认为int型,声明long型常量可以在后面加上"l"或"L"。

       int i = 88888888888888888L;

       //必须加L,否则会出错

 

java符号常量类 java定义符号常量的关键字_赋值_03

【注意】

<1>在java中没有无符号的整数(C++里面有unsigned int类型)。

<2>以byte为例,Java中byte单独拿出一位作为该数的符号(即正负数),因此表示的范围为:-128~(128-1)。

 

【浮点类型】

<1>Java浮点类型有固定的表数范围和字段长度,不受平台影响。

<2>有两种表示方式:

       a>十进制形式:3.14

       b>科学计数法形式:3.14e2

<3>浮点类型默认是double类型,如果要声明一个float类型,则需在数字后面加上f或F。

       float f = 12.3f;

       //必须加上F,否则出错

 

java符号常量类 java定义符号常量的关键字_Java_04

注:计算机中浮点数是离散的,实际中是连续的,因此由于计算机精度的问题,造成存在误差。

       因此在实际程序中很少会涉及到浮点数之间的比较,而把其差作为比较对象。

 

【数据类型转换】

<1>boolean类型不可以转换为其他数据类型;

<2>整型、字符型、浮点型的数据在混合运算中相互转换,转换时遵循以下原则:

       a>容量小的类型自动转换为容量大的类型,数据类型按照容量大小排序为:

            (这里的容量大小指的是表示的数的大小,而不是在内存中所占大小,比如long和float)

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

            byte,short,char之间不会相互转换,它们三者在计算时首先会转换成int类型

            举例:

            byte b1 = 1;

            byte b2 = 2;

            byte b3 = (byte)(b1+b2);

           //执行b1+b2操作时,两个byte类型数据都会转换为int类型,其结果是int类型,而不是byte类型,因此需要强制类型转换

 

       b>容量大的类型转换为容量小的类型时,要加上强制类型转换符,但可能造成精度降低或溢出,使用时要格外注意!

                 

       c>有多种类型数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算

       d>实数常量默认为double

       e>整数常量默认为int

 

【重要区别】

  (1)区别1

  byte b1 = 67;

  byte b2 = 89;

  byte b3 = (byte)(b1+b2);

  上述程序输出b3时会显示:b3=-100

  分析:

  b1+b2后会超出byte类型的表数范围,在内存中int类型4个字节,byte类型1个字节,要将int转换成byte只需要把多余3个字节

  截去即可,剩下的那个字节是多少结果就认为是多少。

 

  double d1 = 1e200;

  float f1 = (float)d1;

  上述程序输出f1时会发生溢出

  分析:

  浮点型数据在计算机内部用特殊的形式表示,专门在中间存储了一个小数点,来计算小数点后有几位数,所以直接截取是转换不

 过来的(这样内部的格式就不对了)。

(2)区别2

 float f1 = (float)0.1;

 //0.1占8个字节,强制转换为4个字节

 float f1= 0.1f;

 //0.1f本身就是4个字节

 

 

找出是否存在错误:

 

java符号常量类 java定义符号常量的关键字_数据类型_05

<1>float f1=0.1;                      出错,0.1为double

<2>long l2=88888888888L;

<3>byte b3 = 129;                   出错

<4>j=j+10;                               j未赋值

<5>i=i/10;                                计算结果为0

<6>i=i*0.1;                               0.1为double类型,double赋值为int类型i会出错

<7>byte b = b1-b2;                  b1-b2为int类型,赋值给byte会出错

<8>char c = c1+c2-1;              出错,相当于int类型赋值给char

<9>float f4 = f1+f2*0.1;           0.1为double类型          

 

【格式】

<1>大括号对齐;

<2>遇到"{"缩进,Tab/Shift+Tab(往回缩的时候用:Shift+Table);

<3>程序块之间加空行;

<4>并排语句之间加空格(public class HelloWorld {}--在HelloWorld后加空格);

<5>运算符两侧加空格;

<6>"{"前有空格;

<7>成对编程(防止遗漏"}")。

 

【运算符】

(1)自加和自减运算符

 

java符号常量类 java定义符号常量的关键字_Java_06

 

(2)逻辑运算符

 

java符号常量类 java定义符号常量的关键字_Java_07

 

(3)赋值运算符和拓展赋值运算符

 

java符号常量类 java定义符号常量的关键字_赋值_08

 

(4)字符串连接符

 

java符号常量类 java定义符号常量的关键字_数据类型_09

 

(5)表达式

 

java符号常量类 java定义符号常量的关键字_数据类型_10

 

(6)三目条件运算符

 

java符号常量类 java定义符号常量的关键字_数据类型_11

 

【语句】

(1)条件语句

        if/if...else/if...else if/if...else if...else if...else/switch

 

(2)循环语句

        for(JDK1.5引入新语法)/while/do...while

 

  a> for循环语句

 

java符号常量类 java定义符号常量的关键字_数据类型_12

 

 

java符号常量类 java定义符号常量的关键字_赋值_13

 

  b>while与do-while语句

 

java符号常量类 java定义符号常量的关键字_Java_14

 

  c>break与continue语句

 

java符号常量类 java定义符号常量的关键字_Java_15

 

【相关程序】

 

java符号常量类 java定义符号常量的关键字_数据类型_16

 

  

  d> switch语句

 

java符号常量类 java定义符号常量的关键字_Java_17

 

注:

<1>switch语句中可以是int类型的值,也可以是char、short、byte类型的值(转换成int类型);

<2>不要忘记使用break语句。

 

【方法】

C/C++中称为函数,Java中称为方法。

 

java符号常量类 java定义符号常量的关键字_赋值_18