常用类,String,StringBuffer,Integer,包装类,Character,Math,Clendar,Date,System,Arrays,Random,BigDecimal


public int compareTo(String anotherString) 按字典顺序比较

源码如下:

 public int compareTo(String anotherString) {
        int len1 = value.length;
        int len2 = anotherString.value.length;
        int lim = Math.min(len1, len2);
        char v1[] = value;
        char v2[] = anotherString.value;
         int k = 0;
    while (k < lim) {
        char c1 = v1[k];
        char c2 = v2[k];
        if (c1 != c2) {
            return c1 - c2;
        }
        k++;
    }
    return len1 - len2;
}

获取两个字符串的长度,取较小的长度进行每个字符的比较,如果字符不相同,返回字符的ASCII码值差,如果都相同,返回两个字符串长度的差值

String类的截取功能

public String substring(int beginIndex,int endIndex)

从指定位置开始截取,到指定位置结束,但是包含beginIndex,不包含endIndex索引(包前不包后)

替换功能

  • public String replace(char oldChar,char newChar):将以前的字符用新的字符替换掉

  • public String replace(String oldStr,char newStr):将以前的字符用新的字符替换掉

  • public String trim()去除两端空格

    StringBuffer

    线程安全的可变字符序列 ,提供字符串缓冲区

StringBuffer的构造方法:

  • 1)public StringBuffer():空参构造,初始容量为 16 个字符。(默认的容量足够,不需要指定容量大小)

  • 2)public StringBuffer(String str):构造一个缓冲区,指定字符串内容到缓冲区中,容量大小等于16个+当前字符串的实际长度

  • 3)public StringBuffer(int capacity):指定容量大小,构造一个缓冲区

    两个获取功能

    int length():获取长度(缓冲区中字符数)

    public int capacity():获取缓冲区的容量大小

    StringBuffer的删除功能

    public StringBuffer deleteCharAt(int index):删除指定位置处的字符,返回缓冲区本身

    public StringBuffer delete(int start,int end):删除从指定位置到指定位置结束(包前不包后,end-1位置)

    StringBuffer的截取功能

    public String substring(int start):从指定位置开始截取,默认截取到末尾

    public String substring(int start, int end):从指定位置开始截取,截取到指定位置结束!

    StringBuffer的替换功能

    public StringBuffer replace(int start,int end, String str)

    从指定位置开始到指定位置结束(end-1处)使用str子串进行替换

    String <----> StringBuffer类型的相互转换

    String------------->StringBuffer

    1).	方法一:	StringBuffer sb=new StringBuffer(String str); StringBuffer构造方法
    2).	方法二:	StringBuffer sb=new StringBuffer();
    				sb.append(String str);	StringBuffer无参构造+append()方法
    

    StringBuffer---------------------->String

    1).	方法一:	String str=new String(StringBuffer sb);	String构造方法
    2).	方法二:	String str=sb.toString();	StringBuffer的toString()方法
    

    将数组拼接为字符串的问题

    需求:
    
    ​	已知数组:int[] arr = {11,22,33,44,55} ;
    
    ​	将数组拼接字符串 "[元素1, 元素2, 元素3, ....]"
    
    方法一: 定义String str="[",通过"+"连接符,for循环遍历数组元素,进行拼接
    关键代码如下:
    	String result = "" ;
    		//拼接左中括号
    		result += "[" ;
    		//遍历数组
    		for (int i = 0; i < arr.length; i++) {
    			if(i==arr.length-1) {
    				result += arr[i] ;
    				result += "]" ;
    			}else {
    				result += arr[i] ;
    				result += ", " ;
    			}
    		}
    		return result;
    
    方法二:	定义StringBuffer sb=new StringBuffer("["),通过append()方法和for循环遍历数组进行拼接
    关键代码如下:
     StringBuffer sb = new StringBuffer() ;
    		sb.append("[") ;
    		//遍历数组
    		for (int i = 0; i < arr.length; i++) {
    			if(i==arr.length-1) {
    				sb.append(arr[i]).append("]") ;
    			}else {
    				sb.append(arr[i]).append(", ") ;
    			}
    		}
    		return sb.toString() ;
    
    方法三:	利用Arrays类的toString()静态方法直接可以将数组变为字符串输出
    	Arrays.toString(int[] a);
    

StringBuffer的反转功能

public StringBuffer reverse() 将字符串内容反转

  • StringBuffer和数组的区别?

  • 他们两者都属于引用类型,而且都是"容器"

  • StringBuffer: 可变的字符序列 (长度可变的)

  •  	里面可以存储任何数据类型----->都是以"字符"进行拼接 通过append追加
    
  • length()

  • 数组: 长度固定,只能存储同一种类型的元素!

  •  	length属性
    
  • int[] arr = {100,200,300,“hello”} ; //错误的!

  • StringBuffer和StringBuilder的区别?

  • 共同点: 两者之间互相兼容的,功能是相同(添加,构造方法,替换,删除,截取…)

  • StringBuffer:可变的字符序列

  •  		 线程角度:线程安全的--->同步的---->执行效率低!
    
  • StringBuilder:可变的字符序列

  •  		线程角度:线程不安全的---->不同步的---->执行效率高
    
  •  	在单线程程序中,StringBuilder去替换StringBuffer,因为效率高!
    
  • StringBuffer和String类型作为形式参数有什么区别:

  • 两个都是引用类型

  • String类作为形式参数,它的效果基本数据类型一样(String是最特殊的引用类型)

  • String是一个常量,一旦被赋值,其值不能被改变

  • StringBuffer/StringBuilder,他们作为形式参数,

  • 形式参数的改变会直接影响实际参数(和其他引用类型效果一样)

    Integer类

    成员变量(字段)

    public static final int MIN_VALUE:最小值

    public static final int MAX_VALUE:最大值

    构造方法

    public Integer(int value)

    构造新分配的 Integer对象,该对象表示指定的int值。

    public Integer(String s) throws NumberFormatException

    构造一个新分配Integer对象,表示由指示值String参数。 字符串将转换为int值.

    如果不是数字字符串,就出现NumberFormatException:数字格式化异常

    Integer的注意点

    1)	Integer 变量名  = 整数值直接赋值; 
    
    实际执行一个Integer的.valueOf(整数值);
    
    valueOf方法里面提供了一个Integer的内部类:IntegerCache
    
    public static Integer valueOf(int i) {
    
    //先判断是否在这个i数据是否符合缓存区中的low:-128  high:127
     		if (i >= IntegerCache.low && i <= IntegerCache.high)
         			return IntegerCache.cache[i + (-IntegerCache.low)];
         						//Integer[] cache;
    
     		//如果不在这个超出了缓存区的直接重新堆内存中开辟空间
     		return new Integer(i); 
    	}
    
    1. //创建一个Integer对象
    Integer i = 100 ;
    		i += 200 ;
    		System.out.println(i);
    		/*
    
       * 通过反编译工具查看对应.class文件的优化
         	 *public static Integer valueOf(int i):将100整数int类型---提升Integer类型:自动装箱
           * 	Integer i = Integer.valueOf(100); 
               * 		​	i = Integer.valueOf(i.intValue() + 200); //1)先将i拆箱:Integer---int类型 public int intValue()
                   ​											//2)然后将结果300 int类型---->Integer类型:自动装箱
                   ​	System.out.println(i);
    

    将String----int类型在相互转换

    int------>String: Integer.toString(int i)

    String----->int: Inerget.parseInt(String str)

    character类

    构造方法

    public C Character:char类型的包装类类型,包含一个char类型的值

    Character(char value)

    判断功能:

    public static boolean isDigit(char ch):判断当前字符是否是数字字符

    public static boolean isLowerCase(char ch):判断当前字符是否是小写字母字符

    public static boolean isUpperCase(char ch):判断当前字符是否是大写字母字符

静态导入的格式:

  • import static 包名.类名.方法名;

    前提这些方法是静态 的

  • 使用静态导入的注意事项:

  • 如果当前类中出现了和导入的静态方法名一样,冲突了,在使用静态导入的这个的方法的时候

  • 就必须带上限定(包名.类名)

Math类

  • java.lang.Math:
  • Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
  • public static double abs(double a/…):求某个数据的绝对值
  • public static double ceil(double a):向上取整
  • public static double floor(double a):向下取整
  • public static int min(int a, int b):求两个int数据的最小值
  • public static int max(int a,int b):求两个int数据的最大值
  • public static double random():随机数[0.0,1.0) ---------> Java提供随机数生成器:Random类 nextInt(int n)
  • public static int round(float a):四舍五入…
  • public static long round(double a)
  • public static double sqrt(double a):开根(一个正整数的平方根) 4—2
  • public static double pow(double a,double b):返回结果:a的b次幂

Calendar类

  • java.util.Calendar类:日历类

  • Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,

  •  并为操作日历字段(例如获得下星期的日期)提供了一些方法
    
  • Calendar不能直接实例化!

  •  某一个类如果不能直接实例化:
    
  •  首先里面会存在一些静态功能,静态功能的返回值就是该类本身!
    
  •  	public static Calendar getInstance()
    
  • public int get(int field):获取的日历字段的值!

  •  参数:传递日历字段
    
  • Calendar的成员方法:

  • 给日历字段添加或者减去时间偏移量

  • public abstract void add(int field,int amount)

  • 日历对象.add(Calendar.DATE,-5):当前日历时间的5天前

  • 设置当前年月日,日历时间

  • public final void set(int year,int month, int date)

Date类

  • java.util.Date类

  • 特定的瞬间,精确到毫秒。

  • 构造方法:

  •  public Date() 无参构造
    
  • 成员方法:

  •  public long getTime() :返回1970 年 1 月 1 日所表示的时间毫秒	
    
  • java.util.Date 应用场景 String:文本格式 和Date格式的相互转换

  • String文本格式 和Date日期格式相互转换

  • Date---------------->String 日期文本格式 "格式化"操作

  • java.text.DateFormat:可以将日期和文本相互转换

  • DateFormat继承自Format类:都是抽象类,不能直接实例化!,提供更具体的子类

  •  java.text.SimpleDateFormat extends DateFormat
    
  • 它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)

  • SimpleDateFormat的构造方法

  • public SimpleDateFormat(String pattern):

  • 创建一个SimpleDateFormat对象

  •  参数:指定一个模式 要遵循一定的规则(jdk对它规定了)
    
  •  y年	------2020		"yyyy"
    
  •  M年中月份----10/03   "MM"
    
  •  d月中的天数----05/21  'dd'
    
  •  h:表示上午/下午的小时数  hh
    
  •  H:一天中的小时数		  HH
    
  •  m:分钟数				  mm
    
  •  s:秒数				  ss
    
  • 模式

  • “yyyy-MM-dd HH:mm:ss”

  • “yyyy年MM月dd日 HH时mm分ss秒”

  • Date---->String

  • 格式化的步骤:

  • 1)存在Date对象

  • 2)创建SimpleDateFormat(String pattern)

  • 3)public final String format(Date date):格式化方法

  • 解析

  • String----->Date

  • 步骤:

  •  1)存在String  "日期文本"   "2020-10-21"
    
  •  2)创建SimpleDateFormat(String pattern)
    
  •  3)public Date parse(String source)  throws ParseException
    
  • 解析:

  • SimpleDateFormat中的参数模式:必须和String 日期文本格式一致,否则出现解析异常(ParseException)

System类

  • System 类包含一些有用的类字段和方法。它不能被实例化。
  • 字段:
  •    public static final InputStream in  :标准的"输入流"
    
  •    public static final PrintStream out :标准的"输出流"
    
  • 键盘录入:
  •  	Scanner(InputStream in) ---->Scanner(System.in)
    
  • 输出语句:
  •  System.out.println("xxx")----->System.out--->PrintStream ps (字节打印流)
    
  •  				ps.println("x") : 字节打印流调用方法名println(String str)
    
  • 成员方法:
  •  public static void gc() 运行垃圾回收器(手动开启)
    
  •  			实际开发中,开发者不需要开启
    
  •  	运行垃圾回收器,它会调用Obejct类finalize(),回收没有更多引用的对象
    
  •  public static void exit(int status):参数状态为0:
    
  •  			表示正常终止jvm
    
  •  public static long currentTimeMillis():获取当前系统时间的毫秒值
    

Arrays类

  • public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
  •  从原数组中的指定位置开始进行复制指定length长度复制到目标数组中的某个位置
    
  •  参数1:指定源数组
    
  •  参数2:源数组中的某个位置
    
  •  参数3:目标数组对象
    
  •  参数4:目标数组对象中的某个位置
    
  •  参数5:指定几个元素复制(长度)
    
//定义一个数组
	//	int[] arr = {67,89,13,54,25} ;
		//需求:将数组拼接字符串
		//jdk提供工具类:Arrays 针对数组的操作工具类
		//public static void sort(int[] a):public static void sort(int[] a)
		//Arrays.sort(arr); //调用:排序了
		//Arrays提供的功能:public static String toString(任意类型的数组)
		//System.out.println(Arrays.toString(arr));//[13, 25, 54, 67, 89]

Random类

  • java.util.Random:随机数生成器
  • 构造方法
  • public Random() :(推荐),产生的随机数是变化的
  • public Random(long seed):每次产生的随机数 是固定的!
  • 成员方法:
  •  public int nextInt():获取的是int范围内的随机数
    
  •  public int nextInt(int n):获取0到n之间的随机数[0,n)
    
  • 获取随机数两种方式:
  •  Math类的random()方法: 返回值double类型
    
  •  Random类空参构造+nextInt(int n):获取随机数
    

BigDecimal类

  • java.math.BigDecimal
  •  描述:对浮点类型的数据进行精确计算的!
    
  • 构造方法:
  • public BigDecimal(String val) :字符串"数字字符串"
  •  		"1.0"
    
  •  		"0.01.."
    
  • 成员方法:
  •  public BigDecimal add(BigDecimal augend) :求和
    
  •  public BigDecimal subtract(BigDecimal subtrahend):减法
    
  •  public BigDecimal multiply(BigDecimal multiplicand):乘法
    

extInt(int n):获取0到n之间的随机数[0,n)
*
*

  • 获取随机数两种方式:
  •  Math类的random()方法: 返回值double类型
    
  •  Random类空参构造+nextInt(int n):获取随机数
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值