一、常量
定义: 程序运行期间,固定不变的值(量)就称为常量
1、常量的分类:
字符串常量: 用双引号引起来的值,叫做字符串常量。例如:"abc","hellow","123"
整数常量: 直接写上的数字,没有小数点。例如:100、200、300、-565等值
浮点数常量: 直接写上的数字,有小数点。例如:10.1、0.0.-10.3
字符常量:用单引号引起来的单个字符,就是字符常量。例如:‘A’ 'b'、
布尔常量:true和false
空常量: null 表示没有任何数据
对比php
php中分字符串类型,数字类型、布尔型;在这里多出了null类型,在数字类型中多出整数和浮点数的划分,字符串中多出了字符串多字符和单个字符的划分
2、使用
public class Demo01Const{
//定义一个静态的析构方法
public static void main(String[] args){
//字符串常量;字符常量个数不限,可以是0个,可以是多个
System.out.println("ABC");
System.out.println("");
System.out.println("XYZ");
//输出整数常量
System.out.println(12);
System.out.println(-12);
//输出浮点数常量
System.out.println(1.2);
System.out.println(-1.2);
//输出一个字符常量
System.out.println('A');
//System.out.println(''); 错误
//System.out.println('ab'); 错误
//输出一个布尔值类型
System.out.println(true);
System.out.println(false);
//输出一个空常量
//System.out.println(null); 错误
}
}
二、基本数据类型
数据类型分为基本数据类型和引用数据类型;基本类型主要有整数型、浮点型、字符型、布尔型。引用数据类型主要有字符串、数组、嘞、接口、Lambda
1、基本数据类型
基本数据类型分为四类八种
整数型 byte short int long
浮点型 float double
字符型 char
布尔型 boolean
2、 所表示的长度
数据类型
关键字
内存占用
取值范围
字节型
byte
1字节
-128~127
短整型
short
2字节
-32768~32767
整型
int(默认)
4字节
-21亿~21亿
长整型
long
8字节
单精度浮点数
float
8字节
1.4013E-45~3.4028E+38
双精度浮点数
double(默认)
8字节
4.9E-324~1.7977E+308
字符型
char
2字节
0-65535
布尔类型
boolean
1字节
true,false
3、注意事项:
字符串不是基本类型,而是引用类型
浮点型可能只是一个近视值,并非精确值
数据范围与字节数不一定相关,例如float数据范围比long更加广泛,但是float是4字节,long是8字节。
浮点数当中默认性是double。如果一定要使用float类型,需要加上一个后缀F。
如果是正数,默认为int类型,如果一定要是用long类型,需要加上一个后缀L。推荐使用大写字母后缀。
这里主要是对数据类型进行划分,相比较php划分更为严格,在number类型中划分了整型和浮点型;并这是定义值的类型,值得类型有默认类型,若需指定值的类型为何,语法需要在后面加上相应的大写字母,表示该值为什么类型;
三、变量的使用
//声明一个类
public class Demo02Var{
//声明一个静态的构造方法
public static void main(String[] args){
//声明一个字符型
Byte num1 = 120;//右边定义的数值不能超过声明变量类型的范围,否则报错
System.out.println(num1);
//声明一个短整型
Short num2;
num2 = 200;
System.out.println(num2);
//声明一个int类型
int num3 = 1000;
System.out.println(num3);
//声明一个长整型
long num4 = 3000000000L; //如果是Long类型 不仅需要满足右侧定义的值不能超过声明类型的区间,还需要声明值的类型,加上大写的L
System.out.println(num4);
System.out.println("华丽的分割线=============================================");
//声明一个单精度类型
float num5 = 3.14F; //和长整形一样,注意不能超过定义的区间范围以及值的类型要声明一下
System.out.println(num5);
//声明一个双精度类型
double num6 = 3.12;
System.out.println(num6);
System.out.println("华丽的分割线=============================================");
//声明一个字符型
char str = 'A';
System.out.println(str);
//声明一个布尔类型
boolean boo = true;
System.out.println(boo);
boolean boo2 = false;
System.out.println(boo2);
//关于作用域的问题
{
System.out.println("华丽的分割线=============================================");
int num7 = 20;
System.out.println(num7);
}
int num7 = 28;
System.out.println(num7);//作用域之外没有找到变量
}
}
1、注意事项
经过上述的使用总结如下
java的数据类型针对变量和值都有效
左边的值不能超过声明变量类型的范围,如变量是用byte声明的,最大不会超过128,你赋值300就会报错
在long与float类型不仅遵循右侧的值不能超过变量的范围区间,还有对值声明类型,值一般有默认类型的,如果是long和float需要给值也定义好对应的类型 如long num1 = 300L
java中有作用域的说法和javascript是一致的,属于块级作用域