📚 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