🔥系列传送门:
【06章多线程】Java语言的重头戏
【05章Java异常处理】一篇短文教你玩转Java异常处理【热榜】
【附章2Java面向对象编程】盘点关键字详解 this、super、final【热榜】
【04章Java面向对象编程(下)】面向对象编程的必杀技【热榜】
【04章Java面向对象编程(中)】解密 继承性和多态性【热榜】
【04章Java面向对象编程(上)】万事万物皆对象的初体验【全站热榜第二】
【附章1Java数组中常见算法】图文并茂详解十大排序算法让您回味无穷
【03章Java数组】程序员必看数组详解
【02章Java基本语法】详细讲解让你重新认识Java基本语法和流程流程控制
【01章Java语言概述】Java学了很久了吧,快回来熟悉熟悉吧(详细)
文章目录
一、String
代表字符串、代表不可变
的字符序列
- String对象的字符内容是存储在一个字符数组value[ ]中的
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
/** The value is used for character storage. */
private final char value[];
/** Cache the hash code for the string */
private int hash; // Default to 0
解析:
小结:
- 常量与常量的拼接结果在常量池,且常量池中不会存在相同内容的常量。
- 如果其中有一个是变量,结果就在堆中
- 如果拼接的结果调用intern()方法,返回值就在常量池中
🔥String常用方法
int length()
:返回字符串的长度
char charAt(int index)
: 返回某索引处的字符
boolean isEmpty()
:判断是否是空字符串
String toLowerCase()
:使用默认语言环境,将 String 中的所有字符转换为小写
String toUpperCase()
:使用默认语言环境,将 String 中的所有字符转换为大写
String trim()
:返回字符串的副本,忽略前导空白和尾部空白
boolean equals(Object obj)
:比较字符串的内容是否相同
boolean equalsIgnoreCase(String anotherString)
:与equals方法类似,忽略大小写
String concat(String str)
:将指定字符串连接到此字符串的结尾。 等价于用“+”
int compareTo(String anotherString)
:比较两个字符串的大小
String substring(int beginIndex)
:返回一个新的字符串,是此字符串的从beginIndex始截到最后
String substring(int beginIndex, int endIndex)
:返从beginIndex始截到endIndex(不包含)一个子字符串
boolean endsWith(String suffix):测试此字符串是否以指定的后缀结束
boolean startsWith(String prefix):测试此字符串是否以指定的前缀开始
boolean startsWith(String prefix, int toffset):测试字符串从指定索引始子字符串是否以指定前缀开始
boolean contains(CharSequence s):当且仅当此字符串包含指定的 char 值序列时,返回 true
int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引
int indexOf(String str, int fromIndex):返回指定子字符串第一次出现处的索引,从指定的索引开始
int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引
int lastIndexOf(String str, int fromIndex):返回指定子字符串最后一次出现处索引并从此开始反向搜索
String replace(char oldChar, char newChar):返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
String replace(CharSequence target, CharSequence replacement):使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
String replaceAll(String regex, String replacement) :使用给定的replacement替换此字符串所有匹配给定的正则表达式的子字符串。
String replaceFirst(String regex, String replacement) :使用给定的replacement替换此字符串匹配给定的正则表达式的第一个子字符串。
boolean matches(String regex):告知此字符串是否匹配给定的正则表达式。
String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。
String[] split(String regex, int limit):根据匹配给定的正则表达式来拆分此字符串,最多不超过limit个,如果超过了,剩下的全部都放到最后一个元素中
🔥String与基本数据类型转换
字符串 ➜ 基本数据类型、包装类
Integer包装类的public static int parseInt(String s):可以将由“数字”字符组成的字符串转换为整型。类似地,使用java.lang包中的Byte、Short、Long、Float、Double类调相应的类方法可以将由“数字”字符组成的字符串,转化为相应的基本数据类型基本数据类型、包装类 ➜ 字符串
**String类的public String valueOf(int n)**可将int型转换为字符串valueOf(byte b)、valueOf(long l)、valueOf(float f)、valueOf(doubled)、valueOf(boolean b)可由参数的相应类型到字符串的转换字符数组 ➜ 字符串
String 类的构造器:String(char[]) 和 String(char[],int offset,intlength) 分别用字符数组中的全部字符和部分字符创建字符串对象字符串 ➜ 字符数组
public char[] toCharArray():将字符串中的全部字符存放在一个字符数组中的方法。
public void getChars(int srcBegin, int srcEnd, char[] dst,int dstBegin):提供了将指定索引范围内的字符串存放到数组中的方法字节数组 ➜ 字符串
String(byte[]):通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。
String(byte[],int offset,int length) :用指定的字节数组的一部分,即从数组起始位置offset开始取length个字节构造一个字符串对象字符串 ➜ 字节数组
public byte[] getBytes() :使用平台的默认字符集将此 String 编码为byte 序列,并将结果存储到一个新的 byte 数组中。
public byte[] getBytes(String charsetName) :使用指定的字符集将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。
🔥StringBuffer和StringBuilder
java.lang.StringBuffer代表可变的字符序列
- 三个构造器:
●StringBuffer():初始容量为16的字符串缓冲区
●StringBuffer(int size):构造指定容量的字符串缓冲区
●StringBuffer(String str):将内容初始化为指定字符串内容 - StringBuffer类的常用方法
StringBufferappend(xxx)
:提供了很多的append()方法,用于进行字符串拼接
StringBufferdelete(int start,int end)
:删除指定位置的内容
StringBufferreplace(int start, int end, String str)
:把[start,end)位置替换为str
StringBufferinsert(int offset, xxx)
:在指定位置插入xxx
StringBufferreverse()
:把当前字符序列逆转
StringBuilder 和 StringBuffer 非常类似,均代表可变的字符序列,而且提供相关功能的方法也一样
强烈推荐传送门 >>> Java中的String,StringBuilder,StringBuffer三者的区别详解
二、日期时间API
🔥JDK8之前
- java.lang.System类
System类提供的public static long currentTimeMillis()
用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。此方法适于计算时间差。 - java.util.Date类
构造器:
●Date()
:使用无参构造器创建的对象可以获取本地当前时间
●Date(long date)
常用方法
getTime()
:返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
toString()
:把此 Date 对象转换为以下形式的 String: dow mon ddhh:mm:ss zzz yyyy - java.text.SimpleDateFormat类
格式化:
●SimpleDateFormat()
:默认的模式和语言环境创建对象
●public SimpleDateFormat(String pattern)
:用参数pattern指定格式创建一个对象,该对象调用
●public String format(Date date)
:方法格式化时间对象date
解析:
●public Date parse(String source):从给定字符串的开始解析文本,以生成一个日期 - java.util.Calendar(日历)类
Calendar是一个抽象基类,用于完成日期字段之间相互操作的功能
获取Calendar实例的方法
●使用Calendar.getInstance()方法
●调用它的子类GregorianCalendar的构造器
🔥JDK8中
- 新增:
java.time:包含值对象的基础包
java.time.chrono:提供对不同的日历系统的访问
java.time.format:格式化和解析时间和日期
java.time.temporal:包括底层框架和扩展特性
java.time.zone:包含时区支持的类 - 常用 java.time 中方法
- java.time.format.DateTimeFormatter 类
提供三种格式化方法:
●ofPattern(String pattern)
静态方法,返回一个指 定 字 符 串 格 式 的DateTimeFormatter
●format(TemporalAccessor t)
格式化一个日期、时间,返回字符串
●parse(CharSequence text)
将指定格式的字符序列解析为一个日期、时间
三、Java比较器
强烈推荐传送门 >>>【Java比较器】的两个排序你知道吗?
四、System类
系统,系统级的很多属性和控制方法都放置在该类的内部,该类位于java.lang包
- 成员变量
System类内部包含in、out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流(显示器)和标准错误输出流(显示器) - 成员方法
●native long currentTimeMillis()
:
返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数
●void exit(int status)
:退出程序
●void gc()
:请求系统进行垃圾回收
●String getProperty(String key)
:获得系统中属性名为key的属性对应的值
五、Math类
●abs 绝对值
●sqrt 平方根
●pow(double a,doble b) a的b次幂
●log 自然对数
●exp e为底指数
●max(double a,double b)
●min(double a,double b)
●random() 返回 0.0到 1.0的随机数
●long round(double a) double型数据 a转换为 long型(四舍五入)
●toDegrees(double angrad) 弧度 ➜ 角度
●toRadians(double angdeg) 角度 ➜ 弧度
六、BigInteger与BigDecimal
🔥BigInteger类
BigInteger可以表示不可变的任意精度的整数
1)常用方法
●public BigInteger abs():返回此 BigInteger 的绝对值的 BigInteger
●BigInteger add(BigInteger val) :返回其值为 (this +
val) 的 BigInteger
●BigInteger subtract(BigInteger val) :返回其值为 (this -
val) 的 BigInteger
● BigInteger multiply(BigInteger val) :返回其值为 (this *
val) 的 BigInteger
● BigInteger divide(BigInteger val) :返回其值为 (this /
val) 的 BigIntege
● BigInteger remainder(BigInteger val) :返回其值为 (this %
val) 的 BigInteger
● BigInteger[] divideAndRemainder (BigInteger val):返回包含 (this / val) 后跟(this % val) 的两个 BigInteger 的数组
● BigInteger pow(int exponent) :返回其值为 (this.exponent) 的 BigInteger
🔥BigDecimal类
数字精度比较高
- 常用方法
●public BigDecimal add(BigDecimal augend):+
●public BigDecimal subtract(BigDecimal subtrahend):-
●public BigDecimal multiply(BigDecimal multiplicand):*
●public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode):/