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代表”这个对象的字符串。 结果应该是一个简明扼要的表达,容易让人阅读。 建议所有子类覆盖此方法。该Object
类toString
方法返回一个由其中的对象是一个实例,该符号字符`的类的名称的字符串@
”和对象的哈希码的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串:
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类。具体如下
Java基础之Java常用类--Object类,字符串相关类,包装类,日期相关类,数字相关类的更多相关文章
- JAVA基础语法:常用功能符以及循环结构和分支结构(转载)
3.JAVA基础语法:常用功能符以及循环结构和分支结构 1.常用功能符 注释 ("文字"是被注释的部分) //文字 单行注释 /文字/ 多行注释 算术运算符 + - * / / 整 ...
- 黑马程序员:Java基础总结----java注解
黑马程序员:Java基础总结 java注解 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! java注解 lang包中的基本注解 @SuppressWarnings ...
- Java基础技术-Java其他主题【面试】
Java基础技术-Java其他主题[面试] Java基础技术IO与队列 Java BIO.NIO.AIO Java 中 BIO.NIO.AIO 的区别是什么? 含义不同: BIO(Blocking I ...
- Java基础:Java的四种引用
在Java基础:java虚拟机(JVM)中,我们提到了Java的四种引用.包括:强引用,软引用,弱引用,虚引用.这篇博客将详细的讲解一下这四种引用. 1. 强引用 2. 软引用 3. 弱引用 4. 虚 ...
- java基础-学java util类库总结
JAVA基础 Util包介绍 学Java基础的工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构.本章介绍Java的实用工具类库java.util包.在这个包中,Java ...
- java基础(二)-----java的三大特性之继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- Java基础-使用JAVA代码剖析MD5算法实现过程
Java基础-使用JAVA代码剖析MD5算法实现过程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- Java基础——6种常用类讲解
本文主要介绍几种Java中常用类的应用. 一.System类 从API当中我们可以看出,public final class System exends Object.System类包含一些有用的字段 ...
- Java基础11一常用类
1.包装类 byte---java.lang.Byte char---java.lang.Character short—java.lang.Short int---java.lang.Integer ...
随机推荐
- 虚拟机JVM
虚拟机组成:类加载器,运行时数据区,执行引擎 运行时数据区:堆,栈,方法区,程序计数器,本地方法栈 堆:对象实例 栈:入栈出栈,线程的执行 栈帧:一个方法一个 栈的结构:放 局部变量表,操作数栈,动态 ...
- form表单中$_FILES数组的使用
<form enctype="multipart/form-data" action="upload.php" method="post&quo ...
- 今天遇到一个怪异的问题,maven生成项目war包中有一个Jar包不是我指定的版本,运行时会找不到符号,o(╥﹏╥)o
我要求的jar包: 这是我parent项目中pom文件的依赖管理 这是我要生成war包那个工程最后依赖的jar包,这个时候它们的版本号还是一致的 最后项目生成的: 下图是Dmaven.test.ski ...
- IIS的UrlRewrite模块
以前在webform中重写URL是在Global.asax中的Addplication_BeginRequest事件中写代码进行跳转 今天介绍使用IIS提供的UrlRewrite模块实现URL重写 首 ...
- svn 恢复删除文件
参考这个 https://blog.csdn.net/qdujunjie/article/details/37766167
- char* = "name" g++报告warn的原因
char* str = { "abcd" },先定义一个字符串常量“abcd“,再将指针str指向它,返回值是这个指针,由于字符串常量在编译时分配内存,只有程序退出时才被销毁,所以 ...
- php判断用户是否关注微信公众号
方法一: <?php $access_token = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_cr ...
- Python+Selenium 自动化实现实例-处理分页(pagination)
场景 对分页来说,我们最感兴趣的是下面几个信息 总共有多少页 当前是第几页 是否可以上一页和下一页 代码 下面代码演示如何获取分页总数及当前页数.跳转到指定页数 #coding:utf-8 from ...
- Python数据库连接池DBUtils
Python数据库连接池DBUtils DBUtils是Python的一个用于实现数据库连接池的模块. 此连接池有两种连接模式: 模式一:为每个线程创建一个连接,线程即使调用了close方法,也不 ...
- pytesseract在识别只有一个数字的图片时识别不出来
大家好,近期在做自动化测试时,遇到了一个问题需要通过识别图片来实现,遂用到了pytesseract模块和tesseract-ocr这个工具.在使用过程中发现,识别带有数字的图片时,如果这个图片上仅有一 ...