首页 > 编程语言 >面试题支招:Java基本类型和引用类型有哪些区别?

面试题支招:Java基本类型和引用类型有哪些区别?

时间:2023-10-16 22:31:53浏览次数:34  
标签:基本 面试题 Java Double v2 double 类型 java

大力:“基本类型与引用类型有什么区别?”

卫琴:“概括起来,两者有三个区别。掌握了这三个区别,就会对这两种Java类型的本质一目了然。”

面试题支招:Java基本类型和引用类型有哪些区别?_类类型

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

下面以double基本类型和Double类类型为例,来解释这两者的区别。类类型是引用类型的一种。

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’表示雌性
  ……
}

面试题支招:Java基本类型和引用类型有哪些区别?_类类型_02

基本类型数据组装成对象

上文参考孙卫琴的经典Java书籍《Java面向对象编程》

面试题支招:Java基本类型和引用类型有哪些区别?_类类型_03

 


标签:基本,面试题,Java,Double,v2,double,类型,java
From: https://blog.51cto.com/sunweiqin/7894475

相关文章

  • elasticsearch通过Java class类的@Setting和@Mapping来定义索引index
    今天就来和大家讲讲如何将es索引中的mapping和setting在索引index和class联系起来,其实在这个问题也困扰我好久了,一直没有解决,在elasticsearch7.x版本的时候貌似好像可以用request在程序中来建立索引,像Stringindex=“{“mapping”:...}”之类的操作,干起来比较复杂,在elasticsearch......
  • 用java.net.URL类等访问HTTP服务器读取网页数据
    大力:“Java网络编程需要通过套接字去进行客户程序与服务器程序的交互,这种底层的通信实现起来比较麻烦,有没有现成的API呢?”卫琴:“JDK为基于HTTP协议的网络通信提供了协议处理框架API,Java客户程序通过它来访问HTTP服务器,会很方便。”本文以HTTP客户程序为例,介绍URL类和URLConnection......
  • JS 数字类型的加减乘除, 四舍五入保持精度
    Number.prototype.toFixed=function(d=0){ letchangeNum=this+''//把数字转为字符串 if(changeNum.indexOf('-')!=-1){//判断是否是负数 changeNum=Math.abs(Number(changeNum))} changeNum=(Math.round(Number(changeNum)*Math.......
  • MySQL字段的时间类型该如何选择?千万数据下性能提升10%~30%
    MySQL字段的时间类型该如何选择?千万数据下性能提升10%~30%......
  • Java String类
    1.substring()方法返回字符串的子字符串。publicStringsubstring(intbeginIndex)或publicStringsubstring(intbeginIndex,intendIndex)1classMain{2publicstaticvoidmain(String[]args){3Stringstr=newString("thismypractice");4......
  • Java中 length 和 length()的区别
    在Java中,str.length针对的是数组,而str.length()针对的是针对的字符串数组(str.length) 的特点有:长度固定,类型固定。因此数组的长度就可以被视为是一种数组的属性字符串(str.length()) :string的内部机制是一个char数组,而char数组有自己的长度属性,所以string就没必要......
  • cast类型强制转换
    都在运行时执行,而不是在编译时执行,所以有运行成本。它们实际是函数,所以需要传参数,还有返回值。\static_cast:  c++中传统的类型转换直接使用(类型),如果出错也不会提醒错误,但使用static_cast<类型>就会提示reinterpret_cast:   类型相关的转换,起始是底层内存映射的转换......
  • java 获取月初的第一天
    一、背景点击查看代码SimpleDateFormatdf1=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");Datedate=newDate();Dateda=newDate(date.getYear(),date.getMonth(),01);Timestamptimestamp=Timestamp.valueOf(df1.format(da......
  • 在Java中,如何避免检查空值?
    内容来自DOChttps://q.houxu6.top/?s=在Java中,如何避免检查空值?我使用x!=null来避免空指针异常。有没有其他的替代方法?if(x!=null){//...}在我看来,这是一个相对常见的问题,初级到中级的开发人员在某个时候都会遇到:他们要么不知道,要么不信任他们参与的合同,......
  • cpu在执行 java时,java指令是保存在数据cache中还是指令cache中
    Java代码在运行时,首先由JVM(JavaVirtualMachine)编译器将Java字节码转换成本地机器代码,然后再由CPU执行。在CPU中,指令缓存(InstructionCache)和数据缓存(DataCache)都是用于提高CPU处理效能的缓存结构,它们是处理器访问内存的缓存。对于生成的代码(或者说指令),它会被放入指令缓......