常用API(1)

API

  • 什么是API?
    API(Application Programmering Interface),应用程序编程接口。
    通俗理解就是:好多类,好多方法。我们每天编写的类,类中包含很多方法,JDK中也包含很多写好的类和方法,这些类和方法都是API;
  • 引用类型的一般使用步骤:
       1)导包
         import 包路径.类名称
         如果需要使用的目标类和当前类位于同一包下,则可以省略导包语句不写;
         只要java.lang包下的内容不需要导包,其他的包都需要import语句;
       2)创建
         类名称 对象名 = new 类名称();
       3)使用
         对象名.成员方法名();

匿名对象

  • 创建对象的标准格式:
       类名称 对象名 = new 类名称();
  • 匿名对象:直接new 类名称();
  • 注意事项:匿名对象只能使用唯一的一次,下次在用不得不在创建一个对象;
  • 如果某些对象只需要使用唯一的一次,就可以使用匿名对象;

Random类

//1.导包
import java.util.Random;
//2.创建
Random  r = new Random();
//3.使用
int num = r.nextInt(); //获取一个随机的int数字,范围是int所有范围,有正负两种
int num = r.nextInt(3); //获取一个随机的int数字,左闭右开区间,此处表示[0,3);

ArrayList类

  • ArrayList是大小可变的数组的实现;
  • 对于ArrayList来说,有一个代表泛型。
  • 泛型:也就是装在集合中的所有元素,全都是统一的E类型;
  • 注意:泛型只能是引用类型,不能是基本类型;
  • 注意事项:对于ArrayList集合来说,直接打印得到的不是对象的地址值,而是内容(toString方法的影响);如果内容为空,得到的是空的中括号[ ];
//从JDK1.7+开始,右侧的尖括号可以不写内容,但<>本省还是要写的;
ArrayList<String> list = new ArrayList<>();
System.out.println(list);    //输出结果:[],由于打印时会默认调用类的toString()方法,所以没有输出对象的地址值,但list对象保存的确实是该集合在堆中的地址值;

ArrayList常用方法

public boolean add(E e);  //向集合中添加元素,参数的类型和泛型一致;
备注:对于ArrayList集合来说,add操作一定成功,返回值可用可不用;
          但对于其他集合来说,add操作就不一定成功;
public E get(int index);  //从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素;
public E remove(int index);  //从集合当中删除元素,参数是索引编号,返回值就是对应位置的元素;
public int size();  //获取集合的尺寸长度,返回值是集合中包含的元素个数;

ArrayList集合存储基本数据类型

  • 如果希望向集合ArrayList中存储基本数据类型,必须使用基本数据类型对应的“包装类”;
基本类型            包装类(引用类型,包装类都位于java.lang包下,所以无需导包)
byte                    Byte
short                   Short
int                       Integer
long                    Long
float                    Float
double                Double
char                    Character
boolean              Boolean

从JDK1.5+开始,支持自动拆箱、自动装箱;
自动装箱:基本类型 -->包装类型    Integer i = 2;
自动拆箱:   包装类型 -->基本类型    int t = i;

ArrayList<Integer> list = new ArrayList<>();
list.add(2);//装箱,将整型2转换成integer类,Integer i = Integer.valueOf(2);
list.add(3);
int i = list.get(0); //拆箱,将get返回的对象值2转换成整型值2,int t = i.intValue();

String类

  • 程序中所有的双引号字符串,都是String类的对象;(就算没有new,也照样是)
  • 字符串的特点:
       1)字符串是常量,字符串在创建之后的值不能改变;【重要】
       2)正是因为字符串不可改变,所以字符串是可以共享使用的;
       3)字符串效果上相当于是char[ ]字符数组,但是底层原理是byte[ ]字节数组;
//下面这种写法,字符串的内容仍然没有改变
//下面有两个字符串:"aaa","bbb"
//str中保存的是地址值
//本来地址值是"aaa"的0x666
//后来地址值变为了"bbb"的0x999
String str = "aaa"; //构造了一个字符串对象,s为字符串对象“aaa”的地址值
str = "bbb";//构造了一个字符串对象,所以s的地址值改变为“bbb”字符串对象的地址值,即s指向了其他对象;
          //"aaa”依然存在堆内存中

字符串的构造方法

创建字符串的常见3+1种方式:(3种构造1种直接创建)

三种构造方法:
public String();//创建一个空白字符串,不含有任何内容;
public String(char[] arr);//根据字符数组的内容,来创建相应字符串
public String(byte[] arr);//根据字节数组的内容,来创建相应字符串

一种直接创建:
String str = “矮冬瓜”;

//根据字节数组创建字符串
byte[] arr = {97,98,99};
String s = new String(arr);
System.out.println(s);//输出结果:abc

字符串常量池

  • 字符串常量池:程序中直接写上的双引号字符串,就在字符串常量池中;
String str1 = "abc";
String str2 = "abc";

char[] charArray = {'a','b','c'};
String str3= new String(charArray);
//比较地址值
System.out.println(str1 == str2);   //true
System.out.println(str1 == str3);  //false
System.out.println(str1 == str3);  //false

字符串常量池内存图解

  • str1和str2创建过程:JVM先把“abc”化作字节数组存放在堆中,然后在将字节数组的地址值保存在常量池中的字符串对象里,再把池当中的字符串地址值传给str1和str2;
  • str3创建过程:先在堆中开辟字符数组空间保存字符‘a’,‘b’,‘c’,将字符数组地址值传给charArray,JVM在自动将字符数组转化为字节数组,在将字节数组地址值传给new的string对象,new的对象不再常量池中,最后在将new的string对象的地址值传给str3;

字符串的比较相关方法

  • ** ==**是进行对象的地址值比较,如果确实需要字符串的内容比较,可以使用如下两个方法:
  1. public boolean equals(Object obj):参数可以是任何对象,只有对象为字符串且内容相同,返回true,否则返回false;
    注意:
       1)任何对象都能用object进行接收;
       2)equals方法具有对称性,a.equals(b)和b.equals(a)效果相同;
       3)如果比较双方一个常量一个变量,推荐把常量字符串写在前面;即“abc”.equals(str);
//推荐常量写在前面的原因
String str = null;
System.out.println("abc".equals(str));  //输出false
System.out.println(str.equals("abc"));  //报错,空指针异常

  1. public boolean equalsIgnoreCase(String str); 忽略大小写,进行内容比较;

字符串获取的相关方法

  1. public int length();获取字符串中含有的字符个数;
  2. public String concat(String str);将当前字符串和参数字符串拼接成为返回值新的字符串;
  3. public char charAt(int index);获取指定位置的单个字符
  4. public int indexof(String str):查找参数字符串在本字符串中首次出现的索引位置,如果没有返回-1值;、

字符串截取方法

  1. public String substring(int index); //截取从参数位置一直到字符串末尾,返回新字符串;
  2. public String substring(int begin,int end); //截取从begin开始,一直到end结束,中间的字符串;[begin,end),包含左边,不包含右边;
String str1 = "helloworld";  
String str2 = str1.substring(5);//world,新字符串
System.out.println(str1); //不变,还是helloworld ,记住字符串是常量,不会改变,原封不动;

字符串的转换相关方法

  1. public char[] toCharArray[ ];将当前字符串拆分成字符数组作为返回值
  2. public byte[] getBytes[ ];获取当前字符串底层的字节数组
  3. public String replace(Charsequence oldString,Charsequence newString,);将所出现的老字符串替换成新的字符串,返回替换之后的结果新字符串,其中Charsequence就是说可以接收字符串类型。
//replace()方法的作用
String  str1 = "妈的,你会不会玩啊!";
String str2 = str1.replace("妈的","**"); //str1指向的字符串值还是不会改变
System.out.println(str2);  //结果:**,你会不会玩啊!

字符串的分割方法

  1. public String[ ] split(String regex):按照参数的规则,将字符串切分成若干部分;
注意事项:
split方法的参数其实是一个“正则表达式”;如果按照英文句点“.”进行切分,必须写“ \\.”(先转义\在转义.,由于\和.在正则表达式中有特殊用途)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值