一、数据类型、变量、常量
强类型语言和弱类型语言
- 强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须先定义(包括类型和值)后才能使用
- 规定了对应的变量类型就要输入对应的数据类型
- 安全性较高,速度慢
- 弱类型语言
- 变量的使用要符合规定,但是不用事先规定变量类型
基本数据类型和引用数据类型
- 基本类型(primitive type)
- 数值类型(byte,short,int,long,float,double),
- 其中long类型的数据要在数字后面加上L用以区分;float类型的数据要在后面加上F
- char类型数据
- boolean类型(这种数据类型只占一个bit)
public class Hello{
public static void main(String[] args){
//整数类型
byte num1 = 127; //byte类型的数据占一个字节
short num2 = 200; //short类型的数据占两个字节
int num3 = 800; //int类型的数据占4个字节
long num4 = 1000L; //long类型的数据占8个字节,而且long类型的数字一般都会在数字后面加上一个L,加以区分
//浮点数类型
float num5 = 1.45F; //float的数据占4个字节,而且要在值的后面加上F用来区分这个是float类型的数据
double num6 = 1.233; //double类型的数据占8个字节
//字符类型
char str1 = 'A'; //char类型的数据占2个字节,而且char类型赋值一个字符
//布尔类型
boolean b1 = true;
boolean b2 = false;
}
}
-
引用类型(reference type)
- 类
- 接口
- 数组
-
引用类型(reference type)
- 类
- 接口
- 数组
String str2 = "我是一串字符"; //String是一个类,并不是关键字,因此他是属于引用类型的变量
基本数据类型的更多知识点
- 整数扩展
- 对于整数,有二进制,十进制,八进制,十六进制,在java中有他们各自的表达方式
- 对于数值类型的变量,默认值是0 、0.0
- 对于char类型的变量,默认值是u0000,也就是什么都没有
- 对于其他引用类型的变量,默认值是null
public class Hello{
public static void main(String[] args){
int num1 = 0b10; //0b开头表示2进制
int num2 = 10;
int num3 = 010; //0开头表示8进制
int num4 = 0x10; //0x开头表示16进制
}
}
- 浮点数扩展
- 对于浮点数,因为他们有些浮点数并不是有限的,所以表达起来都是取近似于这个数的数,所以在平时写程序的时候,我们要避免浮点数之间进行比较!! 如果要进行比较的时候要用BigDecimal类来进行运算。
- 字符扩展
- 在java中可以进行强制转换,转换的是对应的字符在unicode码中的位置。
public class Hello{
public static void main(String[] args) {
int a = 97;
char b = '来';
int c = '\u0061';
int d = 97;
System.out.println((char)a); //将数字强制转换成字符
System.out.println((int)b); //将字符强制转换成数字
System.out.println((char)c); //用编码序号来获取对应的编码字符
System.out.println(a==d);
}
}
变量的作用域
- 类变量
- 从属于类的变量,在类里面可以直接引用
- 实例变量
- 实例变量,需要实例化一个对象才能够引用
- 局部变量
- 局部变量只能在其定义的函数内进行使用
public class Hello{
static int a ; //类变量
String b ; //实例变量,需要通过实例化一个对象来引用
//定义的类变量和实例变量不需要初始化也能够使用,他们会是默认值
//数值型的变量默认是 0 或者 0.0,字符型的是Null
//除了基本的数据类型,其他的默认值都是null
//布尔型的数值默认是false
public static void main(String[] args) {
double c = 1.456; //局部变量
Hello h = new Hello();
System.out.println(a);
System.out.println(h.b);
}
}
常量
-
常量(Constant):初始化(initialize)后不能再改变值!,不会变动的值
-
常量可以理解成一种特殊的变量,他的值被设定后,在程序的运行过程中不允许被改变。
final 常量类型 常量名=值 final double PI = 3.14; -
常量名一般使用大写字符
变量和常量命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary,除了第一个单词以外,其他单词的首字母要大写
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,Women
- 方法名:首字母小写和驼峰原则:go(),goGo()
不同作用域的变量的内存分配
-
看一下大神的回答
大神链接

浙公网安备 33010602011771号