>>分享孙卫琴的Java技术专稿和著作 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 32662 个阅读者 刷新本主题
 * 贴子主题:  【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网络编程-->ServerSocket用法详解
  精通Spring-->
  Vue3开发-->虚拟DOM和render()函数
  'Huge Brother': Just How Texans Jerry Hughes is ...
  【Vue.js技术专题】Vue组件的命名规则
  【Vue.js技术专题】注册全局组件和局部组件
  【Vue.js技术专题】路由管理器的基本用法
  【Vue.js技术专题】CSS中DOM元素的过渡模式
  【Spring Cloud Alibaba专题】OpenFeign开启对请求和响应数据...
  【Spring专题】Spring MVC是否过时?
  【Spring专题】RestTemplate类与RESTFul风格的请求
  【持久化专题】用@MapsId注解映射派生主键
  【持久化专题】JPA API的基本用法
  【Java编程基础专题】用Scanner类读取用户在控制台输入的数据
  【Java网络编程专题】盘点用Java抓取HTTP服务器和FTP服务器的...
  【持久化专题】比较JPA的EntityManager接口与Hibernate的Ses...
  【Java基础编程专题】用内部类实现回调
  【Java基础编程专题】用static修饰符进行静态导入的作用和语...
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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