API
Application Programming Interface应用程序编程接口
第一种解释:java语言中提供的类和接口
第二种解释:官方提供的对类,接口功能的说明文档
基本数据类型包装类
基本数据类型:结构简单 8种 byte short int long float double char boolean
需求:获得int类的最大值 int十进制转为16进制 把int类型转为字符串 字符串数字转为int
java为每种基本类型提供了一个包装类
Integer
int num = 10;//堆中有这个值
Integer num1 = new Integer(10);//将int值包装在Integer类的对象中 Integer类中就可以提供很多的方法来对int类型进行操作
== 引用类型比较时,比较的是内存中的地址是否相等
equals比较两个对象的值是否相等
自动装箱:基本类型转为引用类型
自动拆箱:引用类型转为基本类型
使用装箱(valueOf(127))在创建对象时,值如果在-128~127之间如果多个值相同,指向的是内存中的同一地址.
使用new+构造方法 不管值是否在此区间中 都会创建新的对象
int num1 = num2.intValue();//取出对象中包含的具体的值
Integer num7 = Integer.valueOf(10);//把基本类型转为引用类型
int num6 = Integer.parseInt(“11”);
Object
Object是java中所有的父类
toString()
方法将对象输出时,就会调用toString()
当类中没有定义toString()时,会默认调用父类(Object)中的toString()
native:本地方法 java语言不实现 而是调用操作系统实现
Object类中toString()将对象地址转为16进制的字符串输出,我们可以在类中重写toString()
equals()
Object类中的equals()比较的是对象地址是否相等,等同于==
其他类基本上都重写了equals(),比较的是内容是否相等.
String/StringBuffer/StringBuilder
String字符串是多个字符组成的字符序列,是常量(值不能变),一旦改变,是在内存中重新创建了一个新的对象.
1.String s=“abc”;
第一次创建时会在字符串常量池中检测有没有,没有就在字符串常量中创建一个对象,第二次创建时,如果常量池中已经存在,直接指向常量池中的对象即可.
2.使用new+构造方法()
在堆中创建新的对象,只要是new出来的对象,在内存中一定是一个独一无二的对象空间.
字符串底层是char数组存储(JDK9以后是byte数组存储),单个字符串存储
StringBuffer内容可变 多线程 线程安全 效率低
StringBuilder内容可变 单线程 效率偏高
String内容不可变 没有牵扯到大量的字符串拼接可以使用
String类中常用方法:
equalsIgnoreCase() 不区分大小写比较内容是否相等.
contains() 是否包含()内容
startsWith() 是否以()内容开始
endsWith() 是否以()内容结束
compareTo() 比较值大小,用于排序比较
length() 获取字符串长度
charAt() 获取第()个字符
indexOf() 从前往后 ()字符首次出现的位置()不存在返回-1
lastIndexOf 从后往前找字符首次出现的位置(不存在返回-1)
subString() 从选定位置开始截取字符 返回一个新的字符串 原来的字符串不变
replace() 替换所有选定字符
replaceFirst() 只替换第一次出现的
replaceAll() 替换 正则表达式(模式匹配)效率更高 例如用于筛选手机号码是否合法
trim() 去掉首尾的空格
toLowerCase() 全部小写
toUpperCase() 全部大写
contat 连接字符效率高于""+"" 向字符串的尾部拼接一个字符串 并返回一个新的字符串
split() 将字符串用指定的正则表达式分割成字符串数组
String s = "abc";
byte[] b = s.getBytes();//编码 字符 转为 字节
System.out.println(Arrays.toString(b));
String s1 = new String(b);//解码 字节 转为 字符
System.out.println(s1);
StringBuffer
线程安全的可变字符序列
添加功能
public StringBuffer append(String str)
public StringBuffer insert(int offset,String str)
删除功能
public StringBuffer deleteCharAt(int index)
public StringBuffer delete(int start,int end)
替换功能
public StringBuffer replace(int start,int end,String str)
反转功能
public StringBuffer reverse()
Arrays
Arrays.sort();对基本或者引用类型数组排序
Arrays.binarySearch();二分查找,前提是有序的
Arrays.equals();比较数组中的内容是否一致
Arrays.copyOf();数组复制,当数组长度不够用,将原来的内容复制到一个新的数组中,指定新数组长度