资讯专栏INFORMATION COLUMN

【Java猫说】主数据类型和引用

dongfangyiyu / 2992人阅读

摘要:阅读本文约分钟变量有两种主数据类型和引用。主数据类型用来保存基本类型的值,包括整数,布尔和浮点数等,而对象引用保存的是对象的引用。而在中,主数据类型也有不用的大小与名称。

阅读本文约“2.3分钟”

变量有两种:primitive主数据类型和引用

Java注重类型。它不会让你做出把长颈鹿类型变量装进兔子类型变量中这种诡异又危险的举动——如果有人对长颈鹿调用“跳跃”这个方法会发生什么悲剧?并且它也不会让你将浮点数类型变量放进整数类型的变量中,除非你先跟编译器确认过数字可以损失掉精确度。

编译器会指出大部分的问题:

Rabbit happoer = new Giraffe();

谢天谢地,这样的程序过不了编译器这关

为了让类型安全能够发挥作用,你必须声明所有变量的类型,指定它是个int类型或是个Dog类型,变量有两种口味:清凉的primitive主数据类型和香辣的对象引用。primitive主数据类型用来保存基本类型的值,包括整数,布尔和浮点数等,而对象引用保存的是对象的引用。

你可以把Java的变量想成是杯子。咖啡杯、茶杯、装满啤酒的泡沫跟鱼缸一样大的巨无霸杯等等。

变量就像是被子,是一种容器,承装某些事务。

primitive主数据类型如同咖啡馆的被子,他们有不同的大小,而每种大小都有一个名称,像是“小杯”,“大杯”,“重量杯”等。

而在java中,primitive主数据类型也有不用的大小与名称。当你在Java中声明变量的时候,必须指定它的类型,类似:long-64、int-32、short-16、byte-8

要确保变量能存下所保存的值,不然会溢出

我们可以根据以下规则来帮助类、方法或变量命名(真正的规则在实际上更为复杂,但这些规则就能够保证安全):

——名称必须以字母、下划线(_)或$符号开头,不能用数字开头

——除了第一个字符以外,后面就可以用数字。反正不要用在第一个字符就行。

——只要符合上述两条规则,你就可以随意地命名,但还要要避开Java的保留字。

事实上没有对象变量这样的东西存在

只有引用(reference)到对象的变量

对象引用变量保存的是存取对象的方法

它并不是对象的容器,而不是类似指向对象的指针。或者可以说是地址。但在Java中我们不会也不该知道引用变量中实际装载的是什么,它只是用来代表单一的对象。只有Java虚拟机才会知道如何引用来取得该对象。

Java注重类型,一旦数组被声明出来,你就只能装入所声明类型的元素。

变量有两种Lprimitive主数据类型和引用

变量的声明必须有类型和名称

primitive主数据类型变量值是该值的字节所表示的

引用变量的值代表位于堆之对象的存取方法

引用变量如同遥控器,对引用变量使用圆点运算符可以如同按下遥控器按钮般地存取它的方法或实例变量

没有引用到任何对象的引用变量的值为null值

数组一定是个对象,不管所声明的元素是否为primitive主数据类型,并且没有primitive主数据类型的数组,只有装载primitive主数据类型的数组。

本文已转载个人技术公众号:UncleCatMySelf
欢迎留言讨论与点赞
上一篇推荐:【Java猫说】类与对象的那些事
下一篇推荐:【Java猫说】Java多线程之内存可见性(上篇)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71655.html

相关文章

  • Java猫说】实例变量与局部变量

    摘要:我们来看看实例变量与局部变量之间的差别实例变量是声明在类内而不是方法中。局部变量在使用前必须初始化。局部变量没有默认值,如果在变量被初始化前就要使用的话,编译器会显示错误。 阅读本文约1.8分钟 实例变量永远都会有默认值,如果你没有明确的赋值给实例变量,或者没有调用setter,实例变量还是会有值! integers 0 floating points 0.0 boolean...

    dreamtecher 评论0 收藏0
  • Java猫说Java多线程之内存可见性(上篇)

    摘要:猫说多线程之内存可见性下篇欢迎你留言讨论属于你的见解,毕竟每个人的味蕾都不一样,这杯咖啡有吸引到你吗好像又是一个槽糕的比喻本文已转载个人技术公众号欢迎留言讨论与点赞上一篇推荐猫说主数据类型和引用下一篇推荐猫说多线程之内存可见性下篇 阅读本文约3分钟 本文大致讲述两种线程实现的可见性,或许你已经提前想到了,那说明你的基础很好,我们要聊聊synchronized实现可见性与volatil...

    khlbat 评论0 收藏0
  • Java猫说】关于Java方法及传参的一些问题

    摘要:我可不可以忽略返回值并未要求一定要处理返回值。你可以调用返回非类型的方法而不必理会返回值,这代表你要的是方法的行为而不是返回值,你可以不指派返回值。 阅读本文约1.2分钟 1、如果想要传入的参数是对象而不是primitive主数据类型会怎样? 在Java中所传递的所有东西都是值,但此值是变量所携带的值。还有,引用对象的变量所携带的是远程控制而不是对象本身,若你对方法传入参数,实际上传...

    woshicixide 评论0 收藏0
  • Java猫说】类与对象的那些事

    摘要:也可以这么说,对象就好像通讯簿中的一笔数据。对象有已知的事物,并能执行工作。对象本身已知道的事物成为实例变量,它代表对象的状态。对象可执行的动作称为方法,它代表对象的行为。 阅读本文约2.1分钟。 当你在设计类时,要记得对象时靠类的模型塑造出来的,你可以这样看: ——对象是已知事物 ——对象会执行的动作 对象本身已知的事物称为实例变量,它们代表对象的状态(数据),且该类型的每一个对象...

    BWrong 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<