java中如何定义基元数据类型的变量

时间:2019-04-29 03:17:54  来源:igfitidea点击:

我们将看到哪些是原始数据类型,如何定义变量,哪些是变量默认值,以及我们可以给这些变量起什么名字。

在Java中有两种类型的变量:

  1. 基元数据类型(原始的)

  2. 对象或引用

在本教程中,我们主要关注基元数据类型的变量。 对象(引用类型变量)将在关于类的教程中进行描述。

基元类型是不能分解为其他子类型的基本数据类型。

Java基元数据类型(primitive data types)

在Java6中有8种基元数据类型:

数据类型大小符号值范围类别
byte1 字节-128 –> 127整数
short2 字节-32768 –> 32767整数
int4 字节-2147483648 –> 2147483647整数
long8 字节-9,223,372,036,854,775,808 –> 9,223,372,036,854,775,807整数
float4 字节7位有效数字浮点数
double8 字节15位有效数字双精度数
char2 字节’\u0000’ –> ’\uffff’
0 –> 65535
16位 Unicode 字符
boolean1 位true or false逻辑值

定义变量

在Java中,变量是使用以下语法定义的:

variable_type variable_name;

其中 :
variable_type–八个基元数据类型或类class定义的类型之一;
variable_name–程序员定义的变量名;

如何在Java中定义变量:

  1. 变量名必须以字母、下划线符号(_)或美元符号($)开头;

  2. 变量名不能以数字开头;

  3. 在第一个字符之后,可以在变量名中使用数字;

  4. 变量名不能是Java语言保留的关键字;

  5. 可以同时定义多个变量;

public class Variables {

  public static void main()

  {

      // 正确定义的变量

      int vb1,vb2;

      float fvb2;

      double _temp;

      boolean $flag;

      //错误定义的变量 将会报编译错误

      byte 3vb;       // 以数字开头

      long for;       // 使用了java关键字

  }

}

变量名由程序员选择,但为了提高效率,在Java中有一个关于变量名的建议;

  1. 这个约定是从变量名派生出来的,就是说变量名要有意义,
  2. 如果它们由几个单词组成,第一个单词用小写字母拼写;从第二个单词开始,每个单词的第一个字母都大写;
  3. 另外,作为建议,布尔变量应该以is开头(例如boolean isNumber;)

如何在Java中初始化变量

在初始化变量时,应该考虑变量的类型,因为在Java中,不可能分配与变量类型不同的值。
从这个观点来看,Java是强类型语言(而Visual Basic不是)。

例如,以下语句将报编译错误,因为可能会导致精度损失:

float vb2 = 23.5;           //编译错误 - 可能导致精度丢失

int vb3 = 45.6;             //编译错误 - 可能导致精度丢失

boolean test = 23;          //编译错误  - 不兼容的类型

在定义float类型变量 vb2时,由于默认情况下 浮点数常量值被视为 double,所以会生成编译器错误。
正确的方法是在值的末尾加上一个 f,即 float vb2 = 23.5f;

  • 值的类型必须与变量类型相同;

  • 可以同时初始化多个变量;

  • 在Java中,布尔变量的唯一可能值是true或false(在C或C++中,除0以外的任何数值都被视为true);

  • 浮点常量值最后用符号 f定义,因为,隐式地,浮点数常量被认为是双精度的;

  • 字符符号定义在“'”之间(单引号),而不是“"”之间(引号);

  • 实数值可以用科学的格式定义,例如1.234e2等于123.4;

  • 基数8中的整数值以0为前缀,例如021等于十进制的17;

  • 以16为基数(十六进制表示)的整数值以x为前缀,例如0×11等于十进制的17;

  • char变量可以有一系列特殊字符作为值,转义序列:

转义序列
\b退格符
\t制表符
\n换行
\f换页符
\r回车
\"双引号
\'单引号
\\反斜杠

使用基元数据类型正确初始化的变量示例:

int value1;

      int value2;

      value1 = value2 = 17;

      int  valueB8 = 021;

      int valueB16 = 0x11;

      float value3 = 123.4f;

      double value4 = 123.4;

      char c = 'a';

      char enter = '\r';

      boolean isNumber = true;

      long value5 = 17L;

``` 

#### Java中变量的默认值是什么

如果变量没有初始化,那么编译器可以用默认值初始化它们( **但是,并非在所有情况下都是这样!)!**  )

基元数据类型 | 默认值
--------|-------
byte | 0
short | 0
int | 0
long | 0L
float | 0.0f
double | 0.0d
char | '\u0000'
boolean | false

 **重要!**局部变量(在方法中定义)不是由编译器用默认值初始化的。
 上表中的默认值用于对象(类中定义的变量)的属性、字段。
 使用未初始化的局部变量将生成编译器错误:

``` plain
public static void main(){
   int sum;		// 在main方法中声明的局部变量
   sum = sum + 10;     //编译错误
}