一、Object对象

1、object 类的常用方法:

Object类是所有类的父类,java中所有的类都直接或间接地继承自Object类,即使没有显示的使用extends关键字指定Object为父类,系统也会自动继承该类。所以说,Object类是整个Java语音继承树的唯一根;根据继承的特性,任何Java对象都可以调用Object类的方法。

toString();

Equals(Object obj);

hashCode();

1.1 toString()

返回该对象的字符串表示。

1.1.1 toString()方法的作用

toString() 返回对象的描述信息   java.lang.Object@de6ced   类名@哈希码值的十六进制形式。

直接输入一个对象的时候,会调用对象的toString方法。

在程序中,重写toString之后,我们直接输出一个对象的时候,就会输出符合我们所需求的格式数据。

重写前:

重写后:

1.2equals()

用于比较两个对象的内存地址,判断两个对象是否为同一个对象。

可以对equals()方法进行重写,比如,相比较两个人的身份证是否一致。

Equals()方法在集合上用的比较多。

注意!!!!!

1equals()方法的形参必须是Objec类型,不能是其他类型。

2在比较两个字符串的内容是否相等时,常常用的equals()方法进行比较。其实equals()方法来自Object类,而在String类中对equals()方法进行了类重写,以满足比较字符串的内容是否相等,实际在Object类本身的equals方法是比较的内存!

示例如下:

 

1.3hashCode()

返回该对象的哈希码值(可以把哈希码理解成内存地址)

Java中的规范,一般我们重写了一个类的equals方法,我们都会重写他的hash

Code方法。

hashCode() 返回该对象的哈希码值: 采用操作系统底层实现的哈希算法。 同一个对象的哈希码值是唯一的。

注意:在java中对equals()方法和hashCode()方法有以下约定:

1在程序执行期间,如果一个对象的hashCode()方法作比较所用到的信息没有被修改,则该对象多次调用的hashCode()方法返回的结果值必须是同一整数。

2 如果两个对象根据equals()方法结果值是true,则调用这两个对象中任一对象的hashCode()方法必须返回同一个整数。

3如果两个对象根据equals()方法结果值为false,则调用这两个对象中任一个对象的hashCode()方法,不要求产生不同的整数结果。但如果不同则可以提高散列表的性能。也就是说,这两个对象的hashCode值相同,不代表这两个对象相等。

2、java中查看源代码:

方式1:按住ctrl键,单击你需要查看的源代码。

方式2:把光标移动到你需要查看的代码处,按下F3

3、查看源代码的好处:

1 查看源代码可以了解别人是如何写出这个技术的,让我们了解的更加深入。

2 吸收大牛的思想。

3 看源代码最忌讳的就是不要每行都看懂,能看个大概猜出意思就可以。

通过查看源代码明白的原理如下:

二、字符串入门(String)

1一段代码引发的故事:

在上述字符串中,“==”用于比较 引用数据类型的时候,比较的是两个对象的内存地址,equals方法默认比较也是两个对象的内存地址。

2.代码的内存分析:

String str = “hello”这种方式创建字符串的时候,jvm首先会检查 字符串常量池中是否存在该字符串的对象,如果已经存在,那么就不会在字符串常量池中创建了,直接返回该字符串再字符串常量池中内存地址,如果该字符串还不存在字符串常量池中,那么就会在字符串常量池中先创建该字符串的对象,然后在返回。

new String (“hello”)这种方式创建字符串对象的时候,jvm首先先会检查字符串常量池中是否存在“hello”的字符串,如果已经存在,则不会在字符串常量池中创建了,如果还没有存在,那么就会在字符串常量池中创建“hello”字符串对象,然后还会去到堆内存中再创建一份字符串的对象,把字符串常量池中的“hello”字符串内容copy到对内存中的字符串对象,然后返回堆内存中字符串对象的内存地址。其内存图如下

其中str3.equals(str4)ture,是因为String类中,重写了obj的方法,返回的是两个对象打的内容。

3String类重写equals();

大致是这样的,首先将两个字符串转换成两个字符数组,然后将字符串写入到字符数组中,然后接着比较两个字符数据的每个值是否一样。

String 类重写Object的equals方法,比较的是两个字符串的内容是否一致。

三、字符串的方法:(String)

1构造方法:

1.1

String() 创建一个空内容的字符串对象。

1.2

String(btye[] bytes)使用一个自己数组构建一个字符串对象。

1.3

String(byte[] byes, int offset, int length)

bytes:要解码的数组。

Offset:指定从数组中哪个索引值开始解码。

Length:要解码多少个元素。

使用一个字节数组构建一个字符串对象,指定开始解码的索引值和解码的个数。

1.4

String(char[] valus)使用一个字符数组,构建一个字符串。

1.5

String(int[] codePoints,int offset,int count)

和上述字节数组功能相同。

1.6

String(String original)

构造方法总结:

使用字节数组或者字符数组都可以构建一个字符串对象。

2获取类方法

int length()  获取字符串的长度

char charAt(int index) 获取特定位置的字符 (角标越界)

int indexOf(String str) 获取特定字符的位置(overload)

int lastIndexOf(int ch) 获取最后一个字符的位置

使用方法如下:

3判断类方法:

boolean endsWith(String str) 是否以指定字符结束

boolean isEmpty()是否长度为0 如:“” null V1.6

boolean contains(CharSequences) 是否包含指定序列 应用:搜索

boolean equals(Object anObject) 是否相等

boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等

4转换方法

String(char[] value) 将字符数组转换为字符串

String(char[] value, int offset, int count)

Static String valueOf(char[] data)

static String valueOf(char[] data, int offset, int count)

char[] toCharArray()  将字符串转换为字符数组

小结:字节数组与字符数组、字符串他们三者之间是可以相互转换的。

5其他方法

String replace(char oldChar, char newChar) 替换

String[] split(String regex) 切割

String substring(int beginIndex)

String substring(int beginIndex, int endIndex)截取字串

String toUpperCase() 转大写

String toLowerCase() 转小写

String trim() 去除空格

四、StringBuffer类(字符串缓冲类)

1、引入StringBuffer

字符串的特点:因为字符串是常量,字符串一旦创建,他的值不能更改。字符串的内容一旦发生了变化,那么马上会创建一个新的对象。

所以:字符串的内容不适宜频繁修改,因为一旦修改,马上就会创建一个新的对象,如果频繁修改,在内存中将创建多个对象。如果需要频繁修改字符串内容,建议使用字符串缓冲类StringBuffer.

StringBuffer其实就是一个存储字符的容器,可以方便的对字符进行增删查改。

容器具备的行为:增加 、删除、修改、查看、判断。

2、StringBuffer的构造方法

2.1StringBuffer()

构造一个其中不带字符的字符串缓冲区,其初始容量为16个字符。

使用Stringbuffer无参的构造函数创建一个对象时,默认的初始容量是多少?如果长度不够使用了,自动增长多少倍?

StringBuffer  底层是依赖了一个字符数组才能存储字符数据的,该字符串默认的容量是16,如果字符数组的长度不够使用了,会自动增长1倍。

3、增加

append();添加数据的方法。

StringBuffer("jack")     在创建对象的时候赋值

append()              在缓冲区的尾部添加新的文本对象

insert()                在指定的下标位置添加新的文本对象

4、删除

5、修改

replace(int start int endString str)  使用给定 String 中的字符替换此序列的子字符串中的字符。该子字符串从指定的 start 处开始,一直到索引 end - 1 处的字符

setCharAt(int index char ch)  指定索引位置替换一个字符

6、查看

toString() 返回这个容器的字符串

indexOf(String str) 返回第一次出现的指定子字符串在该字符串中的索引。

substring(int start) 从开始的位置开始截取字符串。

7、反序

reverse() 把字符串反序输出。

五、StringBuilder

StringBuilder 是JDK1.5之后提出的,线程不安全,但是效率要高。用法与StringBuffer类似。

六、System

System类主要用于获取系统属性的。

1System常用的方法:

System类常用的方法:

1.1 arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 一般

src - 源数组。

srcPos - 源数组中的起始位置。

dest - 目标数组。

destPos - 目标数据中的起始位置。

length - 要复制的数组元素的数量。

1.2currentTimeMillis()  获取当前系统系统。       重点

1.3exit(int status)  退出jvm  如果参数是0表示正常退出jvm,非0表示异常退出jvm。    一般

1.4gc()    建议jvm赶快启动垃圾回收器回收垃圾。

finalize()  如果一个对象被垃圾回收 器回收的时候,会先调用对象的finalize()方法。

1.5getenv(String name) 根据环境变量的名字获取环境变量。

1.6getProperty(key) 确定当前的系统属性。

七、Runtime

该类代表了应用程序的运行环境。

getRuntime()  返回当前应用程序的运行环境对象。

exec(String command)  根据指定的路径执行对应的可执行文件。

freeMemory()   返回 Java 虚拟机中的空闲内存量。 以字节为单位

maxMemory()    返回 Java 虚拟机试图使用的最大内存量。

totalMemory()    返回 Java 虚拟机中的内存总量

八、日期类 Date

1getYear

在eclipse中,有横线穿过的,表示该方法已经过时的方法;jdk中为什么没有删除呢,是因为很早以前有很多人使用这个方法,可能系统还在运行,所有无法进行删除。目前该方法已经被Calender 的get 方法所取代。

2日期格式化类 SimpleDateFormat

2.1format()可以把日期转换指定格式的字符串

2.2parse()把一个字符串转换成对应的日期

九、Match类

主要提供了很多的数学公式给我们使用

1.match类的主要方法

abs(double a)  获取绝对值

ceil(double a)  向上取整

floor(double a)  向下取整

round(float a)   四舍五入

random()   产生一个随机数. 大于等于 0.0 且小于 1.0 的伪随机 double 值

十、Random类

1生成1-10之间的随机数

2.实例应用—验证码

转载于:https://www.cnblogs.com/xiangnianchulian/p/7569820.html

第三周阶段性小结——Object对象、String类、StringBuffer、StringBuilder、System、Runtime、Date...相关推荐

  1. 9.String类 StringBuffer/StringBuilder 的定义

    String类:表示一个字符串,是引用数据类型 1.字符串存储格式:字符串用final修饰的char类型数组进行存储的 2.String的不可变性:字符串一旦初始化不可更改,但是可以通过在字符串常量池 ...

  2. 15_常用API_第15天(Object、String、StringBuffer、用户登陆注册)

    今日内容介绍 1.Object 2.String 3.StringBuilder 01API概念 A:API(Application Programming Interface) 应用程序编程接口 B ...

  3. C#中的字符串, String类和StringBuilder类

    C#中的字符串, String类和StringBuilder类 1.简介 字符串对大多数计算机程序而言非常普遍. 像文字处理软件和网页应用程序这些程序类型 都广泛采用了字符串. 这使得处理这类应用程序 ...

  4. 常用API(Object、String、StringBuffer、用户登陆注册)

    常用API 今日内容介绍 u Object u String u StringBuilder 第1章 Java的API及Object类 在以前的学习过程中,我们都在学习对象基本特征.对象的使用以及对象 ...

  5. 【Java5】String类,StringBuilder类,ArrayList类,Object类(toString,equals,hashCode)

    文章目录 1.String类:字符串常量在Java中不属于基本数据类型, 而是引用/类类型 1.1 使用:new String(...) 1.2 判断:equals函数是用来比较两个对象是否相等 1. ...

  6. String“+”与StringBuffer/StringBuilder 对象的append方法

    该题来自华为.          字符串是Java程序中最常用的数据结构之一.在Java中String类已经重载了"+".也就是说,字符串可以直接 使用"+"进 ...

  7. Java中字符串对象String、StringBuffer、StringBuilder的比较

    原文地址:http://www.iteye.com/topic/522167 作者:每次上网冲杯Java时,都能看到关于String无休无止的争论.还是觉得有必要让这个讨厌又很可爱的String美眉, ...

  8. Java笔记(5)-String、StringBuffer、StringTokenizer、Date、Calendar

    浮云一别后,流水十年间.-–韦应物<淮上喜会梁川故人 / 淮上喜会梁州故人> String类 构造字符串对象 Java专门提供了处理字符串的String类,在java.lang包中默认引入 ...

  9. [JAVA基础类库] String类 ○ StringBuffer类 ○ StringBuilder类

    引言 字符串就是一连串的字符序列,Java提供了String.StringBuffer和StringBuilder三个类来封装对字符串,并提供了系列方法来操作字符串对象. String类是不可变类的: ...

最新文章

  1. Python是不是被严重高估了(转载)
  2. JSP与servlet之间的传值方式
  3. Ubuntu 编译安装python3.7
  4. UVA 11584 Partitioning by Palindromes 动态规划 入门
  5. gradle maven_将工件从Gradle自动提升到Maven Central
  6. controller属于哪一层_从数字一到十,在人们心中哪一个数字最为吉利?有什么原因?...
  7. Linux内核list_head学习(二)
  8. nunito字体_外贸网站设计中字体有多重要?
  9. 关于信贷评分卡模型,看这篇就够了!
  10. SQL经典50查询语句案例_7(查询学过“叶平”老师所教的所有课的同学的学号、姓名)
  11. centos python3, There was a problem confirming the ssl certificate
  12. AD软件系统属性配置
  13. IsFinite (m_CachedRange.first) IsFinite (m_CachedRange.second) 的解决参考
  14. 腾讯云服务器如何实现内网互联?
  15. VI设计中员工制服设计的构思方向
  16. Python批量PNG转换成JPGE设置quality=99
  17. mysql有什么不同_mysql 和 mysql2 有什么不一样
  18. 南京邮电大学2023年数电期末试卷
  19. 使用JavaScript DOM制作简单留言板
  20. 2011年7月编程语言排行榜,Objective-C将成为年度语言

热门文章

  1. python中读取文本文件_Python三种读取txt文件方式
  2. java8 方法引用好处_Java 8方法引用
  3. linux安装mysql5.7.24_下载安装 Ubuntu 19.04 “Disco Dingo” | Linux 中国
  4. animate改变背景颜色_3D MAX2016视口背景设置里各参数的含义详解 - 3dmax基础操作入门教程-3dmax材质教程,3d材质贴图教程参数,vray材质参数,3dmax贴图教程...
  5. 数据可视化制作工具推荐
  6. java中的类方法和实例方法_下面关于Java语言中实例方法和类方法的说法,哪几项是对的?...
  7. springboot读取linux文件_SpringBoot 读取文件代码模版
  8. 【数据库原理实验(openGauss)】完整性控制
  9. 【Java程序设计】类与对象的基本概念(上)
  10. Hive日期格式转换