学习笔记--Java中的数据类型
Java中的数据类型
/** * Java中的数据类型: * 程序当中有很多的数据,每一个数据拥有与之相关的类型。 * * * 1. 数据类型的作用: * 不同类型的数据占用的空间大小不同,数据类型的作用在与指导JVM在运行程序时该给分配多大的内存空间 * * * 2. Java数据类型分类 * - 基本数据类型【四大类八小种】 * 第一类:整数型 * byte,short,int,long * 第二类:浮点型 * float,double * 第三类:布尔型 * boolean * 第四类:字符型 * char * * - 引用数据类型【暂略】 * - 类 * - 接口 * - 数组 * ...... * * * 3. 基本数据类型占用空间大小 * * 基本数据类型 占用空间大小【字节】 取值 * -------------------------------------------------------------------------- * byte 1 -128~127 * short 2 -32768~32767 * int 4 -2147483648~2147483647 * long 8 -2^63~2^63-1 * float 4 * double 8 * boolean 1 true/false * char 2 0~65535 * * * 3. 基本数据类型默认值 * 整数型 byte,short,int,long * 默认值:0 * 浮点型 float,double * 默认值:0.0 * 布尔型 boolean * 默认值:false * 字符型 char * 默认值:\u0000 * * * 4. 转义字符 \ * 出现在特殊字符前将其转换成普通字符 * * 常见的转义字符: * - \n 换行符 * - \t 制表符 * - \' 一个单引号 * - \\ 普通的反斜杠 * - \" 普通的双引号 * * * 5. 中文字符转换unicode编码,JDK中自带的native2ascii.exe命令 * * * 6. Java中"整数型字面值"被默认当作int类型 * 如果想"整数型字面值"被当作long类型处理,需要其后添加l/L,建议使用大写L * 字面值超过2147483648后应该使用long类型处理2147483648L * * - 整数型字面值三种表示: * 十进制【默认】 * 八进制【以0开头】 * 十六进制【以0x开头】 * * - 小容量可以自动转换大容量 * - 大容量不能直接赋值给小容量,可以强制类型转换【不建议】通过编译但会损失精度 * - 强制类型转换:小容量类型 标识符 = (小容量类型)大容量数据 * * - byte 在赋值时字面值int在byte范围内,允许大容量(int)直接赋值给小容量(byte) * * * 7. Java中的浮点型: * - float 单精度 4字节 字面值需要后面加F/f * - double 双精度 8字节 字面值默认 * * double的精度太低【相对而言】,不适合做财务软件 * SUN在基础的SE类库提供一种引入数据:java.math.BigDecimal * * * 8. 关于布尔数据类型 * - 只有true、false,不像C语言可以用0,1 * * * 9. 基础数据转换 * - 八种基础数据除布尔之外都可以互相转换 * - 自动转换等级: * byte < short/char < int < long < float < double * - 字面值不超出byte,short,char的范围,可以直接赋值 * - byte,short,char混合运算,各自先转换成int再运算 * - 多种数据混合运算,先转换成容量最大的类型再做运算 */ public class DataTypeTest { static int k = 100; static int f; // 成员变量,未赋值 // 成员变量会在未赋值时,系统会有默认赋值 public static void main(String[] args) { System.out.println(k); System.out.println(f); // 此次未赋值,可以正常执行 // 因为使用了成员变量, // 定义一个char类型 char c1 = 'a'; // 命名为 c1,字面值为 'a',注意是半角单引号 System.out.println(c1); char c2 = '\n'; // 转义字符,\n表换行符 /* 验证 \n System.out.print() 不会换行 System.out.println() 会换行 */ System.out.print('A'); System.out.print(c2); // 对比有无此行的区别 System.out.println('B'); // unicode编码 char n = '\u4e2d'; // '\u4e2d' 表示 '中',可以使用native2ascii工具验证 System.out.println(n); System.out.println("----------整数类型----------"); // 整数类型 int num1 = 10; // 十进制 int num2 = 012; // 八进制 int num3 = 0xa; // 十六进制 System.out.println(num1); System.out.println(num2); System.out.println(num3); // long类型 long numL1 = 1000; // 存在类型转换 100 是 int ,赋值会转换 long numL2 = 100L; // 直接赋值 int num4 = (int)numL1; // 强制转换 System.out.println(num4); byte num5 = (byte)num4; // num4 = 1000,byte范围-128~127,精度丢失 System.out.println(num5); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了