刚刚开始写博客,整理的有点乱,努力中,希望后面整理的更好,望各位理解。
常量:
常量是指在整个操作过程中其值保持不变的数据,通常在命令或程序中直接给出其值,用做常量的数据类型有数值型、字符型、日期型、逻辑弄和货币型等类型,常量名一般使用大写形式命名,字母之间使用下划线隔开。
如:
private static final String HELLO_WORLD = "Hello world!";
public static final double PI = 3.14;
字面常量:
- 之所以称它为字面值是因为只能用它的值来称呼它。
- 之所以称它为常量是因为它的值不能修改
- 特点:一眼看上去就知道是什么(内容和类型)的数据,不能重复利用
- 详解:字面值有数据类型: 10 整型字面值, a 字符型字面值,abc 字符串型字面值
- 通俗说 字面值就是内存中一块有类型有值的空间,就是没有名字
public class V{
public static void main(String [] args){
System.out.println(10);//输出字面值常量10
System.out.println(10);//10为字面常量
System.out.println("hello world");
}
}
变量:
变量是内存中用来存放特定数据类型数据的一块空间,它的值是可以改变的。Java 中的变量有四个基本属性:变量名,数据类型,存储单元和变量值
变量名:合法的标识符
变量的数据类型:可以是基本类型和引用类型(必须包含类型)
存储单元:存储单元大小是由数据类型决定的,如:int 为 4 个字节 32 位
变量值: 在存储单元中存放的值
变量的声明格式:类型 变量名;,赋值:变量名=值;
也可以声明时初始化: 类型 变量名=值;
public class V01 {
public static void main(String [] args){
//声明一个整型的变量(int代表一种数据类型,表示整数型)
int num;//在内存中开辟一块整数型,名字叫做num的空间
//赋值
num = 10;//把10这个整数放入到num这块空间中
//通过变量名访问内存空间
System.out.println(num);
//变量可以重复使用
System.out.println(num);
System.out.println(num);
System.out.println(num);
}
}
public class V02 {
public static void main(String [] args){
//变量在声明的时候可以给他赋值(初始化)
int num = 10;
System.out.println(num);//10
//变量可以重新赋值
num = 20;
System.out.println(num);//20
//变量在同一个域中不可以重复声明
//int num;//ERROR
//java中的变量必须先声明再赋值然后才能使用
int a;
a = 10;
System.out.println(a);
//java中的变量如果类型一致可以同时声明多个
int b,c,d = 3;//同时声明了b,c,d3个变量,但是只给d变量赋了值
//System.out.println(c); c没有被赋值
}
}
变量分类:
/**
* 变量的分类
* 根据变量出现的位置
* 1.成员变量:在类体中,方法体之外声明的变量
* 2.局部变量:在方法体中出现的变量,包括方法的形式参数列表
*/
public class V03 {
int num1 = 1;//全局变量 (成员变量)
public static void main(String [] args){
int num2 = 2;//局部变量
}
public void m1(int num3){//局部变量
int num4 = 4;//局部变量
}
}
数据类型:
Java 总共有两大种数据类型, 主要有基本类型和引用类型, 基本类型有 8 种, 类引用数据型有3 种
基本数据类型:
整数型(byte,short,int,long)
浮点型(float,double)
字符类型(char)
布尔类型(boolean,只能取值 true 和 false)
引用数据类型:
数组
类
接口
数据类型转换:
/**
* 数据类型转换:
* 1. 自动类型转换:将小类型转换成大类型
* 2. 强制类型转换 :将大类型转换为小类型,可能会损失精度
*/
public class T01 {
public static void main(String[] args) {
int num1 = 1;
long num2 = 1;//这个1是int型,这里有一个自动类型转换 将int-->long
long num0 = 1l;//这个1是long型,这里不存在类型转换
int num3 =(int)num2;//(强制类型转换)将long--->int
int num4 = 1000;
byte num5 = (byte) num4;//-128 -- 127
System.out.println(num5);//输出-24,将大类型转换成小类型时,超出取值范围时,精度会损失.
//在byte,short,char的取值范围内,int可以直接复制给byte,short、char
byte num6 = 6;
byte num7 = (byte) 128;//超出范围就要强转
}
}
浮点:
public class T02 {
public static void main(String[] args) {
double d = 3.14;//默认是double类型
float f0 = (float) 3.14; //强制转换再赋值
float f1 = 3.14F;//末尾加F变成单精度,将float型的3.14赋值给f1 直接赋值
}
}