常用API

常用API

String

概述

String字符串类,底层就是一个字符数组,所以字符串很多特性就是数组的特性

  • 字符串一旦创建,就不能修改

  • 为了提高字符串的访问效率,java提供了一种缓存技术,字符串常量池

  • 如果是用= ""就不会在堆内存内创建对象,而是直接在常量池中进行搜索,如果有就直接使用,没有就创建

  • 如果new String("")会在堆内存创建字符串对象,并且常量池中如果有,也会创建

基本使用
         String s1 = "ab";
         String s2 = "ab";
         System.out.println(s1 == s2);
         // 以上程序只会在常量池中创建一个ab对象,并且s1和s2都指向ab
         
         String s3 = new String("abc");
         String s4 = new String("abc");
         System.out.println(s3 == s4);
         System.out.println(s3.equals(s4));
         // 堆内存两个,常量池一个,s3和s4分别指向不同的堆内存
         
         String s5 = new String("zxc");
         // intern : 在字符串常量池中查询,是否存在当前字符串,如果不存在就把字符串放进去
         s5.intern();
         String s6 = "zxc";
         // false , 因为new 存放在堆内存,s6指向的zxc 是常量池
         // s5.intern(); 把s5放进常量池的时候,发现已经有了,所以并不会把s5放进去
         System.out.println(s5 == s6);
         
         String s7 = new String("a") + new String("a") ;
         // a会被放在常量池中一份,堆内存中也有,但是拼接的aa 会在堆内存存储,但是不会在常量池中
         // 因此 s7.intern() 的时候,会把s7放到常量池中一份
         s7.intern();
         // s8="aa" 发现常量池中已经有s7了("aa") 则 直接指向,不再创建
         String s8 = "aa";
         // 因此s7和s8的地址相同
         System.out.println(s7 == s8);
         System.out.println(s7.equals(s8));

构造方法

常用方法

方法说明
char charAt(int index)获取字符串中指定下标的字符
boolean endsWith(String suffix)判断某个字符串是否已指定字符串结尾
boolean startsWith(String prefix)判断某个字符串是否已指定字符串开头
boolean equals(Object obj)判断是否相等
boolean equalsIgnoreCase(String str)不区分大小写比较是否相等
int indexOf(String str)获取指定字符串的起始索引,不存在返回-1(第一次出现的位置)
int indexOf(String str,int fromIndex)获取指定字符串的起始索引,不存在返回-1(从指定位置开始向后找)
int lastIndexOf(String str)获取指定字符串的结束索引,不存在返回-1(最后一次出现的位置)
int lastIndexOf(String str,int formIndex)获取指定字符串的结束索引,不存在返回-1(从指定位置开始向后找)
int length()字符串长度
String replace(String str,String replace)替换指定字符,返回新字符串
replaceAll替换,支持正则表达式 在正则表达式中 . 代表任意字符
String[] split(String regex)以特定字符分割,得到字符串数组,支持正则表达式
String substring(int begin)获取指定下标为起始的,子字符串(包含)
String substring(int beginIndex , int endIndex)获取指定位置起始(包含) 到指定位置结束(不包含)的子字符串
char[] toCharArray()把字符串转换为char数组
String toUpperCase()转大写
String toLowerCase()转小写
String trim()删除两边空格

注意事项

不要做频繁的字符串拼接操作

StringBuffer和StringBuilder

概述

StringBufferStringBuilder是可以拼接的字符串,他们两个底层也是char数组,只不过该数组会进行自动扩容,默认长度为16,扩大容量为2倍+2

  • StringBulider:非线程安全,多线程环境下可能出现问题

  • StringBuffer:线程安全,多线程环境下,不会出现问题

使用

System

Date

构造方法

时间格式化

Random

使用

练习

包装类

概述

包装类:封装了基本类型的一些操作,更加方便使用

为了对象的完整性,更重要的是配合泛型一起使用

byte Byte

short Short

int Integer

long Long

float Float

double Double

boolean Boolean

char Character

八种包装类,都在java.lang包下,使用不需要导包,并且都覆写equalstoString等方法

使用

Integer

基本使用

常用方法

自动装箱和拆箱

1.5新特性:

  • 自动装箱:装箱就是把基本类型转换为引用类型

  • 自动拆箱:拆箱就是把引用类型转换为基本类型

在编译时,是对自动装箱和拆箱进行处理,自动帮我们补齐相关方法调用

深入自动装箱--整型常量池

valueOf方法会先进行常量池检查,没有就在堆内存创建,有就不创建了,直接保存现有的引用,默认的容量大小为 -128~127 共256个,会先把256个对象提前创建好,并进行存储

只要值在这个范围内,都直接保存创建好的对象引用即可,可以通过 -XX:AutoBoxCacheMax=size来进行设置常量池缓存大小,最小也是127

Calendar

Math

使用

         // abs 绝对值
         System.out.println(Math.abs(-1.5));
         // ceil 向上取整
         System.out.println(Math.ceil(5.00000001));
         // floor 向下取整
         System.out.println(Math.floor(5.99999));
         // max 取两数最大值
         System.out.println(Math.max(5.6, 8.2));
         System.out.println(Math.min(5.6, 8.2));
         // sqrt 平方根
         System.out.println(Math.sqrt(9));
         // cbrt 立方根
         System.out.println(Math.cbrt(8));
         // random 随机数, 随机获取一个 大于等于0 且 小于1 的值
         // 本质就是random中的nextDouble
         System.out.println(Math.random());
         // 中间值 : 10~20
         // Math.random()*(最大-最小+1)+最小
         System.out.println(Math.floor(Math.random() * (20 - 10 + 1) + 10));
         // 四舍五入
         System.out.println(Math.round(4.4));
         // 负数 .5 不进位
         System.out.println(Math.round(-4.5));
         // 四舍六入五留双, 大于.5 都入 , 小于.5 都舍,  .5 取偶数
         System.out.println(Math.rint(10.5));
         // 5的3次方
         System.out.println(Math.pow(5, 3));

Number

DecimalFormat

数字格式化

BigDecimal

例如,需要写阶乘的时候就要用到BigDecimal

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值