📚 Java基础学习卡片
🔢
Java数据类型系统
点击卡片查看详情
两大类数据类型
8种原始类型
(int, double等) 和对应的
包装类
(Integer, Double等)
原始类型特点
存储纯粹的值,性能高,但不是对象
包装类作用
把原始类型的值"装箱"成对象,以便在面向对象的环境中使用
现代实践
使用
valueOf()
或
自动装箱
来创建包装类对象,而不是过时的new构造器
💡
理解原始类型和包装类的区别与联系,是掌握Java基础的关键一步
🔍
Java数值原始类型
点击卡片查看详情
整型
byte
(1字节)
short
(2字节)
int
(4字节) - 日常编程中最常用
long
(8字节) - 处理大数字时使用
浮点型(小数)
float
(4字节)
double
(8字节) - 日常编程中最常用
固定大小特性
Java中这些类型的大小是固定的,不随操作系统或CPU架构改变,这是Java
跨平台特性
的基石之一
❓
为什么Java没有unsigned
点击卡片查看详情
设计哲学
Java设计者James Gosling认为unsigned类型是导致C/C++中很多难以发现的bug的根源
目的
为了贯彻
简单、安全
的设计哲学,Java决定不支持unsigned类型
优势
减少了语言的复杂性,避免了潜在的错误
替代方案
如果需要处理无符号数据,通常可以通过使用
更大范围的有符号类型
来解决(比如用long来处理一个32位的无符号整数)
🍬
语法糖
点击卡片查看详情
定义
编程语言中添加的某些语法,这种语法对语言的功能没有影响,但能让程序员写代码时更方便、更简洁
核心特点
不增加新功能
可以被"脱糖" - 编译器会把这些语法自动翻译成更基础的语法结构
提升开发体验
Java中的例子
自动装箱/拆箱
for-each循环
Lambda表达式
数字分隔符:145_345.23
二进制字面量:0b11001011
💡
语法糖就是编译器的"宠爱",允许我们用更优雅的方式写代码
📦
包装类
点击卡片查看详情
作用
为每一种原始类型提供一个对应的类,这个类的对象可以"包装"一个原始类型的值
对应关系
int →
Integer
char →
Character
其他都是首字母大写:byte → Byte, double → Double
核心思想
包装类就像一个"盒子",你可以把一个原始类型的值放进这个盒子里,然后这个盒子就可以在只接受对象的地方传递和使用
创建方式(推荐)
Integer.valueOf(123)
- 工厂方法
Integer b = 123
- 自动装箱
Integer.valueOf("123")
- 字符串解析
🔄
自动装箱与拆箱
点击卡片查看详情
自动装箱 (Auto-boxing)
把原始类型赋值给包装类时,Java编译器自动转换
示例:
Integer a = 100;
→ 编译器实际做:
Integer a = Integer.valueOf(100);
自动拆箱 (Auto-unboxing)
当包装类对象被用在需要原始类型的上下文时,Java自动把它"拆箱"成原始类型的值
示例:
int b = a;
→ 编译器实际做:
int b = a.intValue();
优势
让我们可以方便地在原始类型和包装类之间无缝切换,让代码更简洁
⚠️
记住自动装箱/拆箱背后是编译器帮我们做了转换工作
学习进度
0/6