Day02:先生先生,请问你装了什麽进去?

Java,我相信如果去查维基百科,「物件导向」这4个字一定会在叙述的第一行。
换言之,在Java的世界中,几乎所有的东西都以「物件」这个概念来运作,不过既然用到几乎这两个字,就肯定有例外啦。
那就是八大基本型别(Primitive Type):

  • byte 整数,1byte
  • short 整数,2byte
  • int 整数,4byte
  • long 整数,8byte
  • float 浮点数,4byte
  • double 浮点数,8byte
  • boolean 布林值,true / false
  • char 字元,2byte

型别就好像是容器,这些容器有大有小,也有各种形状材质,当我们要宣告一个变数来装东西的时候,Java就是比较龟毛一点,要写的人先规定这个变数之後要装的东西是什麽种类,宣告後这个变数就只能装进同一种的东西了。这种语言风格被称为强型别
再来说说我在後面写的"xxbyte"是什麽意思,这就是容器大小的意思了,在程序的世界中,我们所用的大小单位叫做位元组(byte),下面放张图来解释一下位元组是什麽概念:

whatByteIs

所以byte型别的总容量就是2 ^ 8 = 256,然後又有正负数之分,所以byte型别可以装进去的整数范围是-128 ~ 127;而int型别的总容量就是2 ^ 32 = 4,294,967,296,正负切分後范围是-2,147,483,648 ~ 2,147,483,647,所以若在程序中这样指派:

int num = 2147483648;

那就会发生编译错误,错误讯息为「The literal 2147483648 of type int is out of range」。

好的,差不多仁至义尽了,总之以上这些型别在Java中可以不使用物件的型态来装进变数:

int integer = 10;
double floatNumber = 10.1;
boolean flag = true;
char word = 'A';

所以就只有这8种基本型别的变数可以直接装进字面常量(literal constant)。需要注意的是:

String sentence = "Hello Vegetable Chicken. Just kidding~";

虽然字串看似也是直接指派了字面常量给变数,但实际上字串不是基本型别而是类别型别!这个特例需要死记一下(看来字串也可以独立写一篇,赞赞)。还记得当初要找第一份软件工程师工作时,面试被问了不少次呢。

那今天就到这边罗,大家掰掰

哎基本型别原本其实也就这些东西而已,但是因为我的目的是要考证照,必须再多说一些。

在一开始有提到型别就像是一个容器的种类,有大小之分,那如果我们把很大的东西要装进很小的容器时,会发生什麽事情?

byte num = 128;

如果你是用eclipse之类的IDE,这时候在"128"的底下就会出现红底线,并告诉你:「Type mismatch: cannot convert from int to byte」
WTF? 什麽int? 我懂我故意要放一个会让byte型别爆掉的128(为什麽128会爆掉?想想看),但我没有要放int呀?

嘿嘿......突然发现要讲下去又要扯出一拖拉库了,我想今天就先这样吧!太好了明天有题目可以写了哈哈哈~


<<:  [Day 0] Reactive Programming 资料来源

>>:  【Side Project】 做Side Project前的准备

端点防护软件 - 政府组态基准 GCB

灌了政府两字,果然威能,请小心服用... 适用人员: 技术人员。 适用法规: 资通安全责任等级分级办...

CMoney第八届菁英软件工程师战斗营满一个月_Week 4

Hi 又过了一周 这周也是满一个月的时候 很多人都会好奇在里面会做什麽事 在这一个月内里面 除了上...

<ROS笔记区>0.0 一堆 LIUNX的指令

shutdown 用来关机的指令,这个指令只有 root 才有权力下! [root@tsai roo...

Day-3: Rails的Route + MVC架构

MVC模式(Model–view–controller) 是软件工程中的一种软件架构模式, 把软件...

Day21 CSS完成简单的网页排版!

前面我们有了导览列加上banner区块!接下来的排版就可以很快速地套用我们之前所学,display:...