-
2020-10-26 14:07:17
值传递和引用传递的定义:
值传递:作为参数传递时只传递了值,参数本身没有传递,如果被传递的方法改变传递后的变量参数值,原变量不会改变。
引用传递: 作为参数传递时传递的是参数本身,如果被传递的方法改变传递后的变量参数值,原变量也会随之改变。
基本数据类型数据传递方式:
基本数据类型是典型的值传递方式:
int i = 99; int j = i; i = 90; System.out.println(i); System.out.println(j);
很显然,结果是:
90
99
在此可得出基本数据类型所使用的是值传递方式。
String的数据传递方式:
String使用的也是值传递方式:
String q = new String("90");//String q = "90";效果一样 String p = q; q = "99"; System.out.println(q); System.out.println(p); System.out.println(System.identityHashCode(q)); System.out.println(System.identityHashCode(p));
结果显示:
99
90
1870252780
1729199940
可以看的出来若是引用传递,p和q应该数值打印结果一样,所以String也是值传递
其他复合数据类型:
其他复合数据类型包括数组、类以及接口等均为值传递方式:
(自定义类:DataDo类演示)DataDo dataDo = new DataDo(); DataDo dataDo1 = new DataDo(); dataDo1 = dataDo; dataDo.setUrl("ppppppppp"); System.out.println(dataDo.getUrl()); System.out.println(dataDo1.getUrl()); System.out.println(System.identityHashCode(dataDo)); System.out.println(System.identityHashCode(dataDo1));
结果:
ppppppppp
ppppppppp
111156771
111156771
可以看出DataDo类是地址值传递方式,乍一看,像是引用传递方式,改变了dataDo的url属性,dataDo1的url也随之改变
但看得出来两个对象的地址值是一样的,所以改变的只是堆里面的数,并没有改变实际,看下面的例子就可以看出DataDo dataDo = new DataDo(); DataDo dataDo1 = dataDo; dataDo.setUrl("ppppppppp"); DataDo dataDo2 = new DataDo(); dataDo = dataDo2; System.out.println(dataDo.getUrl()); System.out.println(dataDo1.getUrl()); System.out.println(System.identityHashCode(dataDo)); System.out.println(System.identityHashCode(dataDo1));
结果:
null
ppppppppp
111156771
1519736165可以看出,dataDo改变了,如果是引用传递方式,dataDo1必然随之改变,而造成实际结果的原因是:
地址值传递只是将地址值的指向拷贝一份,分发给了dataDo1,所以dataDo和dataDo1都指向到同一个数据上,而造成看起来很像引用传递的样子;
此时重新给dataDo1分配一个dataDo2的地址值指向,就会改变了dataDo1的指向,但和dataDo完全没有关系,因为之前他们指向同一个数据只是拷贝了地址值,所以此时dataDo1更换指向和dataDo没有任何关系,所以可以看的出来,复合数据类型所用的也是值传递,而符合数据类型和String都是地址值传递但却有所不同的原因是,Stirng用final修饰了。更多相关内容 -
java数据结构和算法(第二版)
2012-11-29 21:12:37Java数据结构的类库 小结 问题 第2章数组 Array专题Applet Java中数组的基础知识 将程序划分成类 类接口 Ordered专题applet 有序数组的Java代码 对数 存储对象 大O表示法 为什么不用数组表示一切? 小结 问题 实验 ... -
java数据类型
2022-02-28 00:38:12java数据类型可分为两大类(基本数据类型、引用类型),而基本数据类型可细分为4类8种。每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(例如byte占1个字节)。 一、基本数据类型4类 1、整数...java数据类型可分为两大类(基本数据类型、引用类型),而基本数据类型可细分为4类8种。每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(例如byte占1个字节)。
一、基本数据类型4类
1、整数型 byte [1]、short[2] 、int[4] 、long[8]
2、浮点型 float [4]、 double[8]
3、字符型 char[2],存放单个字符,如’a’、‘男’,单个字母占1个字节,单个汉字占2个字节
4、布尔型 boolean[1],存放true、false
整数型和浮点型都属于数值型,因此也可以说是3类。
二、基本数据类型8种
三、引用类型
1、类 class
2、接口 interface
3、数组 [ ] -
java数据类型有哪些
2021-02-12 11:33:24【推荐课程:Java教程】java数据类型有:1、基本数据类型简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义,它表示了真实的数字、字符和整数。在Java中共有八种基本数据类型,它们分别是以下几种类型...Java中的数据类型分为两大类分别是基本类型和引用类型,基本类型包含int,float,double,char,boolean等八种类型,引用类型包含类,数组,接口三种类型。
【推荐课程:Java教程】
java数据类型有:
1、基本数据类型
简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义,它表示了真实的数字、字符和整数。
在Java中共有八种基本数据类型,它们分别是以下几种类型:数据类型描述占用字节取值范围默认值
int整型,用于存储整数4个字节-2147483648~21474836470
byteJava中最小的数据类型1个字节-128~1270
short短整型2个字节-32768~327170
long长整型8个字节-2^63~2^63-10L
float浮点型,用于存储带小数点的数字4个字节/0.0f
double双精度浮点型,用于存储带有小数点的数字8个字节/0.0d
char字符型,用于存储单个字符2个字节0~65535空
boolean布尔类型,用于判断真或假1个字节仅有两个值,即true、falsefalse
注:一个字节等于8位(bit)
2、引用数据类型:
在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
Java中的引用类型共有三种,分别是类,数组,接口这些引用类型的默认值都是null
基本类型与引用类型区别:
基本数据类型和引用类型的区别主要在于基本数据类型是分配在栈上的,而引用类型是分配在堆上的
总结:以上就是本篇文章的全部内容了,希望对大家有所帮助。
-
Java 数据类型及其判断
2021-03-05 17:34:31一、Java中的数据类型,可分为两类:1.基本数据类型,也称原始数据类型:byte、short、char、int、long、float、double、boolean它们之间的比较,应该用双等号(==)比较的是它们的值。2.引用数据类型:JAVA当中所有的...一、Java中的数据类型,可分为两类:
1.基本数据类型,也称原始数据类型:
byte、short、char、int、long、float、double、boolean它们之间的比较,应该用双等号(==)比较的是它们的值。
2.引用数据类型:
JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。
但在一些类库当中这个方法被覆盖掉了,如String、Integer、Date。在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。
对于引用数据类型之间进行equals比较,在没有重写equals方法的情况下,它们之间的比较还是基于它们在内存中的存放位置的地址值的,因为Object的equals方法也是用双等号进行比较的,所以比较后的结果跟双等号的结果相同。
注意:
比较的是操作符两端的操作数是否是同一个对象。
两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。
比较的是地址。如果是具体的阿拉伯数字的比较,值相等则为true,如:
int a=10 与 long b=10L 与 double c=10.0都是相同的(为true),因为他们都指向地址为10的堆。
-
java数据流
2018-11-13 14:44:27Java数据流 Java数据流分为两种:字节流(Byte)和字符流(Character) 标准流 字节流:以8位为为单位对二进制数据进行操作对数据不进行转换。这些类都是InputStream和OutputStream的子类. FileInputStream(File ... -
Mysql中tinyint与Java数据类型对应关系
2020-11-28 17:00:20Mysql中,如果使用tinyint来设置字段的数据类型,映射到Java数据类型中,不仅可以使用上面的Boolean类型来接收,也可以使用Java中int类型来接收。在MySQL中存储的tinyint(1)类型数据,不仅可以存储0和1,任意一个一... -
头歌JAVA数据结构答案
2021-11-28 13:54:22头歌JAVA数据结构答案 一、Java数据结构-循环链表的设计与实现 第1关 单循环链表的实现—链表的添加、遍历 package step1; /** * Created by sykus on 2018/1/15. */ public class MyCircleLinkedList { private... -
Java 数据结构与算法 (尚硅谷Java数据结构与算法)笔记目录
2019-08-08 17:41:18红色的表示重要,绿色的表示暂时还不懂而且很重要 线性结构和非线性结构 队列 ...冒泡排序(Java) ...选择排序(Java) 插入算法(Java) 希尔排序(Java) 快速排序(Java) 归并排序(Java) -
java 数据可视化
2018-10-23 21:07:27因为时间比较紧,做软件的话需要同时制作PC端和移动端,用c/c++开发周期比较长,加之除c/c++外目前只会java,因此便选用jsp的方式实现数据的可视化。 记录下设计思路: 首先将项目分为三大块: |–页面层–|--... -
Java数据类型(八种基本数据类型 + 四种引用数据类型)
2020-11-24 23:20:25一、JAVA中的数据类型分为分为两大类: 1.基本数据类型(八种): 类型名称 占用字节 数据范围 默认值 字 节 byte 1 -128 ~ 127 0 短整型 short 2 -32768 ~ 32767 0 整 型 int 4 -2^31 ~ 2^31 - 1 0 ... -
Java数据存储之---ArrayList
2022-04-15 09:58:19ArrayList简介 -
Mysql中Bigint与Java数据类型对应关系
2020-11-27 22:32:53MySQL中,有符号类型 Bigint(20)的取值范围为-...MySQL中,无符号类型Bigint(20) unsigned的取值范围是0 ~ 18446744073709551615,其中有一半的数据超出了Java中Long类型的取值范围,mybatis/mybatis-plus会将 Big. -
从零开始java数据权限篇:数据权限
2019-09-09 11:59:05二:数据权限的数据切割 1.数据对应的层级图 2.用户数据查询 3.用户流程管理 4.部门-岗位-公司查询拓扑图 三.说明 一:数据权限的产生 在一个后管系统中,由2个最重要的权限划分。第一个访问权限,通过控制... -
Java数据结构和算法.(第二版).rar
2014-11-07 01:00:05Java数据结构和算法.(第二版).rar 免积分下载 -
MySQL中bit与Java数据类型对应关系
2020-11-28 11:23:55MySQL中使用bit存储数据,含义只能表示0或1,bit称为位数据类型;且不能用于计算。存储消耗<...在实际业务中,更常用的是使用bit(1),用1位来表示0或1,映射到Java中的数据类型对应的就是false或true。如.. -
java数据类型对应postgresql的数据类型
2019-09-28 18:11:01java8 postgreSQL LocalDate date LocalTime time LocalDateTime timestamp without timezone OffsetDateTime timestamp with timezone String varchar String text Integer int2 In... -
图解Java数据结构和算法
2019-06-21 10:09:16教程内容:本教程是使用Java来讲解数据结构和算法,考虑到数据结构和算法较难,授课采用图解加算法游戏的方式。内容包括: 稀疏数组、单向队列、环形队列、单向链表、双向链表、环形链表、约瑟夫问题、栈、前缀、中缀... -
MySQL 日期类型及与JAVA数据类型对应关系
2020-11-15 20:25:17四:MySQL 数据类型简介 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 数值类型:****(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型**(FLOAT**、REAL和DOUBLE ... -
Oracle和Java数据类型对应关系
2019-06-20 16:19:50Oracle和Java数据类型对应关系表 oracle字段类型 java数据类型 java数据类型 varchart2 String java.lang.String number(1) boolean java.lang.Boolean number(... -
JAVA数据流概念及标准数据流的实现
2017-06-30 22:52:26为了更有效地进行数据的输入/输出操作,Java将各种数据源的数据,抽象为“数据流”,及stream。数据流:是指一组有顺序的、有起点和终端的字节集合,是对输入/输出的总称。2、数据流的分类:2.1、根据数据流的流向,... -
Java数据类型和MySql数据类型对应关系
2018-01-02 14:16:56Java数据类型和MySql数据类型对应关系 -
Json--Java数据类型对照表(映射)表
2019-01-24 15:26:08Json–Java数据类型对照表(映射)表 在企业级的开发中,json是通用的标准格式,基本上所有的数据都按照json格式来存放,传递。 因此梳理一下,关于java、python和json的关系。(因为博主是java、python双休的。) ... -
Java数据类型对应的各数据库类型
2018-09-25 11:49:58Java与Oracle、IBM Content Manager、Informix及SQL Server映射表: Java与MySql映射表: 注意: 对于bolb,一般用于对图片的数据库存储,原理是把图片打成二进制,然后进行的一种存储方式,在java中对应byte... -
java数据接口实现
2019-06-27 17:57:35 -
JAVA数据结构和算法系列视频教程 20课
2018-07-27 20:59:15课程介绍:基于JAVA语言的数据结构算法视频教程,非常经典的java数据结构基础理论课程,是学习java的必备技能。课程目录:01.第一讲数组02.第二讲简单排序03.第三讲栈和队列04.第四讲链表05.第五讲双端链表和双向链表... -
Java数据结构与算法之学习路线
2016-09-28 17:19:21目录: 1.前言 2.数据结构与算法学习大纲(粗糙) 3.线性结构分类 4.各个线性类型数据结构的特点以及使用场景 5.数组与队列的区别 1.前言: ...去做了两道面试题,全是数据结构和算法的题,由于我的java和 -
java数据类型(八种基本数据类型+三种引用类型)
2017-02-08 11:05:32一:java中数据类型分为两大数据类型: 1基本数据类型;2引用数据类型 二:注意事项: 1:java开发过程中整型用int、小数用double、布尔用boolean; 2:类型转换都是小范围向大范围转换,大范围往小范围转化... -
MySQL中BIGINT与Java数据类型对应问题
2019-03-18 16:29:44问题背景: 最近在做的工作使用了mybatis框架,前两天有一个需求,中间涉及到一条sql,需要将某表中的最大最小主键取出来,mysql中该主键类型是...java.util.Map"> select min(id) as minId, max(id) ... -
Java数据类型划分(分2种)
2016-10-17 09:03:051. 基本数据类型 不牵扯内存分配问题。一共分为八种,分别是byte、short、int、long、float、double、char、boolean。默认值如图所示:2. 引用数据类型 需要开发者为其分配空间。一共分为三种,分别是数组、类、...