java_常用类(代码片段)

过往将来 过往将来     2022-12-22     459

关键词:

Java_字符串相关类

Java_String类

String的特性:

1.String类:代表字符串。Java 程序中的所有字符串字面值(如"abc" )都作为此类的实例实现
2. String是一个final类,代表不可变的字符序列
3. 字符串是常量,用双引号表示,字符串的值在创建之后不能更改
4. String对象的字符内容是存储在一个字符数组value[]中的。

String对象的创建:

String str = "hello";
//本质上this.value = new char[0];
String  s1 = new String();
 
//this.value = original.value;
String  s2 = new String(String original); 

//this.value = Arrays.copyOf(value, value.length);
String  s3 = new String(char[] a); 
String  s4 = new String(char[] a,int startIndex,int count);

字符串常量存储在字符串常量池,目的是共享
字符串非常量对象存储在堆中

String str1  = “abc”;String str2 = new String(“abc”);的区别

两个字符串拼接的情况:

  1. 常量与常量的拼接结果在常量池。且常量池中不会存在相同内容的常量。
  2. 两个字符串只要其中有一个是变量,结果就在堆中
  3. 如果拼接的结果调用intern()方法,返回值就在常量池中

Java_字符串使用陷阱

  1. String s1 = "a";在字符串常量池中创建了一个字面量为"a"的字符串。
  2. String s1 = "a";s1 = s1 + "b";实际上原来的“a”字符串对象已经丢弃了,现在在堆空间中产生了一个字符串s1+"b"(也就是"ab")。如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率。如果这样的操作放到循环中,会极大影响程序的性能
  3. String s2 = "ab":直接在字符串常量池中创建一个字面量为"ab"的字符串。
  4. String s3 = "a" + "b";s3指向字符串常量池中已经创建的"ab"的字符串。
  5. String s4 = s1.intern();堆空间的s1对象在调用intern()之后,会将常量池中已经存在的"ab"字符串赋值给s4

Java_string类常用方法

1.返回值int 类型 length():返回字符串的长度:return value.length
2. 返回值 char 类型 charAt(int index):返回某索引处的字符return value[index]
3. 返回值 boolean 类型`` isEmpty():判断是否是空字符串:return value.length == 0
4.返回值 String 类型 toLowerCase():使用默认语言环境,将String 中的所有字符转换为小写
4. 返回值String类型 toUpperCase():使用默认语言环境,将String 中的所有字符转换为大写
5. 返回值String类型 trim():返回字符串的副本,忽略前导空白和尾部空白
6. 返回值boolean类型 equals(Object obj):比较字符串的内容是否相同
7. 返回值boolean 类型`` equalsIgnoreCase(String anotherString):与equals方法类似,忽略大小写
8. 返回值 String 类型 concat(String str):将指定字符串连接到此字符串的结尾。等价于用“+
9. 返回值int 类型``compareTo(String anotherString):比较两个字符串的大小
10. 返回值String 类型 substring(int beginIndex) :返回一个新的字符串,它是此字符串的从beginIndex开始截取到最后的一个子字符串。
11. 返回值 String substring(int beginIndex, int endIndex) :返回一个新字符串,它是此字符串从beginIndex开始截取到endIndex(不包含)的一个子字符串。
12. 返回值类型 boolean contains(CharSequence s):当且仅当此字符串包含指定的char 值序列时,返回true
13. 返回值类型 int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引
14. 返回值类型int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始搜索
15. 返回值类型 int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引
16. 返回值类型 int lastIndexOf(String str, int fromIndex):返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索
注意:indexOf和lastIndexOf方法如果未找到都是返回-1
17. 返回值类型 String replace(char oldChar, char newChar):返回一个新的字符串,它是通过用newChar 替换此字符串中出现的所有oldChar 得到的。
18. 返回值类型String replace(CharSequence target, CharSequence replacement):使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。

Java_StringBuffer类

  1. java.lang.StringBuffer代表可变的字符序列,JDK1.0中声明,可以对字符串内容进行增删,此时不会产生新的对象。
  2. StringBuffer类不同于String,其对象必须使用构造器生成,

StringBuffer类的三个构造器

  1. StringBuffer():初始容量为16的字符串缓冲区
  2. StringBuffer(int size):构造指定容量的字符串缓冲区
  3. StringBuffer(String str):将内容初始化为指定字符串内容
String s = new String("我喜欢学习"); // 定义 s 的值以后,就不能被修改了
StringBuffer buffer = new StringBuffer("我喜欢学习");  // 还能被修改
buffer.append("数学"); // 此时 buffer 的变为 "我喜欢学习数学"

Java_StrigBuffer类常用方法

  1. StringBuffer append(xxx):提供了的append()方法,用于进行字符串拼接
  2. StringBuffer delete(int start,int end):删除指定位置的内容
  3. StringBuffer replace(int start, int end, String str):把[start,end)位置替换为str
  4. StringBuffer insert(int offset, xxx):在指定位置插入xxx
  5. StringBuffer reverse() :把当前字符序列逆转

注意:当append和insert时,如果原来value数组长度不够,可扩容

Java_StringBuilder类

  1. StringBuilder 和StringBuffer非常类似,均代表可变的字符序列,而且提供相关功能的方法也一样

String,StringBuffer,StringBuilder之间的区别:

  1. String:是不可变的字符序列
  2. StringBuffer:可变字符序列,效率低,线程安全
  3. StringBuilder:可变字符序列,效率高,线程不安全
  4. 作为参数传递的话,方法内部String不会改变其值,StringBuffer和StringBuilder会改变其值

Java_日期时间API

Java_JDK8之前的日期时间API

java.lang.System类:

  1. System类提供的public static long currentTimeMillis()用来返回当前时
    间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。

java.util.Date类: 表示特定的瞬间,精确到毫秒

java.util.Date类的构造器:

  1. Date():使用无参构造器创建的对象可以获取本地当前时间。
  2. Date(long date)

java.util.Date类的常用方法:

  1. getTime():返回自1970 年1 月1 日00:00:00 GMT 以来此Date 对象
    表示的毫秒数。
  2. toString():把此Date 对象转换为以下形式的String:dow mon dd hh:mm:ss zzz yyyy 其中:dow 是一周中的某一天(Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是时间标准
package Java_9;
import java.util.Date;
public class Java_DateAPI 
    public static void main(String[] args) 
        Date date = new Date();
        System.out.println(date);
        System.out.println(System.currentTimeMillis());
        System.out.println(date.getTime());
        Date date1 = new Date(date.getTime());
        System.out.println(date1.getTime());
        System.out.println(date1.toString());
    

java.text.SimpleDateFormat类:

  1. Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat类是一个不与语言环境有关的方式来格式化和解析日期的具体类
  2. java.text.SimpleDateFormat:允许进行格式化:日期到文本、解析:文本到日期

java.text.SimpleDateFormat的格式化:

  1. SimpleDateFormat():默认的模式和语言环境创建对象
  2. public SimpleDateFormat(String pattern):该构造方法可以用参数pattern指定的格式创建一个对象,该对象调用
  3. public String format(Date date):方法格式化时间对象date

java.text.SimpleDateFormat的解析:

  1. public Date parse(String source):从给定字符串的开始解析文本,以生成一个日期。
Date date = new Date(); // 产生一个Date实例
// 产生一个formater格式化的实例
        SimpleDateFormat formater = new SimpleDateFormat();
        System.out.println(formater.format(date));// 打印输出默认的格式
        SimpleDateFormat formater2 = new SimpleDateFormat("yyyy年MM月dd日 EEE HH:mm:ss");
        System.out.println(formater2.format(date));
        try 
// 实例化一个指定的格式对象
            Date date2 = formater2.parse("2008年08月08日 星期一 08:08:08");
// 将指定的日期解析后格式化按指定的格式输出
            System.out.println(date2.toString());
         catch (ParseException e) 
            e.printStackTrace();
        

Java_JDK8中新日期时间API

新时间日期API

  1. java.time – 包含值对象的基础包
  2. java.time.chrono – 提供对不同的日历系统的访问
  3. java.time.format – 格式化和解析时间和日期
  4. java.time.temporal – 包括底层框架和扩展特性
  5. java.time.zone – 包含时区支持的类

三个重要的类:LocalDate、LocalTime、LocalDateTime

LocalDate、LocalTime、LocalDateTime类是其中较重要的几个类,它们的实例是不可变的对象,分别表示使用ISO-8601日历系统的日期、时间、日期和时间。它们提供了简单的本地日期或时间,并不包含当前的时间信息,也不包含与时区相关的信息。

  1. LocalDate代表IOS格式(yyyy-MM-dd)的日期,可以存储生日、纪念日等日期
  2. LocalTime表示一个时间,而不是日期。
  3. LocalDateTime是用来表示日期和时间的,这是一个最常用的类之一
    补充:ISO-8601日历系统是国际标准化组织制定的现代公民的日期和时间的表示法,也就是公历。

比较重要的方法:

  1. now() / * now(ZoneId zone):静态方法,根据当前时间创建对象/指定时区的对象
  2. of():静态方法,根据指定日期/时间创建对象
  3. getDayOfMonth()/getDayOfYear():获得月份天数(1-31) /获得年份天数(1-366)
  4. getDayOfWeek():获得星期几
  5. getMonth(): 获得月份, 返回一个Month值
  6. getMonthValue() / getYear():获得月份(1-12) /获得年份
  7. getHour()/getMinute()/getSecond():获得当前对象对应的小时、分钟、秒

格式化与解析日期或时间:

java.time.format.DateTimeFormatter类:提供了三种格式化方法:预定义的标准格式,本地化相关的格式,自定义的格式

预定以的标准格式:ISO_LOCAL_DATE_TIME;ISO_LOCAL_DATE;ISO_LOCAL_TIME
本地化相关的格式:如:ofLocalizedDateTime(FormatStyle.LONG)
自定义的格式:如:ofPattern(“yyyy-MM-dd hh:mm:ss”)

java.time.format.DateTimeFormatter类的方法:

  1. ofPattern(String pattern): 静 态 方 法 , 返 回 一 个 指 定 字 符 串 格 式 的DateTimeFormatter
  2. format(TemporalAccessor t):格式化一个日期、时间,返回字符串
  3. parse(CharSequence text):将指定格式的字符序列解析为一个日期、时间

java常用常量类(代码片段)

publicclassStringConstantprivatefinalstaticStringISO_8859_1="ISO-8859-1";privatefinalstaticStringGB2312="GB2312";privatefinalstaticStringUTF_8="UTF-8";publicstaticf 查看详情

尚硅谷_java零基础教程(常用类——comparablecomparator)--学习笔记(代码片段)

JavaComparable\\ComparatorComparable\\Comparator1、Comparable1.1、定义和属性1.2、Comparable自然排序举例1.3、自定义类实现Comparable自然排序2、Comparator定义和属性2.1、定义和属性2.2使用Comparator实现定制排序Comparable\\Comparator说明:Java中的对... 查看详情

尚硅谷_java零基础教程(常用类——string)--学习笔记(代码片段)

...储的?4、字符串拼接细节5、String使用陷阱6、String的常用方法7、String与基本包装类的转换8、StringBuffer和StringBuilder的介绍一、String1、String的特性String类:代表字符串。String是一个final类 查看详情

java_字符串池以及字符串类(代码片段)

...字符串注意事项Java_String类Java_字符串使用陷阱Java_string类常用方法Java_StringBuffer类Java_StrigBuffer类常用方法Java_StringBuilder 查看详情

尚硅谷_java零基础教程(常用类——枚举类enum)--学习笔记(代码片段)

JavaEnum一、Enum1、自定义枚举类2、使用关键字enum定义枚举类3、Enum类的主要方法4、实现接口的枚举类5、枚举使用场景举例一、Enum一.枚举类的使用枚举类的理解:类的对象只有有限个,确定的,我们称此类为枚举类当需要定义一组常... 查看详情

java06_optional类概述初始化常用方法最佳实践(代码片段)

文章目录①.Optional类的概述②.初始化Optional类③.判断对象是否存在④.获取Optional容器的对象⑤.Optional的过滤和映射⑥.什么场景用Optional①.Optional类的概述①.到目前为止,臭名昭著的空指针异常是导致Java应用程序失败的最常见原... 查看详情

java06_optional类概述初始化常用方法最佳实践(代码片段)

文章目录①.Optional类的概述②.初始化Optional类③.判断对象是否存在④.获取Optional容器的对象⑤.Optional的过滤和映射⑥.什么场景用Optional①.Optional类的概述①.到目前为止,臭名昭著的空指针异常是导致Java应用程序失败的最常见原... 查看详情

java_反射机制(代码片段)

...射机制的作用Java_反射相关的主要APIJava_Class类Java_Class类常用方法Java_获取Class类的实例(四种方法)Java_哪些类型`Class`对象Java_反射(Reflection)机制Reflection(反射)是被视为动态语言的关键,反射机制允许 查看详情

java常用api简单统计(代码片段)

Java的Number类:Byte类型长度:1byte/8bit最大值:1270b0111_1111最小值:-1280b1000_0000Short类型长度:2byte/16bit最大值:2^15327670x7fff0b0111_1111_1111_1111最小值:-2^15-327680x8000 查看详情

java学习_5_23(代码片段)

...实现类均实现了这些方法。List容器是有序、可重复的,常用的实现类:ArrayList,LinkedList,Vector(线程安全的)带索引的add,remove操作。 自己实现的MyArrayList:packagetest.stringTest;publicclassMyArra 查看详情

javascript常用工具类(代码片段)

1.邮箱exportconstisEmail=(s)=>return/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]2,3)1,2)$/.test(s)2.手机号码exportconstisMobile=(s)=>return/^1[0-9]10$/.test(s)3.电话号码exportconstisPhone 查看详情

java常用类(代码片段)

常用类包装类Wrapper的分类包装类和基本数据的转换01:packageTryCatchExercise;publicclassWrapperDemopublicstaticvoidmain(String[]args)//手动装箱intn1=100;Integerinteger=newInteger(n1);Integerinteger1=Integer.valueO 查看详情

java常用类--string类常用方法(代码片段)

1.String类常用方法1.1String的判断常用方法演示:publicstaticvoidmain(String[]args)//创建字符串对象Strings1="hello";Strings2=newString("hello");Strings3=newString("HELLO");//booleanequals 查看详情

python类的常用魔法方法(代码片段)

文章目录一.`__init__()`二.`__str__()`三.`__del__()`四.`__repr__()`五.使用案例一.__init__()#在Python类中,有一类方法,这类方法以两个下划线开头和结尾,并且在满足某个特定条件的情况下会自动调用,这类方法称为魔法... 查看详情

java_对象流(代码片段)

...JavaNIO概述Java_NIO.2中Path、Paths、Files类的使用Java_NIO.2中Path常用方法Java_NIO.2中Files类Java_对象流_Object 查看详情

java常用单位转换的辅助类(代码片段)

查看详情

java常用单位转换的辅助类(代码片段)

查看详情

java常用单位转换的辅助类(代码片段)

查看详情