TIJ学习笔记(二)——基本类型

这是Thinging in Java学习笔记的第二篇,主要是关于基本类型的。
不足之处,欢迎斧正。

        不少人(包括我自己)学到了变量之后会很奇怪Java不是面向对象语言吗,为什么有int这种极具C语言(面向过程语言)气息的变量?

        既然有int那就直接用int就好了嘛,为什么还要装箱(Boxing)和拆箱(Unboxing)?

int -> 面对对象?

        前一篇博客中提到了面向对象语言的一个特性 “Everything is an Object.”

        从前文也可以推断出这个特性并不是绝对的,在everything之外也是有特例的,这个特例就是基本类型(Primitive Types)。

        在程序设计中经常会使用到一系列类型,它们需要被特殊对待,我们可以把它们想象成“基本”(primitive)类型。之所以特殊对待,是因为new将对象存储在“堆”里,故用new创建一个对象——特别是小的、简单的变量,往往不是很有效。

        这么高深的话像我等俗人是理解不来的,所以我把它翻译了一下就是我如果用个简简单单的int还要去创造一个类,去new出来,然后再去赋值太麻烦了,人累、编译器也累。

        当然这个原因并不能支持一门纯粹的面向对象语言去保留面向过程语言的特性,我觉得它还有其他的原因。在解释这些原因之前我们需要先了解一下这些类型所占用的内存空间大小。

Primitive Type Memory Required(bytes) Wrapper Type
boolean 1 Boolean
byte 1 Byte
short 2 Short
char 2 Character
int 4 Integer
float 4 Float
long 8 Long
double 8 Double

        Reference类型在32位系统上每个占用4bytes, 在64位系统上每个占用8bytes。

        因为Java的Object将基本的数据都包装了一遍,导致我们在使用这些包装类的时候占用了更多的内存以及使用其中的数据的时候占用了更多的时间。

        下面是关于时间的测试代码:

public class Main {
    
    public static void main(String[] args
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值