首页 > 编程语言 >javase笔记4----常用类型

javase笔记4----常用类型

时间:2024-09-22 21:51:51浏览次数:12  
标签:拆箱 BigDecimal 包装 笔记 ---- Date Integer javase 装箱

常用类型

包装类

简介

java语言是面向对象的语言,但是其中的八大基本数据类型不符合面向对象的特征。

因此java为了弥补这样的缺点,为这八种基本数据类型专门设计了八种符合面向对象特征的的类型,这八种具有面向对象特征的类型,统称为包装类。

包装类,就是在类的内部,维护了一个基本数据类型的成员变量,以及其他方法,常量等。

装箱和拆箱

装箱boxing : 由基本数据类型转型为包装类型。
     - 调用包装类的构造器,进行装箱
     - 调用valueOf()静态方法,进行装箱
拆箱 unboxing: 由包装类型转型为基本数据类型。
     - 调用xxxValue()非静态方法,进行拆箱

//装箱
Integer num = new Integer(1);
Integer num2 = Integer.valueOf(1);
//拆箱
int i = num.intValue();

自动装箱和拆箱

自动装箱 : 直接使用一个基本数据类型的变量或字面值给一个包装类型的引用进行赋值即可 
自动拆箱 : 直接使用一个包装类型的引用给一个基本数据类型的变量进行赋值即可

自动的装箱 : 省略掉的是  valueOf 方法

自动的拆箱 : 省略掉的是  xxValue 方法

Integer num = 1;//自动装箱
int x = num;//自动拆箱  
int y = new Integer(100);

包装类的常量池

对于装箱操作后的包装类的对象,jvm在堆中,维护了一个常量池,该常量池适用于调用了valueOf()方法产生的包装类对象,以及自动装箱的包装类对象。不适用于new关键字创建的包装类对象。

1. Byte,Short,Integer,Long四种类型的常量池的值范围[-128,127]

2. Character的常量池范围[0,127]

3. Boolean的常量池就只有两个值true和false

4. 浮点数类型没有常量池

包装类的其他常用方法

Integer.toBinaryString();  转成二进制
Integer.toHexString();    转成16进制
Integer.toOctalString()   转成8进制
public static int parseInt(String str):  字符串转成int类型
public static Integer valueOf(String str):  字符串转成Integer类型

上述两个方法都用Integer类名调用

BigDecimal

java语言提供了BigDecimal这个类来完善这类运算,可以非常精确,可以精确到小数点后无数位。BigDecimal 通常支持任意位数的小数部分,用来对超过16位有效位的数进行精确的运算。

常用构造器

BigDecimal(int v)    创建一个具有参数所指定整数值的对象。
BigDecimal(double v)    创建一个具有参数所指定双精度值的对象。
BigDecimal(long v)    创建一个具有参数所指定长整数值的对象。
BigDecimal(String v)    创建一个具有参数所指定以字符串表示的数值的对象。 

常用方法

add(BigDecimal)        BigDecimal对象中的值相加,返回BigDecimal对象
subtract(BigDecimal)   BigDecimal对象中的值相减,返回BigDecimal对象
multiply(BigDecimal)  BigDecimal对象中的值相乘,返回BigDecimal对象
divide(BigDecimal)   BigDecimal对象中的值相除,返回BigDecimal对象。该方法可能会遇到无限精度问题,会抛出异常,使用时需注意

BigDecimal b1 = new BigDecimal(3);
BigDecimal b2 = new BigDecimal(1.5);

BigDecimal r1 = b1.add(b2);
BigDecimal r2 = b1.subtract(b2);
BigDecimal r3 = b1.multiply(b2);
BigDecimal r4 = b1.divide(b2);

Date日期类型

简介

1. 是一个用来表示时间、日期的类,这个类在 java.util 包中。

2. java中的时间使用标准类库的Date类型来表示,是用距离某一个固定时间点的毫秒数表达的一个特定的时间点:

3. 固定时间点:1970年1月1日00:00:00

4. UTC(Universal Time Coordinated世界调整时间)与GMT(Greenwich Mean Time格林威治时间)一样,是一种具有实际目的的科学标准时间。

5. Date类的大多数用于进行时间分量计算的方法已经被Calendar取代。

常用构造器

1. Date() :获取当前系统时间

2. Date(long time):设置一个距离固定点的指定毫秒数的时间点。

Date now = new Date();
System.out.println(now);
Date t = new Date(1000*60*60*24);
System.out.println(t);

常用方法

1. long getTime()

2. void setTime(long time)

Calender类型

简介

Calendar: 日历,是用来表示时间、日期的类。在Date类中,有很多的方法都已经废弃了,使用 Caneldar中的某些方法进行实现。

java.util.Calendar类用于封装日历信息,其主要作用在于其方法可以对时间分量进行运算。

Calendar是抽象类型,其具体子类是针对不同国家的日历系统

常用方法

getInstance方法

Calendar提供的get方法与一些常量合用可以获取日期及时间分量

Calendar提供的set方法与一些常量合用可以设置日期及时间分量

Calender c = Calender.getInstance();
int year = c.get(Calender.YEAR);
int month = c.get(Calender.MONTH);

标签:拆箱,BigDecimal,包装,笔记,----,Date,Integer,javase,装箱
From: https://blog.csdn.net/weixin_70903041/article/details/141300128

相关文章

  • 从规范到实现解读Windows平台如何播放RTSP流
    RTSP播放器应用场景RTSP播放器在视频监控、远程视频会议、网络电视、实时流媒体传输、协同操控相关的智能设备、教育培训以及企业内部通讯与协作等多个领域都有着广泛的应用场景。1.视频监控RTSP直播播放器在视频监控系统中扮演着重要角色。通过RTSP协议,播放器可以实时接收来自监......
  • Python&C++迭代器比较
    Python&C++迭代器比较内容在Python和C++中,迭代器的概念都有类似的作用,但它们的实现方式和细节上存在一些区别。下面我们将从迭代器的定义、特性以及Python和C++中的不同点来进行对比。1.什么是迭代器?迭代器是一种对象,它允许你遍历一个集合(如列表、字典、字符串等)中......
  • 知其然知其所以然-以视频播放器为例解读RTSP协议的作用
    技术背景好多开发者在用大牛直播SDK的RTSP播放器模块的时候,希望知其然知其所以然,以便跟甲方沟通的时候,底气更足。本文从RTSPsession建立开始,详细解读RTSP播放器的实现原理。RTSP播放器应用场景RTSP播放器具有以下一些主要的使用场景:一、监控领域视频监控系统:在企业、学校、公共场......
  • 第六天旅游线路规划
    第五天:从贾登峪返回乌鲁木齐;第六天:从乌鲁木齐到天山天池,晚上回乌鲁木齐住宿。第六天从乌鲁木齐到天山天池景区入口的的规划结果见下图:1、行程安排根据上面的耗时情况,规划一天的行程安排如下:1)早上9:00起床,吃完早饭,9:30出发;2)从乌鲁木齐市区到天山天池风景区停车场,路程69公里......
  • SAP业务技术云平台助力提升竞争力
    在当今不断变化且竞争激烈的商业环境中,企业必须不断适应和创新,以保持其竞争优势。SAP业务技术云平台正是在这一背景下应运而生,作为一种新兴的技术解决方案,它为企业提供了无与伦比的灵活性和可扩展性,从而大幅提升企业的竞争力。 SAP业务技术云平台不仅仅是一个简单的数据管理工具,它......
  • 如何利用SAP数字化平台提升效率
    利用SAP数字化平台提升效率,是现代企业谋求转型与创新的关键所在。SAP作为全球领先的企业管理软件解决方案提供商,其数字化平台集成了多种先进技术和工具,为企业提供全面而灵活的解决方案,从而有效提升业务运营的效率。 首先,SAP数字化平台通过集成和自动化,有效减少了企业内部繁琐的手......
  • 基于SpringBoot+Vue+uniapp的明嘉新材料公司仓库管理的详细设计和实现(源码+lw+部署文
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • SAP数字化平台助力让企业腾飞
    在当今数字化浪潮席卷各行各业的背景下,SAP数字化平台以其强大的功能和灵活的架构,成为企业腾飞的重要助力。面对日益复杂的商业环境,企业需要借助先进的数字技术来提升运营效率、优化资源配置,从而在市场竞争中脱颖而出。SAP数字化平台通过集成各种应用和服务,将企业的核心业务与最新的......
  • 基于SpringBoot+Vue+uniapp的在线电影票购买系统的详细设计和实现(源码+lw+部署文档+
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 家里哪些地方容易漏水?漏水的原因有哪些,怎么预防漏水?
     最近天天在下雨,小雨,中雨,大暴雨轮番上阵,估计有业主家进水了吧,一漏水就让很多业主特别的心烦,有两个工地出现了不同程度的漏水。  雅静来聊一聊家里漏水的地方,原因,预防和维修。  漏水的地方总结了一下,有三个地方,第1个是新封的窗户,从窗户的外沿进水,第2个是楼顶漏水,这个......