>>分享孙卫琴的Java技术专稿和著作 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 24242 个阅读者 刷新本主题
 * 贴子主题:  【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面向对象编程-->Swing组件(下)
  JavaWeb开发-->Servlet技术详解(Ⅱ)
  JSP与Hibernate开发-->JPA API的高级用法
  Java网络编程-->对象的序列化与反序列化
  精通Spring-->绑定CSS样式
  Vue3开发-->创建综合购物网站应用
  【Vue.js技术专题】Vue组件的数据监听
  【Vue.js技术专题】路由管理器的基本用法
  【Spring Cloud Alibaba专题】GateWay的内置断言工厂
  【Spring Cloud Alibaba专题】SkyWalking整合MySQL
  【Spring Cloud Alibaba专题】Nacos集群的Raft算法
  【Spring Cloud Alibaba专题】Nacos配置属性的持久化
  【Spring专题】用AOP和SLF4J输出日志的范例
  【持久化专题】JPA API的级联操作
  【持久化专题】@Enumerated注解映射枚举类型
  【持久化专题】映射Bag包(值类型的集合)
  【持久化专题】通过JPA API调用存储过程
  【Java网络编程专题】通过JDBC API调用存储过程
  【JavaWeb专题】在Servlet中利用Apache开源类库实现文件上传
  IT技术书写作技巧分享:慎用概念和术语
  【Java基础编程专题】定时器Timer类的用法
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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