✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨
🎈🎈作者主页: 🎈丠丠64-CSDN博客🎈
✨✨ 帅哥美女们,我们共同加油!一起进步!✨✨
目录
一、前言
之前我们学习了C语言,发现变量都是用着各种不同的数据类型进行存储分类,不同的数据需要使用的类型也不一样,JAVA语言中也是这样,但同时更加严谨
二、字面常量
public class Test{
public static void main(String[] args){
System.out.println("hello world!")
System.out.println(100);
System.out.println(3.14)
System.out.println(’A’);
System.out.println(true)
System.out.println(false)
}
}
- 双引号括起来的字符串被称为字符串常量
- 整形被称为整形常量
- 浮点型被称为浮点数常量
- 单引号引起来的被称为字符常量
- 只有两种true和false被称为布尔常量
- null称为空常量
三、数据类型
![](https://img-blog.csdnimg.cn/direct/d1517f8271e84ae2b13ede9871aa30da.png)
与C语言中大差不差,但同时存在着不同:
- 不论是在16位系统还是32位系统,int都占用4个字节,long都占8个字节
- 整型默认为int型,浮点型默认为double
- 使用long在数据后面加大写L,使用float在数据后面加小写f
- 在JAVA中char占用2个字节
四、变量
1.定义
除了上述中有着常量不会改变的量,那么就同时有一直在改变的量,对于经常改变的量,对其称为变量,定义变量的语法格式为 数据类型 变量名 = 初始值
public class Test{
public static void main(String[]args){
int numl = 10;
System.out.println(num1);
int num2;
num2 = 10;
System.out.println(num2);
}
}
2.变量的使用
JAVA语言中使用一个变量之前必须进行初始化
只定义不赋值,就会编译期间将会报错
int num3
System.out.println(num3);
在给其所定义的变量赋值,超过数据类型的表示范围,会导致溢出 编译时会报错
类似于这样,int范围为
int num4 =102645484548;
超出了int的最大范围
倘若呢,不知道一个数据类型为多大,JAVA中有一个概念叫做的包装类型,先了解个概念,这个类就可以知道一个类型的范围为多少
基本类型 | 二进制位数 | 包装器类 |
---|---|---|
boolean | 1 | Boolean |
byte | 8 | Byte |
char | 16 | Character |
short | 32 | Short |
int | 32 | Integer |
long | 64 | Long |
float | 32 | Float |
double | 64 | Double |
我们拿int举例子哈
System.out.println(Integer.MIN VALUE)
System.out.println(Integer.MAX VALUE)
结果为
其他的数据类型都是一样的,给大家列举一下
//整形
int num1 = 10;
System.out.println(num1);
System.out.println(Integer.MIN_VALUE);
System.out.println(Integer.MAX_VALUE);
//长整型
long num2 = 10L;
System.out.println(num2);
System.out.println(Long.MIN_VALUE);
System.out.println(Long.MAX_VALUE);
//短整形
short num3 = 10;
System.out.println(num3);
System.out.println(Short.MIN_VALUE);
System.out.println(Short.MAX_VALUE);
//字节型
byte num4 = 10;
System.out.println(num4);
System.out.println(Byte.MIN_VALUE);
System.out.println(Byte.MAX_VALUE);
//双精度浮点型
double num5 = 10;
System.out.println(num5);
System.out.println(Double.MIN_VALUE);
System.out.println(Double.MAX_VALUE);
//单精度浮点型
float num6 = 10f;
System.out.println(num6);
System.out.println(Float.MIN_VALUE);
System.out.println(Float.MAX_VALUE);
//字符型
char num7 = 'A'; //大写字母
char num8 = '你'; //汉字
System.out.println(num7);
System.out.println(num8);
System.out.println(Float.MIN_VALUE);
System.out.println(Float.MAX_VALUE);
3.中文乱码问题
对于字符型变量所定义的汉字,Java 中使用 Unicode 表示字符可能在某些编译运行的时候会出现乱码,这是为什么呢?
Test.java:3: 错误 : 未结束的字符文字char ch = ' 鍛 ?';
只需要们在执行 javac 时加上 -encoding UTF-8 选项即可
javac -encoding UTF-8 Test.java
我们记事本所使用的编码是UTF-8,而cmd在运行编码的时候解码用的是GBK,在编译运行时解码跟编码用的不一样,就会出现不能识别的情况,所以我们要给解码用编码相同UTF-8,而在IDEA中编码解码都是在同一程序中运行,就不会存在这个问题了
4.布尔类型
接下来还有一种变量叫做布尔型变量
//布尔型
boolean num9 = true;
System.out.println(num9);
System.out.println(Float.MIN_VALUE);
System.out.println(Float.MAX_VALUE); //范围大小未知
在C语言中,零代表假,非零代表真,但是在JAVA中,判断真假,只能用true和false
布尔类型不可以和其他的任何类型之间进行相互转换,这是不被允许的
boolean value = true;
System.out.println(value + 1);
// 代码编译会出现如下错误
Test.java:4: 错误: 二元运算符 '+' 的操作数类型错误
System.out.println(value + 1);
^
第一个类型: boolean
第二个类型: int
Java虚拟机规范中,并没有明确规定boolean占几个字节,也没有专门用来处理boolean的字节码指令,所以它的范围大小是不确定的
5.字符串类型
在c语言中字符串并没有一个统一的类型,而是以字符数组的方式存储,但在JAVA中字符串也有着数据类型,字符串型就属于引用数据类型。
String sl="hello"
String s2=" world"
System.out.println(s1),
System.out.println(s2);
System.out.println(s1+s2);//s1+s2表示:将s1和s2进行拼摄
当特定情况下我们需要将字符串与整形相互转换,有两种方法实现:第一种将整形与字符串合并成为一个字符串;第二种就是用类包装来实现。
//整形转字符串
int num = 10;
// 方法1
String str1 = num + "";
// 方法2
String str2 = String.valueOf(num);
//字符串转整形
String str = "100";
int num = Integer.parseInt(str);
在整形与字符串合并过程中得注意合并顺序,合并顺序不同结果也不同
int a = 10.
int b = 20:
System.out.println(a + b + "");
System.out.println(a + ""+ b),
a+b这是两个整形相加,再加双引号,30变成了一个字符串
a+双引号,a实现为一个字符串,然后+b,相当于字符串+b,1020还是一个字符串
五、类型转换
int n= 10;
long m= 100L;
m = n; //可以通过编译
n=m //编译失败
![](https://img-blog.csdnimg.cn/direct/3d4218031bae4962a4f00bb578465573.png)
数据范围小的转为数据范围大的时会自动进行,而大数据转化为小数据的时候则会报错,如果硬要转换就要进行强制类型转换(会丢失数据)
int n= 10,
long m= 100L;
n = (int)m;
六、类型提升
nt al = 10;
long b2 = 20;
int c = a1 + b2;//报错
long d= al + b;
int+long 在运算的时候会转换为 long + long ,结果得拿long类型接受,否则会丢失数据
希望对你有用