首页 > 编程语言 >讨论java有基础类型,为什么还要有封装类型呢?两者之间的比较方式?

讨论java有基础类型,为什么还要有封装类型呢?两者之间的比较方式?

时间:2024-10-15 17:47:03浏览次数:7  
标签:封装 String 对象 equals 引用 类型 java

java有哪些基础类型

  • boolean/1
  • byte/8
  • char/16
  • short/16
  • int/32
  • float/32
  • long/64
  • double/64

java为什么有基础类型,为什么还要有封装类型呢?

举个例子吧,Character和char的区别是在于char只是存了个数据,而Character的区别在于他带有了一系列操作该数据的方法

好处是什么呢?

  1. 一些类都有共有的方法
  2. 然后是面向对象绝对比面向过程开发快,他相当于是把操作数据的方法和数据绑定在一块,最显著的效果就是让我们开发更快,方法复用更高

两者之间的比较方式?

总共两种:equals()与==

  • 对于基本类型,== 判断两个值是否相等,基本类型没有 equals() 方法。
  • 对于引用类型,== 判断两个变量是否引用同一个对象,而 equals() 判断引用的对象是否等价。

具体情况1 Integer

  • 缓冲池(多次调用会取得同一个对象的引用。),例如integer的-128~127(除了long,double,float都有),触发方式(Interger.valueOf(123))
  • new Integer(123) 每次都会新建一个对象
  • 在缓冲池范围内的基本类型自动装箱调用的是valueOf()方法,因此多个 Integer 实例使用自动装箱来创建并且值相同,那么就会引用相同的对象。

具体情况2 String

  • String.intern() 可以保证相同内容的字符串变量引用同一的内存对象。
  • String s1=new String("aaa")
  • String s3="bbb" 会自动地将新建的对象放入 String Pool 中,也就是引用的会是同一个对象
    String s4="bbb"
    s3==s4//true

标签:封装,String,对象,equals,引用,类型,java
From: https://www.cnblogs.com/seamount3/p/18468056

相关文章

  • Java 初学 day 08
    java081、Abstract关键字java为了表示现实生活中抽象的概念集合,提供了一个关键字给我们使用:abstractabstract抽象的可以修饰类,修饰成员方法1.被abstract修饰的类是抽象类,抽象类不能被实例化2.被abstract修饰的方法是抽象方法,抽象方法不能有大括号实现3.在抽......
  • java 不建议使用stack
    Java不建议使用Stack的原因和替代方案在Java编程中,Stack类通常用于处理数据结构中的堆栈实现。然而,随着Java的发展,越来越多的开发者开始质疑是否应该继续使用Stack类。本文将探讨不建议使用Stack的原因,示例代码,以及推荐的替代方案。Stack类简介在Java中,Stack是一种后进先出(LIFO......
  • Java在for循环中修改集合
    前天看到一篇文章什么?for循环也会出问题?,里面涉及到在for循环中修改集合,想起来自己刚入行的时候就碰到过类似的问题,于是复现了一下文章中的问题,并试验了其它在循环中修改集合的方法。底层原理参考什么?for循环也会出问题?这篇文章的分析1.在fori中修改集合在fori中修改集合,不会......
  • java计算机毕业设计智能点餐推荐系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着科技的飞速发展,人们的生活节奏日益加快,对餐饮服务的需求也愈发多样化和个性化。传统的点餐方式往往依赖于纸质菜单或简单的电子菜单,难以满足现代......
  • Java在for循环中修改集合
    在Java中,ifPresent是一个用于Optional类型的方法,用于检查Optional对象中是否存在值并执行相应的操作。ifPresent方法接受一个Consumer函数式接口作为参数,如果Optional对象中包含值,则将该值传递给Consumer接口的实现方法。以下是ifPresent方法的使用示例:importj......
  • 软件开发----Java基础每日刷题(转载于牛客)
    1.        A 是抽象父类或接口, B , C 派生自 A ,或实现 A ,现在 Java 源代码中有如下声明:1. A a0=new A();2. A a1=new B();3. A a2=new C();问以下哪个说法是正确的?()A        第1行不能通过编译B        第1、2行能通......
  • Java 时间格式转换详解
    在Java开发中,时间和日期的处理是非常常见的需求。无论是用户输入的时间数据,还是系统生成的时间戳,我们经常需要对其进行格式化或解析。本文将详细介绍如何在Java中进行时间格式的转换,并分别介绍两种主要的方法:SimpleDateFormat(适用于Java8之前)和 java.time(适用于Java8......
  • JavaSE JAVA基础总结(一) 我的学习笔记
    JavaSEJAVA基础总结(一)一、Java基础语法1.数据类型2.运算符3.选择结构4.循环结构5.数组6.方法7.递归二、面向对象1.面向对象编程(1)为什么要学习面向对象(2)面向过程与面向对象区别(3)对象(4)类(5)成员变量与局部变量的区别(6)构造器(7)this的关键字(8)标准JavaBean(9)静态关键字:static......
  • java计算机毕业设计基于springboot的居家健身系统的设计与实现(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着现代生活节奏的加快,人们越来越注重健康与身体锻炼。然而,繁忙的工作和生活压力使得很多人难以抽出时间前往健身房进行锻炼。居家健身作为一种灵活......
  • java计算机毕业设计在线教育平台的设计与实现(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和全球信息化趋势的加强,教育领域正经历着前所未有的变革。在线教育平台作为互联网+教育的重要产物,已经逐渐成为人们获取知......