1.API
API:java中实际提供的类和接口。
API文当:对java中提供类和接口中的功能进行说说明。
2.object类
object类是Java中所有类的基类,所有类直接继承object
方法1:String toString:将返回对象的字符串表象形式。
在输出一个对象时,默认的调用object类中的toString() 若没有定义则找父类中的同String方法。
*native修饰的方法为本地方法
方法2:equals:表示字符串中每个字母是否相等。
3.Arrays类
Arrays中包含数组操作额静态方法。
方法1:Arrays.equals(a,b)比较两个树组内容是否相等。
方法2:sort:对树组排序底层使用快速排序,当对某个区域排序时,从开始位置到结束位置-1。、
对引用类型排序:compareTo为我们提供了一个自定义的排序规则,方法会在Arrays的sort()方法
底层调用
方法3:binarySearch:二分查找(折半)前提必须有序的。
方法4:copy:树组复制,传入原数组,输入新数组长度。
4.String类
java中,有多个字符组成的一串数据,值一但创建不可改变,一但值改变必须创建新对象。
1.String创建对象的方式:
①.String a="asd"
String b="asd"
先在字符串常量池中找如果没有则创建一个新对象。所以a与b相等的.
②.String a=new String("asd")
String b=new String("asd")
会创建一个String的对象通过对象调用方法创建字符串。所以a与b是不相等的
2.判断功能方法:
① equals:比较字符串内容是否相当。
equalsIgnoreCase忽略字母大小写。
② contains:判断是否包含指定字串。
③ isEmpty:判断是否为空。
④ startswith(): 判断是否以指定字符开头。
endsswtch(): 判断是否以指定字符结尾。
⑤ compareTo():比较两字符串的大小并返回差值
public static void main(String[] args) { String a = "asdf"; String b = "zxcv"; String a1 = new String("asdf"); System.out.println(a.equals(b));//equals比较两字符串内容是否星等 System.out.println(a.equals(a1)); System.out.println(a.contains("c"));//判断此字符串是否包含该字符 System.out.println(a.isEmpty());//判断字符串时否为空 System.out.println(a.startsWith(a));//判断字符串是否以指定字符开头 System.out.println(a.endsWith(a));//判断字符串是否以指定字符结尾 System.out.println(a.compareTo(b)); System.out.println(a.compareTo(a1));//比较两字符穿的大小并返回差值 }
3.获取功能:
① length(): 获取字符串长度,数组length为数组的属性。
② charAt(字符串索引):返回索引对应的字符。
indexof(字符) 反回字符对应的索引,若字符中友两个相同的字符默认返回第一个(从前向后找只找首次出现的)
indexof("d",2):指定位置
lastindexof: 从后向前找只找首次出现的
③ substring:截取从指定位置开始,到结尾返回一个新的字符串。
substring(2,6):截取指定区间的字符串,包含开始不包含结尾。
public static void main(String[] args) { String a="asdasd"; System.out.println(a.length());//返回字符串长度该length为方法 在树组中length为数组的属性 System.out.println(a.charAt(3));//给定索引返回字符 System.out.println(a.indexOf("s"));//给定字符返回索引 只返回首次出现的 int c=a.indexOf("s"); System.out.println(a.indexOf("s",c+1)); System.out.println(a.lastIndexOf("s"));//给定字符返回索引 只返回首次出现的 从后向前找 System.out.println(a.substring(4));//截取莫一段字符串 System.out.println(a.substring(2,4));//截取某一区间字符串包括开始不包括结尾 }
4.转换功能:
① getBytes: 编码 转码
getBytes(b, "UTF-8")
② tocharArray():字符串转化为char数组。
string(char[] )char数组转换为字符串。
③toupper():转大写
tocowercaes():转小写
④concat():字符串链接,只能链接字符串,但”+”可以链接其他类型。
⑤spilt():分割 将字符串拆分成数组,按指定正则表达式分割。
public static void main(String[] args) { String a="你好"; byte[] b=a.getBytes();//将字符串用UTF-8重新变成byte的数组类型 System.out.println(Arrays.toString(b)); String c=new String(b); System.out.println(c); String d=new String(b,0,3); System.out.println(d); String q="asdf"; char[] w=q.toCharArray();//将字符串转换为char类型树组 System.out.println(Arrays.toString(w)); String e=new String(w); System.out.println(e); System.out.println(q.concat("xxxxxxxxx"));//两个字符串链接 String v="ass:de:assa"; String[] n=v.split(":"); System.out.println(Arrays.toString(n));//将字符串用指定字符分割 }
5.正则表达式
①\d:表示数字0到9;
②?: 表示一次或者一次没有。
③ *:多次或一次没有
④+ : 一次或者多次
⑤n:表示恰好n次 (n,)表示至少n次 [n,m]表示至少n次最多m次
⑥^: 表示不是某类,
⑦\w: 表示字母A——z \D:表示非数子 \W:表示非字母 \s:表示空格 \S:表示非空格 | :表示或。
public static void main(String[] args) { Scanner sc=new Scanner(System.in); String s=sc.next(); //boolean b=s.matches("\\d");//判断是否为一个数字 //boolean b=s.matches("\\d?");//?表示出现一次或一次也没有 //boolean b=s.matches("\\d*");//*表示多次或一次也没有 //boolean b=s.matches("\\d+");//+表示一次或多次 //boolean b=s.matches("\\d{5}");//{n}表示恰好n次 //boolean b=s.matches("\\d{5,}");//{n,}表示至少n次 //boolean b=s.matches("\\d{2,5}");//{n,m}表示至少n次最多m次 //System.out.println(b); //boolean b=s.matches("\\w{6,10}@\\w{2,6}\\.(com|com\\.cn)"); boolean b=s.matches("1[3589]\\d{9}"); System.out.println(b); }
6.替换功能
① replace:替换连续或单个字符。
replaceAll:通过规则替换。
replacefirst: 只替换第一个。
② trim(): 去除字符串两端空格。
public static void main(String[] args) { String a="abcdefg"; System.out.println(a.replace("c","D"));//替换单个或者连续的字符串或字符 String b="a1b2c3"; System.out.println(b.replaceAll("\\d",""));//通过规则替换 String c=" adada "; System.out.println(c.trim());//去除两端空格 }
5.StringBuffer
指线程安全可变的字符串,只允许一个线程操作
当向StringBuffer添加内容时是将内容加到底层数组中,因为数组没有被final修饰,当数组装满时会创建新的数组,将新数组的地址给底层数组,StringBuffer对象不会改变。
基本方法:
① append:向末尾添加内容。
② insert: 向指定位置插入字符。
③deletcharAt :删除指定的字符。
delet:删除指定区间的字符,包含开始不包含结尾。
④replace:替换指定区间字符。
⑤ reverse: 逆序该字符串。
⑥ substring:截取 会返回一个String类型的字符串。
StringBuilder: 可变字符串 多线程不安全的。
String StringBuffer StringBuilder三者的区别?
String:底层位final char数组不能改变,改变后会创造信对象。
StringBuffer:线程安全,字符串可变,对底层数组进行操作。
StringBuilder:线程不安全,可变字符串。
public static void main(String[] args) { StringBuffer a=new StringBuffer("abcde");//默认char树组长度为输入字符串长度加16 //a.append("ccc"); // a.append("adadadadadadadad");//若长度超过规定长度则会建立一个信念的char树组但StringBuffer不会改变 System.out.println(a); a.insert(2,"v");//插入 System.out.println(a); a.deleteCharAt(0);//删除指定字符 System.out.println(a); a.delete(1,3);//删除指定区间字符 System.out.println(a); a.replace(0,2,"111");//替换指定区间字符串 System.out.println(a); a.reverse();//逆序 System.out.println(a); String b=a.substring(0,3);//截取指定区间字符串但推返回一个String类型的字符串*** System.out.println(b); }
6.基本数据类型包装类
基本数据类型包装类:Java中使用关键字直接声明。
以为基本类型没有面向对象的方式,所以Java为每一种基本类型定义一个类,用来表示基本数据这个类。
1.Integer:
构造方法 Integer (int a)或 (String a)
① equals: 比较内容。
2.转换方法:
① toBinaryString:转换为二进制
toHexString:转换为十六进制
toOctalstring: 转换为八进制
②intvalue:把对象的基本类型取出。
③ static parseint:将string类型转换为基本类类型。
④tostring: 将int转换为String类型。
⑤valusof:将基本数据类型转换为引用类型。
valusof(string a):将string类型转换为引用类型。
public static void main(String[] args) { Integer i=new Integer(10); Integer i1=new Integer("10"); System.out.println(i.equals(i1)); System.out.println(); int a=i.intValue();//将对象中的基本类型取出 int b=Integer.parseInt("10");//将String类型转换为int类型 String c=i.toString();//将int类型转换为String类型。 Integer a1=Integer.valueOf(10);//将基本类型转化为引用类型 Integer n=10;//自动装箱 底层会默认调用valueof将10装换为引用类型 int m=n;//自动拆箱 底层会默认调用intvalue将Integer类型的10转换为int类型。 System.out.println(m); System.out.println(n); }
3.装箱与封箱
当在[127 ,-128]之间对象地址相同,以外会创建。
自动装箱: 自动的将基本类型转换为引用类型, 会创建新对象。
eg: Ingeter a=10; 底层默认调用valueof
自动拆箱:
eg:Int a=Ingeter 底层默认调用intvalue
7.Math类包含数学方法
①random():返回0-1的随机数。
②floor:向下取整, ceil:向上取整 round :四舍五入
8.Random
随机生成数
① nextint(100):[0,100)之间生成随机数。
nextBytes(a[]): 随机取出length个随机数。
9.systm
① currentTimeMillis():返回当前时间,long类型,从1970,1,1,0:0:0 到程序进行的时间。
② exit: 退出虚拟机
③ arraycopy:复制数组。