大厂面试会问到的Java 数据类型及其转换机制,还有直接量的介绍

public class StringDemo {
    public static void main(String args[]) {     
        String string1 = "百度网址:";
        System.out.println("1、" + string1 + "www.baidu.com"); 
    }
}

编程的本质就是对内存中数据的访问和修改。程序所用的数据都会保存在内存中,我们需要一种机制来访问和修改内存中的数据,这种机制就是变量!

Java 语言是一种强类型语言:
1、所有的变量必须先声明后使用;
2、指定类型的变量只能接受与之匹配的值。

Java 数据类型

在这里插入图片描述在这里插入图片描述

数据类型的转换

规则

  • 不能对boolean类型进行类型转换。
  • 不能把对象类型转换成不相关类的对象。
  • 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
  • 转换过程中可能导致溢出或损失精度,例如:int i =128;byte b = (byte)i;因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。
  • 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入

自动类型转换

在这里插入图片描述

public class ZiDongLeiZhuan{
        public static void main(String[] args){
            char c1='a';//定义一个char类型
            int i1 = c1;//char自动类型转换为int
            System.out.println("char自动类型转换为int后的值等于"+i1);
            char c2 = 'A';//定义一个char类型
            int i2 = c2+1;//char 类型和 int 类型计算
            System.out.println("char类型和int计算后的值等于"+i2);
        }
}
//char自动类型转换为int后的值等于97
//char类型和int计算后的值等于66

强类型转换

//格式:(type)value
//type是要强制类型转换后的数据类型
float a = 5.6;//这一条我们看上去很正常的代码其实是错的,因为 5.6 默认是 double 类型
float a = (float) 5.6 ;//这才正确

这就牵扯到直接量的问题

直接量的类型:基本类型、字符串类型、null 类型
  • int 类型:直接给出的整型数值,可分为十进制、二进制(0b 或 0B 开头)、八进制(以 0 开头)、十六进制(以 0x 或 0X 开头,10到15分别以a~f 表示不区分大小写);
  • long 类型:整数值后增加一个1或者 L ,如 143L;
  • float 类型:浮点数后面添加 f 或 F ,如 3.14E5F;
  • double 类型:标准的小数形式或者科学计数法形式的浮点数,如 3.14E5;
  • boolean 类型:只有 true 和 false 两种;
  • char 类型:单引号括起来的字符、转义字符、Unicode 值表示的字符,如 ‘a’ 、’\n’、’\u8888’;
  • String 类型:双引号括起来的字符序列;
  • null 类型:只有一个值 null,可以赋给任意引用类型的变量,用以表示这个引用类型变量中保存的地址为空,即还未指向任何有效对象。
直接量的规则
  • String 类型的直接量不能赋给其他类型的变量,当程序第一次使用某个字符直接量是,Java 会使用常量池来缓存改字符串直接量,如果程序后面的部分需要用到改字符串的直接量时,Java 会直接使用常量池中的字符串直接量;

常量池指的是再编译期被确定,并被保存在已编译的 .class 文件中的一些数据。它包括关于类、方法、接口中的常量,也包括字符串直接量

  • null 类型的直接量可以直接赋给任何引用类型的变量,包括 String 类型;
  • boolean 类型的直接量只能赋给 boolean 类型的变量,不能赋给其他任何类型的变量。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值