当前位置: 首页 > news >正文

Java基础之Java常用类--Object类,字符串相关类,包装类,日期相关类,数字相关类...

  Java是一种面向对象的语言,也就是将万事万物可以描述为对象,特点如下:

1.面向对象是常见的一种思考习惯,符合人们的思考习惯。
2.面向对象的出现,将复杂的事情简单化。
3.面向对象的出现,将之前过程中的执行者变成指挥者。(以前我在做动作。现在是命令冰箱做动作)。

  包(package)是Java提供的一种区别类的名字空间的机制,是类的组织方式,是一组相关类和接口的集合,它提供了访问权限和命名的管理机制。如果当前类要用到其他包中的类,需要使用import关键字来导入。

      当我们需要用到某些系统定义的类库的时候,需要导入存储相应类库的包,将相应类库的信息导入当前项目中,这样才能使用相应工具类。下图用来描述每个常用的包或者重要的包里面的类用来实现什么功能或者做什么工作。

 1.Object类

  Object类是所有类的父类,是类层次结构的根。它在java.lang包中,不需要显式导入。Object类中有两个常用方法,经常用来被重载使用或者重载使用。以下是Object类的equals方法和toString方法的详细介绍:

  equals()方法用来判断传入形参的对象和当前的Object对象是不是一个对象,内部实现用"=="实现,判断两个引用是否指向同一个对象。Object类中的equals()方法等价于==,即判断这两个引用是否一致。在String类里,就将equals方法进行了重写,具体实现方法是将字符串拆分,比较两个字符串的内容是否一致。当我们重写equals方法时,注意事项如下:

  toString方法,此方法返回对象的字符串表示形式。API中解释如下:

  返回对象的字符串表示形式。 一般来说, toString方法返回一个“textually代表”这个对象的字符串。 结果应该是一个简明扼要的表达,容易让人阅读。 建议所有子类覆盖此方法。该ObjecttoString方法返回一个由其中的对象是一个实例,该符号字符`的类的名称的字符串@ ”和对象的哈希码的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串:

  getClass().getName() + '@' + Integer.toHexString(hashCode())

       由于每个类都是Object类的对象,所以每个类都直接或间接地继承自Object,因此每个类都有toString()方法。但是一般继承了之后会被重写。

 

 

2.String类

 

        Java程序可以方便的处理字符串类型的数据信息,而这都要归功于java中String类提供的强大功能。String类描述的是文本字符串序列,即多个字符组成的一串数据。这种数据统一使用String对象来表示。String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。对于String类,需要注意的是字符串是不可变的。一个字符串对象一旦被配置,其内容是不可变的。如果需要改变字符串变量的值相当于创建了一个新的字符串,再把新的字符串赋值给此字符串变量。String内置了许多对字符串进行操作的函数,用来实现以下功能。具体实现方法查询API在此不再赘述

 

3.包装类

    Java中有时使用基本数据类型并不能满足我们面向对象的具体要求。由于基本数据类型不能当作对象使用,Java提供了8个基本数据类型的包装类,把基本数据类型封装成对象,并封装了许多方法便于这些基本数据类型对象调用。这8个类统称为包装器(Wrapper)类,而且都在java.lang包中,所以不需要import就可以直接使用。具体数据类型对应的包装类如下:

通过比对我们发现,除了Integer类和Character,其他包装类名与基本数据类型名字保持一致。

【注1】装箱与拆箱

装箱是指将基本数据类型包装成包装类的过程。拆箱是指将包装类的对象转成基本数据类型的过程。他们两个互为反过程

拆装箱的过程分为手动拆装箱和自动拆装箱。

手动拆装箱过程的代码如下:

Integer i = new Integer(100);
int a = i.intvlaue();

自动拆装箱的代码过程如下:

Integer i = 100;
int a = i;

  JDK自从1.5(5.0)版本以后,就引入了自动拆装箱的语法,也就是在进行基本数据类型和对应的包装类转换时,系统将自动进行,这将大大方便程序员的代码书写。

【注2】基本数据类型与String的转换

//1.int转成String
int a = 100;
String astr = a + "";
String astr1 = String.valueOf(a);
//2.String转成int
String str = "123";
int b = Integer.parseInt(str);

4.日期相关类

Java主要涉及到三个日期相关类,分别为java.util.Date(最基本的日期时间类),java.text.SimpleDateFormat(DateFormat的直接子类,格式化操作),java.util.Calender(抽象类,日历)下面将分别讲述这三个类。

  1>java.util.Date类

    此类用来表示特定的瞬间,精确到毫秒,要注意该类中很多方法已经过时。构造方法如下:

Date();//分配 Date 对象并用当前时间初始化此对象,以表示分配它的时间(精确到毫秒)
Date(long date);//分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”
//即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数

    该类中其他主要方法如下:

2>java.text.SimpleDateFormat

    此类以指定格式输出日期与时间。可以将Date类型与字符串相转换。两个转换函数如下

format()//日期--->字符串
parse()//字符串--->日期

3>java.util.Calendar

  单独获取当前日期和时间中的年月日和星期。常用字段与常用方法如下:

  

4.数字相关类

数字相关类主要有两个类,Math类与Random类。具体如下

 

 

 

 

 

转载于:https://www.cnblogs.com/Andrea-null/p/9381427.html

相关文章:

  • 195. Spring Boot 2.0数据库迁移:Flyway
  • opencv python Meanshift 和 Camshift
  • Scala基础
  • mysql进阶(七)数据库锁
  • caffe问题
  • HDU 6330--Visual Cube(构造,计算)
  • mysql 数据库修改名字
  • 设计模式-简单工厂、工厂方法模式、抽象工厂模式详解
  • 9种数据分析方法
  • 人群估值一般性算法
  • oracle获取过去两年的今天时间
  • SOFATracer 中 Disruptor 实践
  • C#抽象类与接口的区别【转】
  • 区块链时代的拜占庭容错:Tendermint(一)
  • 一致性算法Hash(Consistent Hashing)
  • android 一些 utils
  • idea + plantuml 画流程图
  • log4j2输出到kafka
  • Making An Indicator With Pure CSS
  • Spring Boot快速入门(一):Hello Spring Boot
  • unity如何实现一个固定宽度的orthagraphic相机
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 多线程事务回滚
  • 后端_ThinkPHP5
  • 计算机常识 - 收藏集 - 掘金
  • 技术:超级实用的电脑小技巧
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 试着探索高并发下的系统架构面貌
  • 关于Android全面屏虚拟导航栏的适配总结
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​Spring Boot 分片上传文件
  • #《AI中文版》V3 第 1 章 概述
  • #pragma pack(1)
  • #pragma 指令
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (03)光刻——半导体电路的绘制
  • (C语言)逆序输出字符串
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • @Responsebody与@RequestBody
  • @Transaction注解失效的几种场景(附有示例代码)
  • [AX]AX2012 SSRS报表Drill through action
  • [BZOJ] 3262: 陌上花开
  • [C#] 如何调用Python脚本程序
  • [caffe(二)]Python加载训练caffe模型并进行测试1