JSJ——主数据类型和引用

变量有两种: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主数据类型变量值是该值的字节所表示的

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

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

原文地址:https://www.cnblogs.com/UncleCatMySelf/p/9250947.html

时间: 2024-10-20 03:17:15

JSJ——主数据类型和引用的相关文章

【Head First Java 读书笔记】(三)primitive主数据类型和引用

认识变量 变量有两种:primitive数数据类型和引用. 声明变量 Java注重变量.它不会让你将浮点数类型变量放进整数类型的变量中,除非你先跟编译器确认过数字可以损失掉精确度. 为了要让类型安全能过发挥作用,必须声明所有变量的类型. 变量有两种:primitive主数据类型和对象引用. primitive主数据类型用来保存基本类型的值,包括整数.布尔和浮点数等,而对象引用保存的是对象的引用. 声明变量的规则: variables must have type 变量必须拥有类型 variabl

3 primitive主数据类型和引用 认识变量

变量的两种口味 清凉的primitive主数据类型:香辣的对象引用 前一种保存了基本类型的值,后一种保存了对象的引用: 记住两句话,variables must have a type.  varivables must have a name. 控制Dog对象 Dog d = new Dog(); d.bark(); d是一个Dog变量,这种说法是错误的.实际上,上面的代码可以理解成d是遥控器,遥控器打开了电视.其实书中这种理解也不对, 因为狗它自己本身就会叫.因此,reference引用,这

primitive主数据类型和引用

认识变量: 1.对象的状态:instance variable 和局部变量(local variable):定义在方法中的变量 2.变量用于传递参数或是返回类型. 3.primitive:①主数据类型②对象引用 tips:对于float f=3.25f 只有在数字后面加上f才会被作为float类型处理,否则会被当做double处理 boolean类型的字长由java虚拟机决定 4.变量的取名规则:①:名称必须以字母,下划线或$符号开头,不能用数学开头. ②:除了第一个字符之外,后面就可以用数字.

C# in Depth Third Edition 学习笔记-- 值类型和引用

I. C#中值类型和引用类型 1. 类class 引用类型,结构struct值类型 2. 数组是引用类型,即使元素是值类型,int[]是引用类型 3. 枚举是值类型enum 4. 委托类型delegate是引用类型 5. 接口类型interface是引用类型,但可以由值类型实现. II. 值的表达式:表达式“2+3”的值就是5:而对于引用类型的表达式,它的值是一个引用,而不是该引用所指代的对象,如String.Empty的值不是一个空字符串,而是对空字符串的一个引用. III. 变量的值在它声明

C++ 如何从指针中得到类型或引用

C++标准语法中我们可以通过  * 来定义指针 &来指定引用 如 typedef int * _INT_PTR; 我们定义了一个指针 typedef int& _INT_REF; 我们定义了一个引用 那我们有没办法通过一个已知的指针或引用来定义一个原始类型呢? typedef *_INT_PTR  _INT? 这似乎不符合语法. 那你可能会问这么奇怪的需求有存在的需要吗? 当你操作别人的数据时,对方由于一些原因只给你提供了指针类型(如后本人所碰到的),你就有可能有这样的需求. 这样的需求有

C++const类型的引用参数

string类定义了一种char*到string的转换功能,这使得可以使用C-风格字符串来初始化string对象. 类型为const引用的形参其中一个属性表明:假设实参的参数类型与引用参数不匹配,但可以转换为引用类型,程序将创建一个正确类型的临时变量,使用转换后的实参值来初始化它,然后传递一个指向该临时变量的引用. 上面提到const引用为形参的属性,也就是说,如果引用的参数是const,则编译器在某些情况下会生成临时变量,比如下面这两种情况:1, 实参类型不正确,但可以转换为正确类型.2, 实

c#值类型,引用练习,ref,out

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 {     class Program     {         static void Main(string[] args)         {             int i = 10;//值类型

对String值不可变的理解以及String类型的引用传递问题

今天复习java时,突然注意到了一句以前没有注意过的一句话,String 是final修饰的,其值是不可变的.当时看的一脸懵逼,String str = "abc"; str = "abcde"这两行代码没有任何的错误的.上网百度了许久,还是整理下来防止以后忘记吧. 首先要理解的是,string说的不可变是其值不可变,比如String str = "abc",不可变值得是abc不可变,当我们str = "abcde"时,abc

BOOL类型和引用,三目运算符

c++中的引用 变量名的回顾: 变量实际是一片连续存储空间的别名,而引用呢?引用可以看做已经定义变量的别名: 引用的语法type & name = var; int a = 4; int &b = a; //b为a的别名, b = 5; //操作b就是操作a 注意:普通引用在定义时必须用同类型的变量进行初始化 如果初始化的时候,不是同类型,则会报警告,不是变量也会报错误:不初01始化也会报错误: 实例程序1: #include<stdio.h> int main(void) {