0
点赞
收藏
分享

微信扫一扫

Java学习笔记6

八卦城的酒 2022-04-02 阅读 94
java

字符串

概述

java.lang.String 类代表字符串。

程序当中所有的双引号字符串,都是String类的对象。(就算没有new,也是)

  1. 字符串不变:字符串的值在创建后不能被更改。【重点

  2. 因为String对象是不可变的,所以它们可以被共享。

  3. 字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组

  • 三种构造方法:

    public String() :创建一个空白字符串,不含任何内容。

    public String(char[] value) :通过当前参数中的字符数组来构造新的String。

    public String(byte[] bytes) :通过使用平台的默认字符集解码当前参数中的字节数组来构造新的 String。

  • 一种直接构造:

    String str = "xxx";

程序当中直接写上的双引号字符串,就在字符串常量池中。

内存图:

 

注意事项:

  1. 对于引用类型来说,==进行的是地址值的比较

  2. 双引号直接写的字符串在常量池中,new的不在常量池中

字符串的比较相关方法

 public boolean equals (Object anObject) 

将此字符串与指定对象进行比较。 参数可以是任意对象,只有参数是一个字符串且内容相同的才会给ture,否则返回false。

  1. 任何对象都能用Object接收

  2. equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样

  3. 如果比较双方一个常量一个变量,推荐把常量字符串写在前面

    推荐:"abc".equals(str) 不推荐:str.equals("abc")

 public boolean equalsIgnoreCase (String anotherString) 

将此字符串与指定对象进行比较,忽略大小写。

字符串的获取相关方法

 public int length () ;

返回此字符串的长度。

 public String concat (String str) ;

将指定的字符串连接到该字符串的末尾。 返回新的字符串。

 public char charAt (int index) ;

返回指定索引处的 char值。

 public int indexOf (String str) ;

返回指定子字符串第一次出现在该字符串内的索引。 如果没有返回-1值。

字符串的截取方法

 public String substring (int beginIndex) ;

返回一个子字符串,从beginIndex开始截取字符串到字符串结尾。

 public String substring (int beginIndex, int endIndex) ;

返回一个子字符串,从beginIndex到endIndex截取字符串。含beginIndex,不含endIndex。

字符串的转换方法

 public char[] toCharArray () ;

将此字符串转换为新的字符数组。

 public byte[] getBytes () ;

使用平台的默认字符集将该 String编码转换为新的字节数组。

 public String replace (CharSequence target, CharSequence replacement) ;

将与target匹配的字符串使用replacement字符串替换。

字符串的分割方法

 public String[] split(String regex) ;

将此字符串按照给定的regex(规则)拆分为若干字符串数组。

split方法的参数其实是一个“正则表达式”,如果按照英文句点“.”进行切分,必须写“\\.”(两个反斜杠)

Static关键字

它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的。也就是说,既然属于类,就可以不靠创建对象来调用了。 凡是本类的对象,都共享同一份。

调用Static修饰的成员变量/方法

无论是成员变量,还是成员方法。如果有了Static,都推荐使用类名称进行调用。

 // 访问类变量
 类名.类变量名; 
 // 调用静态方法 
 类名.静态方法名(参数);
  1. 静态不能直接访问非静态

    原因:因为在内存当中是【先】有的静态内容,【后】有的非静态内容

  2. 静态方法当中不能使用this

    原因:this代表当前对象,通过谁调用的方法,谁就是当前对象

静态Static的内存图

静态代码块

格式:

 public class ClassName{
     static {
         // 执行语句
     }
 }

特点:当第一次用到本类时,静态代码块执行唯一的一次。

静态内容总是优先于非静态,所以静态代码块比构造方法先执行

典型用途:用来一次性地对静态成员变量进行赋值

数组工具类Arrays

用于实现数组常见的操作

 public static String toString(数组) ;

返回指定数组内容的字符串表示形式。[元素1,元素2,元素3...]

 public static void sort(数组) ;

对指定的数组按默认升序进行排序。

备注:

  1. 如果是数组,sort默认按照升序从小到大

  2. 如果是字符串,sort默认按照字母升序

  3. 如果是自定义的类型,那么这个自定义的类需要有Comparable或者Comparator接口的支持

数学工具类Math

完成于数学运算相关的操作

 public static double abs(double a) ;

返回 double 值的绝对值。

 public static double ceil(double a) ;

返回大于等于参数的最小的整数。

 public static double floor(double a) ;

返回小于等于参数最大的整数。

 public static long round(double a) ;

返回最接近参数的 long。(相当于四舍五入方法)。

 Math.PI

代表近似的圆周率常量(double)。

举报

相关推荐

0 条评论