精华内容
下载资源
问答
  • Java 数据类型(基本数据类型引用数据类型)

    千次阅读 多人点赞 2013-12-11 23:40:11
    Java 数据类型(基本数据类型引用数据类型) 简单的介绍

    一. Java数据类型概览


    二. Java中八大基本数据类型

    类型名称类型定义取值范围
    boolean布尔值,作二元判断true, false
    byte8位有符号整数-128 ~  127
    short16位有符号整数-32768 ~ 32767
    int32位有符号整数-2147483648(-231)~ 2147483647(231-1)
    long64位有符号整数-263~ (263-1)
    float32位浮点数1.4E-45 ~ 3.4028235E38
    double64位浮点数4.9E-324 ~ 1.7976931348623157E308
    char16位Unicode字符0 ~ 65535

    注意:

    (1)Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的“E+数字”表示E之前的数字要乘以10的多少倍。

       比如3.14E3就是3.14×1000=3140,3.14E-3就是3.14/1000=0.00314。

    (2)Java语言中,默认的整数类型是int类型,声明long类型的时候,后面必须要加个l(字母L的小写)或者L,建议使用大写L,防止和数字1混淆,如:30L;

    (3)Java语言中,默认的浮点数类型是double,声明float类型的时候,后面必须添加字母f或者F,如3.14F,3.14f;

    (4)Java语言中,char类型为16位Unicode字符,Unicode字符中的取值不存在负数范围,所以它的取值范围为 0 ~ 65535,—— 有点类似 “无符号数”;


    三. Java中八大基本数据类型的转换

    (1)boolean不可以转换为其他的数据类型;

    (2)整数型,浮点类型,字符型是可以相互转换的,转换时遵守下面的原则:

         a) 容量小的类型自动转换为大的类型,数据类型按容量大小排序为:

              byte, short, char < int < long <float < double

         b) byte, short, char 三种类型间不会相互转换,他们三者在计算时,首先会转换为int类型;

         c) 容量大的类型在转换为小的类型的时候,必须加上强制转换符,此时可能造成精度降低或者溢出问题;

         d) 有多种数据类型混合计算的时候,系统首先自动转换为容量最大的那个类型再来继续计算;

         e) 默认的浮点数类型是double,如:1.2; 默认的整数类型是int类型,如:1;


    四. 关于字符串问题

         记得我上学那会,还把String类型当做一个基本数据类型,现在想想真是可笑! String是java.lang.String包下的一个类,也就是引用类型中的类类型(说白了它就是一个类),

         在Java中java.lang.* 下的所有包都是自动引入的,所以同学们可要注意了!

    展开全文
  • JS数据类型引用数据类型

    千次阅读 2019-06-28 16:46:51
    1、引用数据类型也就是对象数据类型object,比如:object、array、function、data等; 2、引用类型的值可以改变: let person = {name: 'lisa'} person.name = 'Jane' // 通过修改对象属性值更改对象 console....

    1、引用数据类型也就是对象数据类型object,比如:object、array、function、data等;

    2、引用类型的值可以改变:

      let person = {name: 'lisa'}
      person.name = 'Jane' // 通过修改对象属性值更改对象
      console.log(person) // 输出:{name: "Jane"}
      person.age = 18 // 给对象增加一个属性
      console.log(person) // 输出:{name: "Jane", age: 18}
      let arr = [1, 2, 3, 4, 5]
      arr[0] = 0 // 更改数组的某一个元素
      console.log(arr) // 输出:[0, 2, 3, 4, 5]
      arr[5] = 6 // 给数组增加一个元素
      console.log(arr) // 输出:[0, 2, 3, 4, 5, 6]

    3、引用类型可以添加属性和方法:

      let person = {}
      person.name = 'lisa'
      person.say = function () {
        alert('hello world')
      }
      console.log(person.name)   // 输出:lisa
      console.log(person.say)   // 输出:function () { alert('hello world') }

    4、引用类型的赋值是对象引用

      let a = {}
      let b = a
      a.name = 'lisa'
      console.log(a.name)  // 输出:lisa
      console.log(b.name)  // 输出:lisa
      b.age = 18
      console.log(a.age)  // 输出:18
      console.log(b.age)  // 输出:18

    看上面的代码,我们发现当从一个变量向另一个变量赋值引用类型的值时候,同样会将存储在变量中的对象的值复制一份放到位新变量分配的空间中,引用类型保存在变量中的是对象在堆内存中的地址。所以,与基本数据类型的简单赋值不同,这个值的副本实际上是一个指针,而这个指针指向存储在堆内存的一个对象。那么赋值操作后,两个变量都保存了同一个对象的地址,而这两个地址都指向了同一个对象,因此,改变其中任何一个变量,都会互相影响。

    关系图如下所示:

    所以,引用类型的赋值其实是对象保存在栈区地址指针的赋值,所以两个变量指向同一个对象,任何的操作都会互相影响。

    5、引用类型的比较是引用的比较

      let man = {}
      let woman = {}
      console.log(man === woman) // 输出:false

    看上面的例子发现,两个对象一模一样,但是却不相等。因为引用类型的比较是引用的比较,换句话说,就是比较两个对象保存在栈区的指向堆内存的地址是否相等,此时,虽然man和woman看起来都是一个“{}”,但是他们保存在栈区中的指向堆内存的地址却是不同的,所以两个对象不相等。

    6、引用类型是同时保存在栈区中和堆区中的,引用类型的存储需要在内存的栈区和堆区中共同完成,栈区保存变量标识符和指向堆内存的地址:

      let a = {name: 'aaa'}
      let b = {name: 'bbb'}
      let c = {name: 'ccc'}

    上面三个对象的内存中保存情况如下图:

     

    展开全文
  • javascript中基本数据类型引用数据类型的区别1、基本数据类型引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型引用数据类型。 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成...

    根据这篇文章可以理解一下java中的基本数据类型与引用数据类型的区别,写的很好!

    javascript中基本数据类型和引用数据类型的区别

    1、基本数据类型和引用数据类型

      ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型。

      基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象。

      当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值。

    2、常见的基本数据类型:

      Number、String 、Boolean、Null和Undefined。基本数据类型是按值访问的,因为可以直接操作保存在变量中的实际值。示例:

      var a = 10;

      var b = a;

      b = 20;

      console.log(a); // 10值

      上面,b获取的是a值得一份拷贝,虽然,两个变量的值相等,但是两个变量保存了两个不同的基本数据类型值。

      b只是保存了a复制的一个副本。所以,b的改变,对a没有影响。

      下图演示了这种基本数据类型赋值的过程:

         

    3、引用类型数据:

      也就是对象类型Object type,比如:Object 、Array 、Function 、Data等。

      javascript的引用数据类型是保存在堆内存中的对象。

      与其他语言的不同是,你不可以直接访问堆内存空间中的位置和操作堆内存空间。只能操作对象在栈内存中的引用地址。

      所以,引用类型数据在栈内存中保存的实际上是对象在堆内存中的引用地址。通过这个引用地址可以快速查找到保存中堆内存中的对象。

      var obj1 = new Object();

      var obj2 = obj1;

      obj2.name = "我有名字了";

      console.log(obj1.name); // 我有名字了

      说明这两个引用数据类型指向了同一个堆内存对象。obj1赋值给onj2,实际上这个堆内存对象在栈内存的引用地址复制了一份给了obj2,

      但是实际上他们共同指向了同一个堆内存对象。实际上改变的是堆内存对象。

      下面我们来演示这个引用数据类型赋值过程:

        

    4、总结区别

      a 声明变量时不同的内存分配: 

      1)原始值:存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置

        这是因为这些原始类型占据的空间是固定的,所以可将他们存储在较小的内存区域 – 栈中。这样存储便于迅速查寻变量的值。

      2)引用值:存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存地址。

         这是因为:引用值的大小会改变,所以不能把它放在栈中,否则会降低变量查寻的速度。相反,放在变量的栈空间中的值是该对象存储在堆中的地址。

         地址的大小是固定的,所以把它存储在栈中对变量性能无任何负面影响。

       b 不同的内存分配机制也带来了不同的访问机制
       
      1)在javascript中是不允许直接访问保存在堆内存中的对象的,所以在访问一个对象时,
        首先得到的是这个对象在堆内存中的地址,然后再按照这个地址去获得这个对象中的值,这就是传说中的 按引用访问
      2)而原始类型的值则是可以直接访问到的。
      
      c 复制变量时的不同
      
      1)原始值:在将一个保存着原始值的变量复制给另一个变量时,会将原始值的副本赋值给新变量, 此后这两个变量是完全独立的,他们只是拥有相同的value而已。
      2)引用值:在将一个保存着对象内存地址的变量复制给另一个变量时,会把这个内存地址赋值给新变量,
        也就是说这两个变量都指向了堆内存中的同一个对象,他们中任何一个作出的改变都会反映在另一个身上。
        (这里要理解的一点就是,复制对象时并不会在堆内存中新生成一个一模一样的对象,只是多了一个保存指向这个对象指针的变量罢了)。 多了一个指针
     
       d 参数传递的不同(把实参复制给形参的过程
      
      首先我们应该明确一点:ECMAScript中所有函数的参数都 是按值来传递的。
      但是为什么涉及到原始类型与引用类型的值时仍然有区别呢?还不就是因为内存分配时的差别。  
      1)原始值:只是把变量里的值传递给参数,之后参数和这个变量互不影响。
      2)引用值:对象变量它里面的值是这个对象在堆内存中的内存地址,这一点你要时刻铭记在心!
        因此它传递的值也就是这个内存地址,这也就是为什么函数内部对这个参数的修改会体现在外部的原因了,因为它们都指向同一个对象。

    转载自大佬的博客:https://www.cnblogs.com/cxying93/p/6106469.html

    展开全文
  • JS有六大数据类型: Number、String、Boolean、Null、Undefined、Object ​ 这些数据类型可以通过 typeof关键字 进行检测 typeof 123 //number typeof 'abc' //string typeof true //boolean typeof ...

    JS有六大数据类型:

    Number、String、Boolean、Null、Undefined、Object

    这些数据类型可以通过 typeof关键字 进行检测

    typeof 123			//number
    
    typeof 'abc'		//string
    
    typeof true			//boolean
    
    typeof undefined	//undefined
    
    typeof null			//object
    
    typeof { }			//object
    
    typeof [ ]			//object
    
    typeof function(){}	//function
    

    null类型进行typeof操作符后,结果是object,原因在于,null类型被当做一个空对象引用。

    JS的这些数据类型又分为两大类:

    一种存在堆中,叫做引用数据类型,做等号赋值操作进行的是址传递

    一种存在栈中,叫做基本数据类型,做等号赋值操作进行的是值传递

    存在堆中:引用数据类型(object、function)

    存在栈中:基本数据类型(number、string、boolean、null、unedfined)

    数组Array被归为object类型,用typeof 检测不出来,需要用到 instanceof

    var arr = [];
    console.log(arr instanceof Array);        //true 
    
    展开全文
  • js数据类型(基本数据类型 | 引用数据类型

    千次阅读 多人点赞 2020-08-06 16:46:45
    引用数据类型:Object(在JS中除了基本数据类型以外的都是对象,数据是对象,函数是对象,正则表达式是对象) 1、基本数据类型(六)存放在栈中 基本数据类型是指存放在栈中的简单数据段,数据大小确定,内存...
  • java数据类型(八基本数据类型+三种引用类型

    万次阅读 多人点赞 2017-02-08 11:05:32
    2引用数据类型 二:注意事项: 1:java开发过程中整型用int、小数用double、布尔用boolean; 2:类型转换都是小范围向大范围转换,大范围往小范围转化需要用到强制转换;  例如:(1)int a=12;double b=a;(2...
  • 一个变量可以存放两类型的值,基本类型的值(primitive values)和引用类型的值(reference values)。 ES6 引入了一新的原始数据类型 Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,前六...
  • JAVA基本数据类型引用数据类型

    万次阅读 多人点赞 2016-11-09 09:30:34
    基本数据类型 对象类型 在栈中进行分配 在堆中进行分配 基本类型之间的赋值是创建新的拷贝 对象之间的赋值只是传递引用 “==”和“!=”是在比较值 “==”和“!=”是在比较两个引用是否...
  • Java引用数据类型String详解

    万次阅读 2020-07-02 23:54:44
    Java引用数据类型(String)引用数据类型概述引用数据类型与基本数据类型的差别(举例说明) 引用数据类型概述 说到引用数据类型,那么何为引用数据类型引用类型,都可以用null值作为值,也就是说可以在初始化的...
  • 数据类型:  undefiend 没有定义数据类型  number 数值数据类型 例如 10或者1或者5.5  string 字符串数据类型用来描述文本 例如 "你的姓名"  boolean 布尔类型 true|false 不是正就是反,是或者否,有或者...
  • Java数据类型引用数据类型

    万次阅读 多人点赞 2018-06-26 23:33:29
    我们接着来说数据类型,上一次我们提到了java中的八种数据类型,没有涉及到引用类型,而java的引用类型只有三,分别是类(class)、接口(interface)、数组。如下图所示 Java把内存分成两,一叫做栈内存,一...
  • 编辑器所开发的代码都是推送到浏览器。...将基本数据类型存在当前栈里边,解析到引用数据类型的时候,他会接着做另一个辅助工作,在浏览后台开辟一个堆内存(私有作用域),来储存我们的代码字符;
  • 两者之间的关系特点:一、从概念方面来说基本数据类型:变量名指向具体的数值引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值二、从内存构建方面来说基本数据类型:变量在声明之后java就会立刻分配给...
  • 关于String为值类型还是引用类型的讨论一直没有平息,最近一直在研究性能方面的问题,今天再次将此问题进行一次明确。希望能给大家带来点帮助。 如果有错误请指出。 来看下面例子: 复制代码 复制代码 //值类型 int ...
  • js数据类型:基本数据类型引用数据类型(文章最下面会介绍各类型的基础以及注意事项) 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象 当我们把变量赋值给一个变量时,解析器首先要确认...
  • js的基本数据类型引用数据类型 js的六大数据类型 Number, String, Boolean, Undefined , Null , Object ...1.对于存放两种数据类型的变量 :存放 js基本数据类型的变量存放的是基本类型...
  • 声明引用数据类型(数组或对象),会将实际的数据存放在堆内存中,同时,在栈内存中声明一个数组名或对象名, 存放着在堆内存中的首地址; 所以,当使用数组名赋值时,传递的是地址。总的来说,引用数据类型传的是...
  • JavaScript中基本数据类型引用数据类型的区别

    千次阅读 多人点赞 2018-01-06 11:09:53
    原文地址 ... 1、基本数据类型和引用数据类型  ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型。... 当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值。
  • 一、JavaScript里有哪些数据类型,解释清楚null 和undefined,解释清楚原始数据类型引用数据类型。比如讲一下1 和Number(1)的区别 数据类型:  undefined,没有定义数据类型  number,数值数据类型,例如10...
  • Java数据类型分为基本数据类型引用数据类型。 1、 基本数据类型 byte:Java中最小的数据类型,在内存中占1个字节(8 bit),取值范围-128~127,默认值0 short:短整型,2个字节(16 bit),取值范围-...
  • Java基本数据类型引用类型的区别

    千次阅读 2020-08-27 23:30:52
    新语言Kotlin已经抛弃了Java里的基本数据类型,而是采用引用类型去声明一个变量,那么怎么区分基本数据类型引用类型呢? 文字概念 基本数据类型:byte、short、int、long、float、double、char、boolean引用类型:...
  • 基本数据类和引用数据类型

    万次阅读 多人点赞 2018-06-07 22:19:07
    Java提供了两类数据类型:一是基本数据(原始类型),一引用类型数据类型图: 基本数据类型: 注意: 1.在基本数据类型中,除了boolean类型所占长度与平台有关外,其他数据类型长度都是与平台无关的...
  • 引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。 例如,有一个类Person,有属性name,age,带有参
  • java中键值对数据类型属于引用数据类型吗,可以进行加减乘除操作吗
  • 基本类型和引用类型 ECMAScript包含两个不同类型的值:基本类型值和引用类型值。...常见的五基本数据类型是: Undifined、Null、Boolean、Number和String。这五基本数据类型可以直接操作保存在变量中的实际值。
  • 在javascript中申明变量使用的关键字都是var,这点与其他的编程语言不尽相同,但是javascript亦含有五基本的数据类型(也可以说是简单数据类型),它们分别是:Undefined,Null,Boolean,Number和String。...
  • Java有 5种引用类型(对象类型):类 接口 数组 枚举 标注 引用类型:底层结构和基本类型差别较大 JVM的内存空间: (1). Heap 堆空间:分配对象 new Student() (2). Stack 栈空间:临时变量 Student stu (3)...
  • 点击进入_更多_Java千百问1、null属于哪种数据类型首先,在java中,null本身不是对象,也不是Objcet的实例。那么他属于哪种数据类型呢? 了解数据类型看这里:java中数据类型是什么 java基本数据类型看这里:[java...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,400,966
精华内容 560,386
关键字:

哪种数据类型是引用类型