前言
java 和 js 中,数据类型的个人总结,了解堆内存和栈内存,引用数据类型和基本数据类型的关系
一、Java
1.1 概述
变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。
内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。
因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。
Java 的两大数据类型:
- 内置数据类型
- 引用数据类型
1.2 内置数据类型Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。- byte、int、short、long、double、float、char、Boolean
 1.3 引用数据类型特殊的引用数据类型:String类型,比其他的引用类型多了一个公共池的概念
 创建:两种方式
 String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上:- String a = "hello";
- String b = new String("hello");
 - String s1 = "Runoob"; // String 直接创建
- String s2 = "Runoob"; // String 直接创建
- String s3 = s1; // 相同引用
- String s4 = new String("Runoob"); // String 对象创建
- String s5 = new String("Runoob"); // String 对象创建
   二、JSJS语言提供了六种基本类型
 值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
 引用数据类型:对象(Object)、数组(Array)、函数(Function)。注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。 
小洁
1、java 有八种数据类型,js 只有六种
2、String 类型在 java 中不是基本数据类型,在 js 中是的。
基本数据类型的值是按值访问的。
引用类型的值是按引用访问的。==  在基本数据类型中比较的是值,在引用数据类型中比较的是引用
==  和 euqals
- ==比较两个对象在内存里是不是同一个对象,就是说在内存里的存储位置一致。 两个String对象存储的值是一样的,但有可能在内存里存储在不同的地方。
- ==比较的是引用而equals方法比较的是内容。- public boolean equals(Object obj)这个方法是由Object对象提供的,可以由子类进行重写。默认的实现只有当对象和自身进行比较时才会返回true,这个时候和==是等价的。String, BitSet, Date,和File都对equals方法进行了重写,对两个String对象而言,值相等意味着它们包含同样的字符序列。对于基本类型的包装类说,值相等意味着对应的基本类型的值一样。- public class Test2 {
- public static void main(String[] args) {
- String a = "hello";
- String c = "hello";
- String b = new String("hello");
- String d = a;
- d = "h";
- System.out.println(a == b); //false
- System.out.println(a.equals(b)); //true
- System.out.println(a == c); //true
- System.out.println(a.equals(c)); //true
- System.out.println(a == d); //true
- System.out.println(a.equals(d)); //true
- System.out.println("a = " + a); //hello
- System.out.println("b = " + b); //hello
- System.out.println("c = " + c); //hello
- System.out.println("d = " + d); //h
- }
- }
 
 
                         
                                

