1.关键字

AJava关键字是Java语言保留供内部使用的,如 class 用于定义类。 关键字也可以称为保留字,它们的意思 是一样的。是被系统征用的特殊单词(标识符),而且是被广大程序员所认知的。

 goto和const作为保留字存在。

类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记

不能使用关键字作为变量名或方法名

2. 标识符

就是给类,接口,方法,变量等起名字的字符序列。用来查找、定位、标明、唯一确认内容。

  ·表示类名的标识符用大写字母开始。如: Man , GoodMan

  ·表示方法和变量的标识符用小写字母开始,后面的描述性词以大写开始。 eat() , eatFood()

Java 标识符有如下命名规则:

    标识符必须以字母、下划线_ 、美元符开头。

    标识符其它部分可以是字母、下划线“_”、美元符“ ”和数字的任意组合。

    Java 标识符大小写敏感,且长度无限制。

    不可以是Java的关键字 JAVA不采用通常语言使用的ASCII字符集,而是采用unicode这样的标准的国际字符集。因此,这里的字 母的含义:英文、汉字等等。(不建议大家使用汉字来定义标识符!)

合法的标识符

int a = 3;
int _123 = 3;
int $12aa = 3;
int 变量1 = 55;

不合法的标识符

int 1a = 3; //不能用数字开头
int a# = 3; //不能包含#这样的特殊字符
int int = 3; //不能使用关键字

3. 变量(variable)

     我们通过变量来操纵存储空间中的数据,变量就是指代这个存储空间!空间位置是确定的,但是里面放 置什么值不确定!

  Java是一种强类型语言,每个变量都必须声明其类型。

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

     变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储单元,声明格式 为:

type varName [=value] ;

   注意事项:

   每个变量都有类型,类型可以是基本类型,也可以是引用类型。 变量名必须是合法的标识符。       变量声明是一条完整的语句,因此每一个声明都必须以分号结束。 

   变量声明举例

double salary ;
boolean done;
long earthPopulation ;
int age ;

可以在一行中声明多个变量

int i ,j; // both are integer

不提倡这种风格,逐一声明每一个变量可以提高程序可读性

     可以将变量的声明和初始化放在同一行中,例如

int age = 18;
float e = 2.718281828f;

    实例变量(成员变量 member variable):方法外部、类的内部定义的变量。从属于对象,生命周 期伴随对象始终,如果不自行初始化,他会自动初始化成该类型的默认初始值(数值型变量初始化成 0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false) 静态变量(类变量 static variable):使用static定义。 从属于类,生命周期伴随类始终,从类加 载到卸载。 (注:讲完内存分析后我们再深入!先放一放这个概念!),如果不自行初始化,他会自动 初始化成该类型的默认初始值(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0, 布尔型默认是false)

说明以下的变量分别是什么类型的变量(局部、静态、实例),分别是声明还是定义亦或是其他操作

public class LocalVariableTest {
   public static void main(String[ ] arg) {
   boolean flag = true;
   char c1, c2;
   c1 = '\u0041';
   c2 = 'B';
   int x;
   x = 9;
   int y = x;
   float f = 3.15f;
   double d = 3.1415926;
   }
}

4. 常量(Constant) 常量:

初始化(initialize)后不能再改变值!

public class Constants {
  public static void main(String[] args) {
  final double PI = 3.14;
  // PI = 3.15; //error
  double r = 4;
  double area = PI * r * r;
  double circle = 2 * PI * r;
  System.out.println("area = " + area);
  System.out.println("circle = " + circle);
  }
}

5. 命名规则(规范)

     所有变量、方法、类名:见名知意

     类成员变量:首字母小写和驼峰原则 : monthSalary

     局部变量:首字母小写和驼峰原则

     常量:大写字母和下划线:MAX_VALUE

     类名:首字母大写和驼峰原则: Man, GoodMan

     方法名:首字母小写和驼峰原则: run(), runRun()

   6. 基本数据类型(primitive data type)

       Java是一种强类型语言,每个变量都必须声明其类型。

       Java的数据类型分为两大类:基本类型(primitive type)和引用类型(reference type)

       Java中定义了3类8种基本数据类型

             逻辑型-boolean

             文本型- char

             数值型- byte, short, int, long, float, double

 注:引用数据类型的大小统一为4个字节,记录的是其引用对象的地址!

6.1. 整型

    整型用于表示没有小数部分的数值,它允许是负数。

    整型的范围与运行Java代码的机器无关,这正是Java程序具有很强移植能力的原因之一。于此相反,C和 C++程序需要针对不同的处理器选择最有效的整形

 Java 语言整型常数的三种表示形式:

        十进制整数,如:99, -500, 0。

        八进制整数,要求以 0 开头,如:015。

        十六进制数,要求 0x 或 0X 开头,如:0x15 。

Java语言的整型常数默认为int型,声明long型常量可以后加‘ l ’或‘ L ’ ,如:

long a = 55555555; //不出错,在Int表示的范围内(21亿内)。
long b = 55555555555;//不加l出错,已经超过int表示的范围。

Java中没有无符号类型

6.2. 浮点型

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

十进制数形式,例如: 3.14 314.0 0.314

long a = 55555555; //不出错,在Int表示的范围内(21亿内)。

long b = 55555555555;//不加l出错,已经超过int表示的范围。

 科学记数法形式,如 314e2 314E2 314E-2

    浮点类型float, double的数据不适合在不容许舍入误差的金融计算领域。 如果需要进行不产生舍 入误差的精确数字计算,需要使用BigDecimal类。

   主要理由:由于字长有限,浮点数能够精确表示的数是有限的,因而也是离散的。浮点数一般都存 在舍入误差,很多数字无法精确表示(例如0.1),其结果只能是接近, 但不等于。

   二进制浮点数不能精确的表示0.1,0.01,0.001这样10的负次幂。并不是所有的小数都能可以精确的 用二进制浮点数表示。最好完全避免使用浮点数比较:

double f = 314e2; //31410^2-->31400.0
double f2 = 314e-2; //31410^(-2)-->3.14
float f = 0.1f;
double d = 1.0/10;
System.out.println( f d); //false
float d1 = 423432423f;
float d2 = d1+1;
if(d1 d2){
System.out.println("d1==d2");
}else{
System.out.println("d1!=d2");
}

大数值:

    Java.math下面的两个有用的类:BigInteger和BigDecimal,这两个类可以处理任意长度的数 值,BigInteger实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点运算。

    浮点数使用总结:

       1. 默认是double

        2. 浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计 算,需要使用BigDecimal类避免比较中使用浮点数。

6.3. 字符型

   单引号用来表示字符常量。例如 ‘A’ 是一个字符,它与 “A” 是不同的, “A” 表示含有一个字符的字符 串。 

   char 类型用来表示在 Unicode 编码表中的字符。

   Unicode 编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536 个字符;ASCII码占 1个字节,可允许有128个字符,是Unicode编码表中前128个字符。

char eChar = 'a';
char cChar ='中';

    Unicode具有从0到65535之间的编码,他们通常用从 ’\u0000’ 到 ’\uFFFF’ 之间的十六进制值来表示(前 缀为u表示Unicode)

char c = '\u0061';

Java 语言中还允许使用转义字符 ‘\’ 来将其后的字符转变为其它的含义

char c2 = '\n'; //代表换行符 •

 注:以后我们学的String类,其实是字符序列(char sequence)

6.4. boolean类型

   boolean类型有两个值,true和false,不可以 0 或非 0 的整数替代 true 和 false ,这点和C语言不 同。

   boolean 类型用来判断逻辑条件,一般用于程序流程控制 。

   大小占一位,不是一个字节

boolean flag ;
flag = ………;
if(flag) {
// true分支
} else {
// false分支
}

     实践:Less is More!!请不要这样写:if ( is == true && done == false ) ,只有新手才那么写。 对于任何程序员 if ( whether && !done ) 都不难理解吧。所以去掉所有的==fasle 和 ==true。

更多推荐

java声明变量