>>分享孙卫琴的Java技术专稿和著作 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 24267 个阅读者 刷新本主题
 * 贴子主题:  【Java基础编程专题】Java基本类型和引用类型的三个区别 回复文章 点赞(0)  收藏  
作者:sunweiqin    发表时间:2017-07-04 13:03:38     消息  查看  搜索  好友  邮件  复制  引用

本文参考:
《Java面向对象编程》,作者:孙卫琴
《漫画Java编程》,作者:孙卫琴,杜聚宾

对于初学者,不太容易理解基本类型与引用类型有什么区别。现在介绍一下它们的三个区别。

区别一:基本类型只表示数据,而引用类型(数组类型除外)除了表示数据,还可以拥有方法


下面以double基本类型和Double类类型为例,来解释这两者的区别。从2.1节开头的图2-1可以看出,类类型是引用类型的一种。
double基本类型仅仅表示基本的浮点型数据,而Double是一种类类型,它不仅能表示一个浮点型数据,而且还具有各种各样的方法。例如:
//定义一个double基本类型变量v1,并为它赋值
double v1=12.4;  
//定义一个Double类类型的变量v2,并使它引用一个表示12.4的Double对象
Double v2=new Double(12.4);    
//调用v2变量所引用的Double对象的intValue()方法
int v3=v2.intValue();   //v3=12

在以上代码中,v1是double基本类型,v2是Double类类型,可以通过v2.intValue()的形式,来访问它的intValue()方法,该方法返回浮点数的整数值,v3变量的取值应该是12。

区别二:基本类型的种类固定,而类类型的种类可以无限扩充

基本类型的种类是JDK内置并且固定的,一种只有八种。而在Java类库中提供了许多类类型。为了便于组织这些类,JDK把这些类放在不同的包中,主要包括:java.lang包、java.io包、java.util包、java.awt包、javax.swing包和java.sql包等。Double类就位于java.lang包中。
另外,类类型允许开发人员随意扩充,自行定义,例如Calculater类就是开发人员自己定义的一种类类型。

区别三:基本类型表示简单的数据结构,而类类型可以表示复杂的数据结构

基本类型可以表示数字和字符等简单数据,而类类型可以灵活地表示各种复杂的数据结构,例如以下Dog类中包含了String类型、int类型和char类型的数据:

public class Dog{
  String  name;  //表示狗的姓名
  int age;   //表示狗的年龄
  char gender;  //表示狗的性别。‘M’表示雄性,‘F’表示雌性
  ……
}

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 admin 在 2022-03-15 14:44:46 重新编辑]
  Java面向对象编程-->输入与输出(下)
  JavaWeb开发-->访问数据库(Ⅱ)
  JSP与Hibernate开发-->第一个helloapp应用
  Java网络编程-->RMI框架
  精通Spring-->Vue组件开发高级技术
  Vue3开发-->通过Vuex进行状态管理
  【Vue.js技术专题】Vue组件的数据监听
  【Vue.js技术专题】路由导航中抓取数据
  【Vue.js技术专题】路由管理器的基本用法
  【Vue.js技术专题】命名路由
  【Spring Cloud Alibaba专题】Nacos集群的Raft算法
  向小伙伴们推荐我所创作前后端编程书籍的学习顺序
  【Spring专题】把Model的数据存放在session范围
  【Spring专题】用AOP和SLF4J输出日志的范例
  【持久化专题】@Access注解设定Hibernate访问类的属性的方式
  【持久化专题】通过JPA API调用存储过程
  【Java网络编程专题】用Java套接字访问HTTP服务器读取网页数...
  【Java网络编程专题】创建基于SSL的安全服务器和安全客户的范...
  【Java网络编程专题】异步通道和异步运算结果
  《大话Java程序设计从入门到精通》写作花絮
  【Java基础编程专题】Java集合的批量操作
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。