大楼的基石 数据类型 变量与常量

变量

java零基础入门-核心语法篇(四) 数据类型,变量与常量

从本章开始,我们要开始最激动人心的学习啦,敲代码,没有准备好的同学快去看以前的教程(老规矩 从HelloWorld开始吧),把环境搭好,老司机要开车咯~滴~滴滴~

说变量之前,我们先来看看刀...有同学肯定会问,整这些没关系的干啥,快上干货!别急别急,请听我慢慢道来。


刀具套装

作为一个吃货,我深深的了解到 做菜做料理 之间的区别,做菜就是做的能吃,好吃就够了,仅仅为了解决饥饿的问题而存在。而料理却有所不同,他是一种带有匠人精神的做菜,想要做出高级的料理,工具必不可少。比如我心心念念,至今没有吃过的河豚刺身,切出来的效果就是晶莹剔透,薄如蝉翼,所以必须用专门的刀具去处理。还有专门切三文鱼的,专门切肉的,各种刀都有自己独特的使用场景。


河豚

除了做菜的刀,我们来看看下面这种工具刀。

瑞士军刀

工具刀功能强大,他可以适应我们的各种需求,如果我需要制作一个手工艺品,可能一把这样的工具刀就搞定了,非常的方便。

其实我们的编程思想,和现实中很多事物都很像,他们在设计上,都有共通的地方。所以从现在开始,同学们要锻炼自己的思维能力,这个对你后面接受编程的思维大有裨益。

数据类型

1.强类型和弱类型

2.占用空间

强类型和弱类型

JAVA就是强类型语言,一个有强迫症的患者,切三文鱼必须用三文鱼的刀,切河豚就必须用河豚刀,换过来用直接报错。这就是强类型语言。弱类型语言就像工具刀,啥都可以干,不管是切东西,还是锯东西样样在行,我不关心变量类型,告诉我你要定义变量就够了。这样解释各位清楚吗?看看我们上面刀的分类,再看看数据类型的分类,是不是有点像?不同的数据用不同的数据类型来处理。(其实在最新的JAVA 10中,我们看到JAVA已经将他的强迫症改掉了,可以用弱类型了,这个有兴趣可以去看看)

数据类型


占用空间

我们小学的时候,老师就教过,1+1=2,后来慢慢的又学习了小数,比如买菜的时候,会有3.2元,4.5元的情况,但是我们从来没有考虑过数字的类型。那么我们写代码为啥要整个数据类型出来呢。这个就跟内存空间有关了。内存是啥?不知道的赶紧去复习(想入行软件 你必须先了解这些硬件)。因为有的数据存起来,需要大一点的空间,有的只需要很小的空间,计算机是个傻子,你不告诉它你要多大的空间,他不会存,甚至乱存。所以我们必须告诉他,这个数据,你给我用X个空间存起来!我在每个类型后面都有标注,他们占多大的空间。

浪费空间

啥?听不懂?看上面这个图,指头大的东西给了这个大个箱子装,不是浪费么?内存也一样,内存空间是有限,必须节约使用,如果所有的类型都一样大,你还没装多少东西,内存就满了。

肯定有同学问了,字节是个啥玩意?内存的空间现在都是按照G来算,那字节和G是个啥关系?看一下换算关系。

1 Byte = 8 Bits            翻译=>          1 字节 = 8

1 KB = 1024 Bytes                           1 KB = 1024 字节    

1 MB = 1024 KB                               1 兆 = 1024 KB

1 GB = 1024 MB                               1 G = 1024 兆

我们来看看上面的整数类型,整数类型分为了4种,byte,short,int,long

整数也分了4种?为啥?我们看看他们的取值范围就知道了

取值范围

我们看到每种类型可以使用的取值范围是不一样的,byte占8位,所以他的取值范围最小,long占64位,他的取值范围最大,空间越大装的数据就越大,假设我们只有一种类型,我们存数据都要使用空间最大的类型,就会浪费内存空间。下面我们来看代码。

超出范围会报错

我这里设置的值全部是大于范围上限,同学们可以自己照着写一遍,然后把值改成超出取值下限,看看是不是会报错。眼神好的同学可能发现最后一行,long d = 8999999999999999999L;为什么后面有一个L?因为不写L,会把这个数当成int,这样就会报错,超出取值范围,加一个L,告诉他我这个是long类型,我给了64位空间了,就不会报错了。

下面来说说各种类型的使用场景。

byte:一般用于处理IO流用的比较多,这个后面会有详细讲述。

short:其实这个在实际应用中,用的比较少,知道即可。

int:使用最多的类型,因为我们常规生活中,接触的到的数字都不会超过它的范围。比如我们计算一个商品的库存量,一辆车上的人数等,这个使用int完全没有问题。但是有些数据,我们一定要想清楚场景,因为int的上限是20亿,有些数据是完全可以超过他的,如果用int类型就会产生错误,比如说淘宝几年来的订单数量,超过20亿很轻松,再就是一个服务器集群的日志数量,每天上十亿都有可能,存几个月就千亿了,用int计算数量,觉对完蛋。所以我们就需要用long来计算。

long:用于计算超出常规的数据量,比如我们上面说的淘宝订单数量,日志数量等。


我们继续看浮点类型

浮点型就是我们常说的小数,就是带有小数点的数,如果不带小数点,傻子计算机会认为是整数类型。再就是一个精度问题,精度就是可以表示小数点后多少位,double 的精度要比 float 的高,具体我们往下看。

浮点型

啊!!!这个取值范围是什么鬼,这个是科学记数法,看不懂没关系,我们看下面的例子就知道了。


浮点类型

我们如果处理2,3位小数使用float没有问题,但是如果需要精确到5,6位甚至更多,请使用double类型。

在我们的日常工作中,大多情况是会规定保留2位小数的,比如处理与钱有关的业务,所以会有一套专门的方法来处理,这里只需要了解2种浮点类型的特征即可。


字符类型

中文unicode表 截取

每个国家都有不同的语言和不同的符号,都可以使用unicode编码来表示,每个符号都有对应的编码。(了解即可)

char: 占16位 空间,用单引号表示。

字符类型了解即可,实际运用不多。

布尔类型 boolean

布尔类型很简单,只有true 和 false 两种取值,但是他的作用是非常大的,我们后面会经常与他打交道的。

布尔类型

变量和常量

变量

其实我们上面已经使用了很多变量了,因为没有变量,我一句代码都写不出来...变量是非常重要的知识点,我们来看看

变量的名称与赋值

其实我开始的时候犯了一个很大的错误,就是使用a,b,c来作为变量名称,这是绝对不允许的,请使用有意义的名字。再就是驼峰命名,如果你的变量使用多个单词组成,第一个单词第一个字母请小写,后面每一个单词开头请大写,这样方便阅读。我们来比较下,floatTest1floattest1 有没有觉得驼峰命名可以很快的一眼就认出单词,而后一种需要花时间去看,降低编码效率。

再来体验下  filterRegistrationBean  如果不用驼峰   filterregistrationbean  是不是感觉要瞎了,实际工作中比这长的命名比比皆是,养成好的习惯很重要。

变量值不能重复,我在变量最后面写了 1,2,3这样的数字,就是为了防止重复的变量名称。

java中的关键字不可以用来命名变量,比如       int int = 5    int是关键字,只能用于标识变量类型 ,不能用来作为变量名称。 

上面的图就是我们声明变量的方法,首先确定类型,然后起名字,最后通过 = 号来给变量一个值。


常量

变量是可以变的,我可以将任何类型允许的值赋值给变量。常量就是不变的,不可随意更改的。

比如我们的系统要使用年,月,日这样的概念,我们可以将他们定义为常量

常量不可修改

我们用 final 来修饰常量,因为我们的系统可能会很复杂,我们需要定义一些不可变的量,但是万一不小心将常量改了,会导致严重的问题。比如 你发工资发13个月?每周上班8天?能忍么?


本文出现的代码,请照着多敲几遍,然后改一下上下限,精度等,体会一下取值范围的作用,对的改错,错的改对,了解为什么错,为什么对,这样你才能进步。

学习代码一定要动手!一定要动手!一定要动手!不动手就是没学,切记。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容