文章目录

  • 一.字面常量
  • 二.数据类型
  • 三.变量
  • 1.变量类型
  • 2.变量转换
  • 2.1自动类型转换(隐式)
  • 2.2强制类型转换(显式)
  • 3.byte和byte的运算


一.字面常量

字面常量分为六种
1.字符串常量:由"“括号括起来的,比如"123456”,“helloworld”,“你好”.
2.整形常量:程序中直接写的数字,比如:100,200.
3.字符常量:由’'单引号括起来的字母、数字、汉字,比如:‘A’ ‘1’ ‘笛’
4.浮点数常量:程序中用到的小数,比如:3.14 0.78
5.布尔常量:布尔常量只有true和fales两种
6.空常量:null
注意:字符串、整型、字符、浮点数、布尔,在Java中都称为数据类型

二.数据类型

在Java中数据类型分为两类:基本数据类型和引用数据类型(四类八种)

1.四类:整型、浮点型、字符型、布尔型

2.八种:

java中的字符串类型 java中字符串的数据类型_jvm


什么是字节?

字节是计算机中表示空间大小的基本单位。

计算机使用二进制表示数据,我们认为8个二进制为一个字节。即:1byte=8bit

三.变量

1.变量类型

Java中对于那些经常改变的量我们称为变量。而数据类型就是用来定义不同种类变量的。
变量的种类包括(短整型变量、整型变量、长整型变量、浮点型变量、字符型变量、布尔型变量)我们在使用时要根据变量的类型来选择不同变量。

2.变量转换

2.1自动类型转换(隐式)

代码在编译时类型不同时会自动的由小范围转换为大范围

int a = 100;
        long b = 200;
        b = a;//a和b都是整型,a时小范围,b是大范围,将a值赋给b是小范围会自动提升为大范围及将int类型提升为long类型,然后赋值
        a = b;//此时大范围赋值给小范围时,会存在数据丢失,编译器会报错

2.2强制类型转换(显式)

代码在编译时如何将大范围的数据类型强行赋值给小范围

int c = 100;
        long d = 200L;
        c = (int)d;//此时大范围赋值给小范围就需要在大范围前面加上小范围的类型

注意:1.大范围的类型强制转换成小范围时,可能存在精度丢失
2.强制类型转换不一定能成功,互不相干的两个类型不能相互转换

3.byte和byte的运算

明明是两个byte类型的运算,为什么会报错呢?

public static void main(String[]args){
        byte a = 10;
        byte b = 20;
        byte c = (a+b);
        System.out.println(c);
    }

java中的字符串类型 java中字符串的数据类型_jvm_02


计算机在运算a+b时,会将a和b两个byte类型提升为int类型来计算,得到的结果也就是int类型,int类型的值再赋给byte就出现了大范围类型赋值小范围的情况,编译器就会报错。

正确的写法:

public class Test{
   public static void main(String[]args){
        byte a = 10;
        byte b = 20;
        byte c = (byte)(a+b);
        System.out.println(c);
    }

java中的字符串类型 java中字符串的数据类型_java_03


计算机的CPU通常都是以4个字节为单位来读取数据的。为了实现硬件上的饭方便比如:byte、short这种低于4个字节的类型会提升到4个字节的类型(int)来处理。