java中理解引用数据类型
一.java中基础数据类型与引用数据类型的区别
1.1基础数据类与引用数据类型介绍
1.基础数据类型:①整数类型:long、int、short、byte
②浮点类型:float、double
③字符类型:char
④布尔类型:boolean
2.引用数据类型:类、 接口类型、 数组类型、 枚举类型、 注解类型、 字符串型,例:String
类型就是引用类型。
1.2存储位置的区别
基本变量类型
- 在方法中定义的非全局基本数据类型变量的具体内容是存储在栈中的
引用变量类型
- 只要是引用数据类型变量,其具体内容都是存放在堆中的,而栈中存放的是其具体内容所在内存的地址
如图:
基本数据类型 引用数据类型:
1.3传递方式的区
基本变量类型
- 在方法中定义的非全局基本数据类型变量,调用方法时作为参数是按数值传递的
引用变量类型
- 引用数据类型变量,调用方法时作为参数是按引用传递的,传递的是引用的副本
二.String判断字符串相等
2.1java中字符串的基本存储原理
1.常量池中的字符串仅是符号,第一次用到的时候才变为对象
2.利用串池的机制,来避免重复创建字符串对象
3.字符串常量拼接原理是StringBuilder(1.8)
4.可以使用intern方法,主动将串池中还没有的字符串放入串池(1.8是放入,1.6是复制副本放入)
2.2举例
public class ComPareString {public void test(){String str1="a";//"a"第一次用到,变为对象String str2="b";String str3="a";//判断str1==str3为true,str1与str2指向的都是在串池中的对象"a"String str4="ab";String str5="a"+"b";//判断str4==str5为true,str4在编译的过程中就完成了拼接为"ab"// ,与上述同理,与str4所指是同一对象String str6=str1+str2;//判断str4==str6为false,str1与str2为变量,实际上是//new StringBuilder().append("a").append("b").toString(),即new String("ab") //新创建了对象,并不是在串池中的"ab",所以为falseString str7=str6.intern();//将str6字符串对象放入串池中,如果串池中有就不会放入,如果没有就会放入,最后会把串池中的对象返回//所以str7现在所指的对象与str4是一样的,str4与str6不相等,故判断str6==str7为falseString s8=new String("abc");String s9=s8.intern();//判断s8==s9,如果jdk为1.8则为true,如果jdk为1.6则为false} }
三.java创建链表错误点总结
Node h = new Node(); Node n=new Node(); Node n2=h.next; n2=n; //奇奇怪怪的错误(捂脸),无论next是null或是非null都不可以这样写,n2=n就是把n的引用赋值给了n2,这样的话n2与h.next就没有任何关系了//正确写法 n.next=null; h.next=n;
java中理解引用数据类型相关推荐
- Java中的引用数据类型-BigDecimal
BigDecimal不属于基本数据类型,属于Java对象(引用数据类型),精度极高 1.字符串转BigDecimal String str="24999.82"; BigDecim ...
- java基础之java中的基本数据类型
java基础之java中的基本数据类型 学习java一段时间了,使用java也差不多一年多了,可是对于后续的java的学习真的是后劲不足,或者是说懒惰吧,回想一下这一年多,用java最多的就是Andr ...
- Java语言程序设计 上机实验2 掌握Java的基本语言成分和流程控制语句。 掌握Java中数组的使用,理解引用数据类型。 掌握String类的使用。...
Java语言程序设计 上机实验2 实验目的: 掌握Java的基本语言成分和流程控制语句. 掌握Java中数组的使用,理解引用数据类型. 掌握String类的使用. 实验内容: 注:标(*)为选做内 ...
- [转载] JAVA中分为基本数据类型及引用数据类型
参考链接: C++和Java中布尔数据类型的比较 一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型, ...
- java中的基本数据类型_Java中的基本数据类型和引用数据类型
数据类型用于帮助确定变量可存放的一组值,以及可对这组特定值执行的操作.Java提供了在所有平台上都普遍支持的多种数据类型. 一.基本数据类型 byte:Java中最小的数据类型,在内存中占8位(bit ...
- java虚引用作用_深入理解Java中的引用(二)——强软弱虚引用
深入理解Java中的引用(二)--强软弱虚引用 在上一篇文章中介绍了Java的Reference类,本篇文章介绍他的四个子类:强引用.软引用.弱引用.虚引用. 强引用(StrongReference) ...
- java byreference_深入理解Java中的引用(一)——Reference
深入理解Java中的引用(一)--Reference 本系列文章首先会介绍Reference类,为之后介绍的强引用.软引用.弱引用和虚引用打下基础. 最后会介绍虚引用在DirectBuffer回收中的 ...
- Java程序设计语言基础02:Java中的基本数据类型和运算符
目录 1. Java中的基本数据类型 1.1 概述 1.2 基本数据类型的值域 1.2.1 byte类型 1.2.2 short类型 1.2.3 int类型 1.2.4 long类型 1.2.5 fl ...
- Java中 方法引用、Stream流、及方法实例 D190401
Java中 方法引用.Stream流.及方法实例 D190401 01.第三章:方法引用_什么是方法引用 1).什么是"方法引用":指引用现有的方法代替Lambda表达式--当我们 ...
最新文章
- 研究生要这样度过!(转)
- 【linux】——Linux tar打包命令
- MS CRM 4中,添加营销列表成员查找列
- 英语音标原来这么丰富,换个角度把欧洲语言作为一个体系
- GPS坐标转换(一)-基础知识
- qgridlayout 滚动时固定第一行_【德国进口轴承】滚动轴承组合设计应考虑的问题...
- Android 集成腾讯播放器sdk(支持多格式,直播,m3u8等)重点是免费
- Push rejected: Push to origin/test was rejected
- VoIP技术应用中存在的问题的分析研究
- 来自一个大三开学三周的huster的迷茫与失措
- hosts : IP - 主机名/域名映射
- springboot冷链物流信息调度系统毕业设计源码210951
- java xml 查询_java对xml进行查询操作代码
- ERROR : Error appeared during Puppet run: x.x.x.x _keystone.pp
- mplab c30 注册方法
- 流水灯循环点亮c语言程序,流水灯来回点亮程序(汇编和C)
- 孩子好动爱疯跑就是感统失调吗?不一定!
- WinCC连接MySQL
- hbase周学习——赵俊杰
- 分享丨千兆网之RGMII SGMII解析