一.常量
和数学题中的常数大概是一个意思
就是在程序运行中不会变化的量
例如:
public class void test1{
public static void main(String[] args) {
System.out.println("Hello World!!!");
}
}
“Hello World!!!”就是常量 他不会改变
往后学习就知道 常量声明时一般用final修饰
二.数据类型和变量
2.1 数据类型分类
2.1.1
Java的数据类型分为两大类:(不是基本就是引用,没有其他的)
基本数据类型 :(四类八种)
整数 :byte、short、int(默认)、long
浮点数 :float、double(默认)
符 :char
布尔 :boolean
引用数据类型 :包括 字符串、 类 、 数组 、 接口、Lambad 。
注意事项:
1. 字符串不是基本类型,而是引用类型。
2. 浮点型可能只是一个近似值,并非精确的值。
3. 数据范围与字节数不一定相关,例如float数据范围比long更加广泛,但是float是4字节,long是8字节。
4. 浮点数当中默认类型是double。如果一定要使用float类型,需要加上一个后缀F。
如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L。推荐使用大写字母后缀。
定义所有基本数据类型的变量,代码如下:
public class Variable {
public static void main(String[] args){
//定义字节型变量
byte b = 100;
System.out.println(b);
//定义短整型变量
short s = 1000;
System.out.println(s);
//定义整型变量
int i = 123456;
System.out.println(i);
//定义长整型变量
long l = 12345678900L;
System.out.println(l);
//定义单精度浮点型变量
float f = 5.5F;
System.out.println(f);
//定义双精度浮点型变量
double d = 8.5;
System.out.println(d);
//定义布尔型变量
boolean bool = false;
System.out.println(bool);
//定义字符型变量
char c = 'A';(不要和字符串(String)的""弄混了)
System.out.println(c);
}
}
2.1.1
1 基本数据类型之间的转换分为以下两种:
- 自动类型转换
强制类型转换
特殊:boolean 类型不能转换成任何其它基本数据类型。
2 自动类型转换:数据类型取值范围小的转为取值范围大的
- byte —> short—>int—>long—>float —>double
- char—> int
- byte,short,char三者在计算时会转换成int类型 (了解)
- int整型常量和字符常量在合理范围内可以直接赋值给 byte、short、int、char (了解)
3.强制类型转换:数据类型取值范围大的转为取值范围小的. 需要加强制转换符,也就是要转换的数据类型。(我理解强制类型转换只适用于基本数据类型之间,和父子转型中。。。暂时先这么写吧)
long l = 100L;
int i = (int) l;
但有可能造成精度降低或数据溢出,使用时要小心。
2.2 变量
2.2.1 变量的声明、初始化
变量:程序运行期间,内容可以发生改变的量。
创建一个变量使用的格式:
数据类型 变量名称;//创建了一个变量 (声明)
变量名称 = 数据值;//赋值,将右边的数据值,赋值交给左边的变量 (初始化/赋值)
举例:int i;
i=100;
i=200;
声明同时赋值
数据类型 变量名 = 变量值;
int j=20;
2.2.2 局部变量和成员变量
1.声明的位置不同: 局部变量的作用域就是它所在的方法或语句块 成员变量的作用域是整个类体。
2. 是否拥有默认值: 成员变量有默认值 局部变量没有默认值
public class Test5 {
int i;
public static void main(String[] args) {
Test5 test5 = new Test5();
int a = 0;
System.out.println(test5.i);
System.out.println(a);
}
}
可以看到成员变量i没有赋值但是就有默认值,但是局部变量a没有默认值,必须初始化
1、在类中位置不同:成员变量:在类中方法外。局部变量:在方法定义中或者方法声明上。
2、在内存中的位置不同:成员变量:在堆内存。 局部变量:在栈内存。
3、生命周期不同:成员变量:随着对象的创建而存在,随着对象的消失而消失。 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失。
4、初始化值不同:成员变量:有默认值初始化。局部变量:没有默认值初始化,必须定义,赋值,然后才能使用。
5、注意事项:局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则