(1)Object类 (2)包装类和数学处理类 (3)String类
1.Object类
1.1 基本概念
java.lang.Object类是Java类层次结构的根类,任何类都是Object类的直接/间接子类。
1.2 常用的方法(重点)
Object() - 无参构造方法
boolean equals(Object obj) - 用于判断调用对象是否和参数对象相等。
- 该方法默认比较两个对象的地址,与 == 运算符的效果等价。
- 当需要比较对象的内容时则重写该方法,重写该方法后记得重写hashCode()方法。
int hashCode() - 用于获取调用对象的哈希码值(内存地址的编号)。
- 当两个对象调用equals()方法相等时,则各自调用该方法得到的结果必须相同。
- 当两个对象调用equals()方法不相等时,则各自调用该方法得到的结果应该不相同。
- 为了满足上述协定,需要重写该方法。
String toString() - 用于返回调用对象的字符串形式。
- 默认字符串组成:包名.类名@哈希码的十六进制
- 为了打印成员变量信息则需要重写该方法
- 当使用print()/println()打印引用变量时/使用字符串连接引用时,自动调用该方法
2.包装类和数学处理类
如:
Person p = new Person(); - 声明一个Person类型的引用指向Person类型的对象
int num = 10; - 声明一个int类型的变量num初始值为10
Java是一门纯面向对象的编程语言。
2.1 包装类的由来
在某些特殊场合(集合)中要求所有存取的数据都必须是对象,对于基本数据类型的变量来说不满足此要求,为了使得基本数据类型的变量也能够使用就需要进行对象化处理,此时就需要借助包装类。
2.2 Integer类(重点)
(1)基本概念
java.lang.Integer类用于包装int类型的变量,也就是让int类型变量作为该类的成员变量
该类由final关键字修饰表示不能被继承。
(2)常用的方法
Integer(int value) - 根据参数指定整数构造对象。
Integer(String s) - 根据参数指定字符串构造对象。
该类重写了equals()、hashCode()以及toString()方法。
int intValue() - 用于返回调用对象中的数值。
static Integer valueOf(int i) - 根据参数指定的整数得到Integer类型对象并返回。
static int parseInt(String s) - 用于将String类型的字符串转换为int类型的整数。
(3)装箱和拆箱
装箱主要指从int类型向Integer类型的转换。
拆箱主要指从Integer类型向int类型的转换。
从jdk1.5开始支持自动装箱和自动拆箱的机制。
(4)自动装箱池(尽量理解)
为了提高自动装箱的效率,在Integer类的内部提供了一个自动装箱池,将-128到127之间的整数提前装箱完毕,若程序中需要使用该范围的整数则直接从池中获取并使用而无需再次装箱,若程序中使用该范围之外的数据则需要单独装箱。
2.3 BigDecimal类(查手册会用即可)
(1)基本概念
由于float类型和double类型都不能实现精确运算,此时可以使用java.math.BigDecimal类型取代之。
(2)常用的方法
BigDecimal(String val) - 根据参数指定的字符串来构造对象。
BigDecimal add(BigDecimal augend)
- 用于计算调用对象和参数对象的和并返回。
BigDecimal subtract(BigDecimal subtrahend)
- 用于计算调用对象和参数对象的差并返回。
BigDecimal multiply(BigDecimal multiplicand)
- 用于计算调用对象和参数对象的积并返回。
BigDecimal divide(BigDecimal divisor)
- 用于计算调用对象和参数对象的商并返回。
2.4 BigInteger类(查手册会用即可)
(1)基本概念
当需要在程序中描述比long类型范围还大的整数时,则使用java.math.BigInteger类型加以描述。
(2)常用的方法
BigInteger(String val) - 根据参数指定的字符串内容来构造对象。
BigInteger add(BigInteger val)
- 用于计算调用对象和参数对象的和并返回。
BigInteger subtract(BigInteger val)
- 用于计算调用对象和参数对象的差并返回。
BigInteger multiply(BigInteger val)
- 用于计算调用对象和参数对象的积并返回。
BigInteger divide(BigInteger val)
- 用于计算调用对象和参数对象的商并返回。
BigInteger[] divideAndRemainder(BigInteger val)
- 用于计算调用对象和参数对象的商和余数组成数组并返回。
3.String类(重中之重)
3.1 基本概念
java.lang.String类用于描述字符串,Java程序中所有字符串字面值都可以使用该类描述。
该类描述的字符串内容是个常量,不可以更改,而且该类由final修饰不能被继承。
如:
class MyString extends String{} => error
String s1 = "abc"; => "abc"是个常量,不可以更改。
3.2 常量池(原理、尽量理解)
由于String类型描述的字符串内容是个常量,若每次出现相同的字符串都单独保存则会造成内存空间的浪费,为了提高性能,Java虚拟机会将每次出现的字符串内容保存到常量池中,下次若出现相同的字符串内容则直接从池中取出使用即可。
如:
String s1 = "abc"; abc
String s2 = "bcd"; bcd
String s3 = "abc";
笔试题:
String s1 = ""; 和 String s1 = null; 之间有区别吗?
解析:
其中前者拥有字符串对象,但该字符串对象的内容为空;
其中后者连字符串对象都没有,后者调用方法时会引发空指针异常;
3.3 常用的方法(练熟、记住)
(1)常用的构造方法
String() - 使用无参的方式构造空字符串对象。
String(byte[] bytes) - 根据参数指定的byte数组来构造对象。
String(byte[] bytes, int offset, int length)
- 使用bytes数组中从offset位置开始的length个字节来构造对象。
String(char[] value) - 根据参数指定的char数组来构造对象。
String(char[] value, int offset, int count)
- 使用value数组中从offset位置开始的count个字符来构造对象。
String(String original) - 根据参数指定的字符串内容来构造对象。
(2)常用的成员方法
该类重写了equals()、hashCode()以及toString()方法。
char charAt(int index) - 根据参数指定的下标返回对应的单个字符。
int length() - 用于返回当前字符串的长度。
int compareTo(String anotherString) - 用于比较调用对象和参数对象的大小关系。
- 使用调用对象和参数对象中第一个字符起依次做减法运算
- 若第一个字符能确定大小,则后续字符不用比较
- 若第一个字符不能确定大小,则使用下一个对应位置的字符比较大小。
- 直到其中一个字符串的所有字符比较完毕后也没有确定大小,则由长度来决定大小。
- 若当前字符串大则返回正数;若当前字符串小则返回负数;若相等则返回零;
int compareToIgnoreCase(String str) - 不考虑大小写,也就是'a'和'A'是相等的关系。
boolean contains(CharSequence s) - 用于判断当前字符串是否包含参数指定的内容。
- 其中参数是接口类型,因此实参需要传递实现类的对象,而String类就实现了该接口
boolean endsWith(String suffix)
- 判断当前字符串是否以参数指定的内容为结尾。
boolean startsWith(String prefix)
- 判断当前字符串中是否以参数指定的内容为开头。
String toLowerCase()
- 用于将当前字符串中所有字符转换为小写。
String toUpperCase()
- 用于将当前字符串中所有字符转换为大写。
String trim()
- 用于去除当前字符串中两端的空白字符。
boolean equals(Object anObject)
- 用于比较字符串内容是否相等并返回;
boolean equalsIgnoreCase(String anotherString)
- 用于比较字符串内容是否相等并返回,不考虑大小写,如:'A'和'a'是相等。
byte[] getBytes() - 用于将当前字符串内容转换为byte数组并返回。
char[] toCharArray() - 用于将当前字符串内容转换为char数组并返回。
int indexOf(int ch) - 用于返回当前字符串中参数ch指定的字符第一次出现的下标。
int indexOf(int ch, int fromIndex) - 用于从fromIndex位置开始查找ch指定的字符。
- 上述方法若查找失败,则返回-1.
int indexOf(String str) - 用于查找参数str指定的字符串并返回下标。
int indexOf(String str, int fromIndex) - 用于从fromIndex位置开始查找。
int lastIndexOf(int ch) - 用于返回参数ch指定的字符最后一次出现的下标。
int lastIndexOf(int ch, int fromIndex)
- 用于从fromIndex位置开始查找ch指定字符出现的下标,反向搜索的第一次。
int lastIndexOf(String str) - 用于返回str指定字符串最后一次出现的下标。
int lastIndexOf(String str, int fromIndex)
- 用于从fromIndex位置开始反向搜索的第一次。
String substring(int beginIndex)
- 用于获取当前字符串中从beginIndex位置开始的子字符串并返回。
String substring(int beginIndex, int endIndex)
- 用于获取当前字符串中从beginIndex位置开始到endIndex结尾的子字符串并返回。
(1)Object类 (2)包装类和数学处理类 (3)String类的更多相关文章
- 《Java从入门到失业》第四章:类和对象(4.2):String类
4.2String类 这一节,我们学习第一个类:String类.String翻译成汉语就是“字符串”,是字符的序列.我们知道,在Java中,默认采用Unicode字符集,因此字符串就是Unicode字 ...
- Java 基础 常用API (Object类,String类,StringBuffer类)
Java API Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就是JDK中提供给我们使用的类,这些类将底 ...
- Java String类的比较运算
面试题:(多选)以下返回true的有() A. "beijing" == "beijing" B. "beijing".equals(new ...
- 深入分析Java的String类的方法与特点
字符串是任何编程语言都必须支持的变量类型,有些编程语言是直接提供了原生的变量类型,有些编程语言则使用语法特性以 SDK 的形式提供支持.在Java编程平台中,对字符串的支持使用了后者的形式,就是通过在 ...
- 12-02 java String类
String构造方法 package cn.itcast_01; /* * 字符串:就是由多个字符组成的一串数据.也可以看成是一个字符数组. * 通过查看API,我们可以知道 * A:字符串字面值&q ...
- Java中String类
String类 一.String类的用途 对字符串的存储与操作,即包含多个字符的字符数据,这个String类提供了数值不可改变的字符串. String类为什么不可改变的字符串,因为String类是fa ...
- 第18讲——string类
关键字:string类 字符串 C-风格字符串 C库字符串函数 字符串:存储在内存的连续字节中的一系列字符. C++处理字符串的方式有两种: 来自C语言,常被称为C-风格字符串: 基于strin ...
- 01 语言基础+高级:1-3 常用API第一部分_day08【String类、static、Arrays类、Math类】
day08[String类.static.Arrays类.Math类] String类static关键字Arrays类Math类 教学目标能够使用String类的构造方法创建字符串对象能够明确Stri ...
- 8.3 String 类的方法 使用分类
String类的判断功能.获取功能. * String类的判断功能: * boolean equals(Object obj):比较字符串的内容是否相同 * boolean equalsIgnoreC ...
随机推荐
- 任务三十七:UI组件之浮出层
任务三十七:UI组件之浮出层 面向人群: 有一定JavaScript基础 难度: 低 重要说明 百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计.我们尽力保证课程内容的质量 ...
- 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(五)——实现注册功能
使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...
- web前端开发教程系列-4 - 前端开发职业规划
前言 关于我:小天 1). 架构师,项目经理,产品经理 2). 中间件研发 3). VPCC 云计算基础平台管理 4). 智慧旅游 5). 智慧教育 6). 一次失败的创业体验(爱邂逅网) 一. 在开 ...
- css3 transition(转换)笔记
之前transition也用过,大都是ctrl+c,然后ctrl+v,没有了解太详细,这次对transition的应用源自侧边抽屉展开收起的动画效果需要. W3C标准中对css3的transition ...
- Java基础教程(13)--包
为了使类型更易于查找,避免命名冲突和访问控制,我们应该使用包来对自己定义的类型进行管理.这里说的类型可以是类.接口.枚举和注解(枚举和注解的内容会在后续教程中介绍).使用包来管理我们的代码,有以下 ...
- 《码出高效 Java开发手册》第七章 并发与多线程
码云: https://gitee.com/forxiaoming/JavaBaseCode/blob/master/EasyCoding/src/concurrency/multithreading ...
- ReadWriteLock
ReadWriteLock也是一个接口,只有两个方法 一个用来获取读锁,一个用来获取写锁.也就是说将文件的读写操作分开,分成2个锁来分配给线程,从而使得多个线程可以同时进行读操作.下面的Reentra ...
- MangoDB的C#驱动库(.net framewokr 4.0)
编写运维工具,需要联接MangoDB 基于我陈旧的技术栈,就用c#开发了 驱动库下载地址记录到至此,需要的可以下载 注意,此驱动是老版本的,只支持.net framewokr 4.0 看了半天,觉得够 ...
- Unable to load script from assets 'index.android.bundle' 出错?
野路子太多,坑人真的!F**k 言归正传,当你运行 react native 程序的时候出现这个错误 ,如果您使用Windows,请按以下方式运行命令,或者如果出现错误“无法找到条目文件index.a ...
- 记录一次测试环境遇到的push消息记录
测试环境测试push消息,调用消息中心同事的api接口,感觉怎么都调用不通.纠结了一天,最终发现原因:一是版本的问题,不同的测试包有不同的版本,不同的版本 可能push的消息不同.二是 用户有没有 开 ...