task2打卡:数据类型与变量

1.1 基本数据类型

Java属于强类型语言,强类型语言必须为每一个变量声明一种类型。

Java中基本数据类型也称做简单数据类型,包括以下八种

1、整型

byte 、short 、int 、long

2、浮点型

float 、 double

3、字符型

char

4、布尔型

boolean

1.1.1 整型

整型(byte、short、int、long)

整型数据有四种,它们的取值范围不同

byte 的取值范围:-128~127(-2的7次方到2的7次方-1)

short 的取值范围:-32768~32767(-2的15次方到2的15次方-1)

int 的取值范围:-2147483648~2147483647(-2的31次方到2的31次方-1)

long 的取值范围:-9223372036854774808~9223372036854774807(-2的63次方到2的63次方-1)

1.1.2 浮点型

浮点型包括float和double两种,区别在与精度,float是单精度、32位、符合IEEE 754标准的浮点数;double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数。

float(单精度浮点型)取值范围:3.402823e+38~1.401298e-45

double(双精度浮点型)取值范围:1.797693e+308~4.9000000e-324

java对于浮点型数据默认会使用double。

1.1.3 字符类型

char 类型是一个单一的 16 位 Unicode 字符;

最小值是 \u0000(十进制等效值为 0);

最大值是 \uffff(即为 65535);

char 数据类型可以储存任何字符;

1.1.4 布尔类型

布尔类型只有两个取值,分别是true 、false 。

java默认是false。

1.2 变量

1.2.1 变量类型

java属于强类型语言,所以变量在使用前必须进行声明,以下是几个声明与赋值的示例:

int a, b, c;         // 声明三个int型整数:a、 b、c
int d = 3, e = 4, f = 5; // 声明三个整数并赋予初值
byte z = 22;         // 声明并初始化 z
String s = "runoob";  // 声明并初始化字符串 s
double pi = 3.14159; // 声明了双精度浮点型变量 pi
char x = 'x';        // 声明变量 x 的值是字符 'x'。

java有三类变量,分别是:

  • 类变量:独立于方法之外的变量,用 static 修饰。
  • 实例变量:独立于方法之外的变量,不过没有 static 修饰。
  • 局部变量:类的方法中的变量。

public class var{ static int lei_var; // 类变量 String str=“hello world”; // 实例变量 public void test(){ int local_var =0; // 局部变量 } }

局部变量

如果在成员方法中定义一个变量,那么这个变量就被称为局部变量。

局部变量在方法实行时被创建,在方法执行结束的时候被销毁。局部变量在使用时必须进行赋值操作或被初始化,否则出现编译错误。

例如,我们创建一个类文件,在该类中定义getName()方法,在getName()方法中声明int型的局部变量id,并赋值为0,代码如下:

public class BookText(){ public String getName(){ int id = 0; //局部变量,如果我们把初始值去掉,会报错 setName(“Java”); //调用类中的其他方法(此类中省略定义方法) return i + this.name; } }

==注意:== 类成员变量和成员方法可以统称为类成员。如果一个方法中含有与成员变量同名的局部变量,则方法中对这个变量的访问以局部变量的值为基准。例如,变量id在 getName()方法中值为0,而不是成员变量中id的值。

局部变量的作用域,即局部变量的有效范围,下图描述了局部变量的作用范围。

public void doString(String name){ int id = 0; for(int i = 0; i< 10; i++) System.out.println(name + String.valueOf(i)); }

在相互不嵌套的作用域中可以同时声明两个名称和类型相同的局部变量,如下图

public void doString(String name){ int id = 0; for(int i= 0; i<10; i++){ System.out.println(name + String.valueOf(i)); } for (int i= 0; i <3; i++) System.out.println(i); }

但是在相互嵌套的区域中不可以这样声明,如果将局部变量id在方法体的for循环中再次定义,编译器将会报错,如图所示。

public void doString(String name){ int id = 0; for(int i= 0; i<10; i++) System.out.println(name + String.valueOf(i)); for(int i = 0; i<3; i++) System.out.println(i); int id = 7; }

==注意:== 在作用范围外使用局部变量是一个常见的错误,因为在作用范围外没有声明局部变量的代码。

实例变量

也叫类成员变量,声明在一个类当中,方法、构造方法和语句块之外。实例变量的生命周期与对象一致。

类变量/静态变量

类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外。无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。生命周期与类一致。