java-常用API

来源:互联网 发布:vue.js 2.0 radio 编辑:程序博客网 时间:2024/05/19 23:54

一.object类
Object类是类层次结构的根。每个类都有 Object作为超类。所有对象,包括数组,实现这个类的方法。
方法:
equals:比较地址的
Object中的equals实现用==
1.判断是否是当前的类型(的子类)
2.强转
3.根据自己的意愿比较
==:比较值(栈中所存放的)
toString: 看看当前对象的属性(自动调用),不重写的时候:完整的类名@哈希码值
hashCode:返回对象的哈希码值,每个对象的哈希码值是不相同的
getClass:获取当前运行时候的类
finalize:垃圾回收机制,自动调用
线程:wait/notify(唤醒一个在这个对象的监视器上等待的单个线程。)

public class TestObject {    int age;    String name;/*  @Override    public boolean equals(Object obj) {        //地址相同        if (this == obj)            return true;        //null        if (obj == null)            return false;        //类        if (getClass() != obj.getClass())            return false;        TestObject other = (TestObject) obj;        if (a != other.a)            return false;        return true;    }*/    public static void main(String[] args) {        /**         * 存储任意的10个对象         */        Object  []   tens = new Object[10];        int [] a = new int[3];        tens [0] = new Date();//多态        tens [1] = new Scanner(System.in);        tens[2] = a;        print(tens[0]);        tens[3] = new Date();        //获取当前运行的TextObject的类对象        Class c = new TestObject().getClass();        System.out.println(c);        int num1 = new TestObject().hashCode();        int num2 = new TestObject().hashCode();        System.out.println(num1+"   "+num2);        int num3 = "你".hashCode();        int num4 = "你".hashCode();        System.out.println(num3+"   "+num4);    }    //A?B:C    /**     * 用户根据自己的需求进行比较2个对象,重写了hashcode     */    @Override    public int hashCode() {        final int prime = 31;        int result = 1;        result = prime * result + age;        result = prime * result + ((name == null) ? 0 : name.hashCode());        return result;    }    @Override    public boolean equals(Object obj) {        if (this == obj)            return true;        if (obj == null)            return false;        if (getClass() != obj.getClass())            return false;        TestObject other = (TestObject) obj;        if (age != other.age)            return false;        if (name == null) {            if (other.name != null)                return false;        } else if (!name.equals(other.name))            return false;        return true;    }    /**     * 方法:传入一个对象,获取对象的地址     */    public static void print(Object obj){        System.out.println(obj);    }    /**     * 方法:传入一个数字,1:返回时间   2  返回Scanner     */    public static Object a(int num ){        if(num==1){            return new Date();        }else{            return new Scanner(System.in);        }    }}

二.String
1.String(不可变字符序列)
1.1三种构造方法

        String str1 = new String();        String str2 = new String("你好!4");        char [] a = {'你','好','!'};        //通过字符数组        String str3 = new String(a,0,3);//String的构造方法        System.out.println(str1);        System.out.println(str2);        System.out.println(str3);        结果:(此处为空)你好!4你好!

设置字符为GBK的格式
//获取字符串的字节数组(GBK格式)
byte [] b = “你好!”.getBytes(“GBK”);
String str4 = new String(b,0,b.length);
System.out.println(str4);
//通过构造函数创建GBK格式的字符串
String str5 = new String(b,”GBK”);
System.out.println(str5);
结果:
你好!
你好!

1.2charAt(int index):获取指定下标字符串的字符
length():获取字符串的长度

String str5 = new String(b,"GBK");        System.out.println(str5);        String str6 = "今天的天气挺好的,温度适宜";        char c = str6.charAt(3);//0----        int len = str6.length();        System.out.println(c+"   "+len);结果:天   13//获取字符串的每一个字符for (int i = 0; i < str6.length(); i++) {    System.out.println(str6.charAt(i));    }

1.3compareTo();比较返回int类型 正数,负数,0

        int num = str2.compareTo(str5);        System.out.println(num);

1.4concat():拼接字符串

        str2.concat("拼接字符串");  //你好!4拼接字符串        System.out.println(str2);

1.5contains():是否包含

        //是否包含        boolean flag = str2.contains("你好");        System.out.println(flag);

1.6endswith():以什么结尾,过滤

        String strFile = "a.txt";        //以什么结尾:过滤        if(strFile.endsWith(".java")){            System.out.println("这是一个java文件");        }else{            System.out.println("这不是java文件");        }

1.7indexof():从左往右字符串的位置,第一次出现

1.public int indexOf(String str)        //str6="今天的天气挺好的,温度适宜"        int index  = str6.indexOf('你');//自动转换        System.out.println(index); //-1 (没有这个)        index = str6.indexOf("挺好的");//按着第一个字符出现的索引“挺”为5        index = str6.indexOf('天');//1,第一个字符(天)2.public int indexOf(int ch,int fromIndex)index = str6.indexOf('天',2);//从第二个天开始,返回值为3

1.8lastindexof():从右往左

index = str6.lastIndexOf('天');//只是寻找方式变了,结果也为3

1.9isEmpty

        flag  = str2.isEmpty();        System.out.println(flag);

2.0 trim:之去除字符串首和尾的所有空格,字符串中间的去除不了

        str8 = "    你好          ";        str8 = str8.trim()+1;        System.out.println(str8);

2.1 split:以“ ”分割

        String str8 =   "1332456789@qq.com";        String [] arrStr = str8.split("@");        for (int i = 0; i < arrStr.length; i++) {            System.out.println("arrStr["+i+"]="+arrStr[i]);        }        str8 = "abccbacd";        arrStr = str8.split("a");        for (int i = 0; i < arrStr.length; i++) {            System.out.println("arrStr["+i+"]="+arrStr[i]);        }

2.2replace:用新的替换旧的

public String replace(char oldChar, char newChar)        str6 = str6.replace('天', '地');        System.out.println(str6);//今地的地气挺好的,温度适宜

2.3replaceAll

public String replaceAll(String regex,String replacement)    String str7 = "13302341587";//133****1587    str7 = str7.replaceAll("\\d{3}", "哈哈");//每三个数字替换,\转移字符    System.out.println(str7);//哈哈哈哈哈哈87

2.4matches

    str1 = "1";    flag = str1.matches("[a-zA-Z]");    System.out.println(flag);//false    //简单匹配一个字符串判断他是否是手机号    str1.matches("[0-9]{11}");    //匹配一个QQ邮箱   前面数字 [5-10]   @  qq.com    str1.matches("[0-9]{5,10}@qq.com");

2.5正则表达式:Class Pattern类中

正则表达式描述:正则表达式是一串特定的字符,组成一个“规则字符串“,这个规则字符串是描述文本规则的工具,正则表达式就是记录文本规则的代码。例如:正则式“[a-z]”表示a到z的任意一俄国字符,正则表达式“[a-z]+”表示有一个或多个字符串组成的字符串。正则式既然是一种字符串组合的规则,那么我们就可以按着规则组合自己想要的正则式。[]:代表可以出现一个字符[abc]这个字符可以是a或b或c[^abc]不能是a或b或c的其他字符[a-z]这个字符只能是小写字母[a-zA-Z0-9]可以是字母或数字[a-z&&[^bc]]是小写字母但不能是b或c. :任意一个字符\d:任一一个数字,等同[0-9]\D:任一一个非数字字符,等同[^0-9]\s:任一一个空白字符\S:非空白字符\w:单词字符 [0-9a-zA-Z_]\W:非单词字符[^\w]量词:?:表示0-1次[\w]?:表示0或1个单词字符[\w][\w]?:表示1或2个单词字符*:表示0-无穷次[\d]*:任意次数字[\d][\d]*:至少一次+:表示1-无穷次[\d]+:至少一个数字{n}:n次.n只能是数字[\d]{11}:11次数字{n,}:n次以上{n,m}:n到m次[\d]{3,5}:3-5位的数字():将内容看作一个整体(abcd):要出现一个abcd(abcd)+:至少一次abcd()中可以使用或关系。在几个整体中选其一(138|135|130):是138或135或130下面列出常见的正则式:[abc] a,b,c中任意一个字符[^abc] 除了a,b,c任意一个字符[a-z] a~z的任意一个字符[a-zA-Z0-9] a~z,A~Z,0~9中任意一个字符[a-z&&[^bc]] a~z中除了b,c以外任意一个字符,其中&&表示“与”的关系。. 任意一个字符\d 任意一个数字字符,相当于[0-9]\D 任意一个非数字字符,相当于[^0-9]\s 空白字符,相当于[\t\n\x0B\f\r]\S 非空白字符,[^\s]\w 任意一个单词字符,[a-zA-Z_0-9]\W 任意一个非单词字符,[^\w]X? 表示0个或1个XX* 表示0个或任意多个XX+ 表示0到任意多个X(大于等于1个X)X[n] 表示n个XX[n,] 表示n到任意多个X(大于等于n个X)X[n,m] 表示n个到m个X(大于等于n个且小于m个X)

2.6valueof(返回为string的形式)
三system/Stringbuilder/StringBuffer
1. StringBuilder:可变字符序列:final 线程不安全 速度快,3个构造方法
StringBuffer: 可变字符序列: final 线程安全 速度慢
这两个的区别在于StringBuffer的方法多一个synchronized
1.1)Stringbuilder(构造方法)

StringBuilder() 构造一个没有字符的字符串生成器,并构造了16个字符的初始容量。  StringBuilder(CharSequence seq) 构建一个包含指定的 CharSequence相同字符的字符串生成器。  StringBuilder(int capacity) 构造一个字符串生成器没有字符和一个初始容量的 capacity参数指定。  StringBuilder(String str) 构造一个初始化为指定字符串的内容的字符串生成器。 

1.2)append/toString/insert/delete/reverse

        StringBuilder builder = new StringBuilder();//字符数组的大小:16        builder = new StringBuilder(3);//字符数组的大小是:3        builder = new StringBuilder("哈哈哈哈");//字符数字的长度:字符串的大小+16        builder.append(true).append(12).append(new Date()).append("哈哈");        System.out.println(builder.toString());        builder.insert(4, "INSERT");        System.out.println(builder);        builder.delete(4, 10);//包头不包尾        System.out.println(builder);        builder.reverse();//反转数组        System.out.println(builder);

2.system类
system流:(err/out/in)
system.exit:终止当前正在运行的java虚拟机
system.gc:运行垃圾收集器。(手动垃圾回收机制)
runFinalization :运行任何对象待定型的定型方法。
getProperties() :确定当前系统属性
getProperty(String key) :获取指定的键指示的系统属性。
currentTimeMillis()//返回当现在为止的毫秒值
public static void arraycopy(Object src, int srcPos,Object dest, int destPos,int length)//数组复制

src -源阵列。 srcPos -源数组中的起始位置。 dest -目标数组。 destPos在目标数据的起始位置。 length -数组元素的数目被复制。

四.Math
ceil(大于/等于某数的最小整数)
floor(返回小于/等于某数的最大整数)
Max/min
random(大于或等于0.0到小于1.0之间)
sqrt()//开平方,获取正数

public class TestMath {    public static void main(String[] args) {        //大于等于-12.9的最小整数-12.0        double num = Math.ceil(-12.9);        System.out.println(num);        //小于等于-12.9的最大整数-13.0        num = Math.floor(-12.9);        System.out.println(num);        int num1 = Math.max(-10,10);        num1 = Math.min(-10,10);        System.out.println(num1);        //开10的平方,获取那个正数        num = Math.sqrt(10);        System.out.println(num);        //0.0----1.0的随机数        Math.random();    }}

五.Number类
抽象类是平台类 Number表示数值转换为原始类型 byte, double, float, int, long,和 short父类。从一个特定的 Number实现数值给定的原始类型转换的具体语义是由实现定义的 Number问题。
抽象类
大数据类:BigInter/BigDecimal

import java.math.BigInteger;public class TestBig {    public static void main(String[] args) {        BigInteger bi = new BigInteger("-1233");        bi = bi.abs();        System.out.println(bi);        double num = bi.doubleValue();        System.out.println(num+1);    }}

六.Runtime:当前运行的对象
七.Date:

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class Date_Test {    public static void main(String[] args) throws ParseException {        // TODO Auto-generated method stub        //获取当前时间        Date  date=new Date();        System.out.println(date.toLocaleString());//本地时间        System.out.println(date.toGMTString());//格林时间        System.out.println(date.toString());        //获取年月日:时分秒        System.out.println("年:"+(date.getYear()+1900));//此处需要加上1900        System.out.println("月:"+(date.getMonth()+1));//(getMonth:从0-11需要加一)        System.out.println("星期:"+(date.getDay()));//getDay(为星期几)        System.out.println("日:"+(date.getDate()));//获取日        System.out.println("时"+(date.getHours()));//时        System.out.println("分"+(date.getMinutes()));//分        System.out.println("秒"+(date.getSeconds()));//秒        System.out.println(date.getTime());//获取从1970年1月1日开始的毫秒值        System.out.println(date.getTimezoneOffset());//时区偏移,在几分钟内,用于当前时区。c        //格式化        SimpleDateFormat  format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        //data---字符串        String val=format.format(date);        System.out.println(val);        //字符串转换成data        String str1="2017-1-10 09:3:5";        System.out.println(format.parse(str1));    }}

八.Format类
1.SimpleDateFormat:格式化
//parse表示(由string类型的转换成想要格式化的类型),
//format表示(由想要格式化的类型转换成string类型),

public class Date_Test {    public static void main(String[] args) throws ParseException {        // TODO Auto-generated method stub        //获取当前时间        Date  date=new Date();        //格式化        SimpleDateFormat  format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        //data---字符串        String val=format.format(date);        System.out.println(val);        //字符串转换成data        String str1="2017-1-10 09:3:5";        System.out.println(format.parse(str1));    }}

2.NumberFormat类

import java.text.DecimalFormat;import java.text.NumberFormat;import java.text.ParseException;public class NumberFormat_Test {    public static void main(String[] args) throws ParseException {        // TODO Auto-generated method stub        NumberFormat numberFormat=new DecimalFormat("0.00%");//DecimaFormat/choiceFormat为NumberFormat的子类        double num=0.1124253822;//      numberFormat.parse(字符串);//parse(表示由字符串到格式化的类型)        numberFormat.format(num);        System.out.println(numberFormat.format(num));//format(表示)        String str1="19.8888934567888%";        double num1=(double) numberFormat.parse(str1);        System.out.println(num1);        System.out.println(numberFormat.parse(str1));    }    //parse表示(由string类型的转换成想要格式化的类型)    //format表示(由想要格式化的类型转换成string类型)}

九.Calendar类
Calendar.getInstance()创建对象
calendar.set()的容错性
ca1.get(Calendar.DATE)采用的是Calendar类的默认字段

package day12;import java.util.Calendar;public class Calenda_Test {    public static void main(String[] args) {        // TODO Auto-generated method stub        Calendar ca1=Calendar.getInstance();//使用getInstance创建对象/*      //ca1.get(Calendar.DATE):返回的是一个int类型        System.out.println(ca1.get(Calendar.DATE));//返回的是日这个类型        System.out.println(ca1.get(Calendar.DAY_OF_WEEK)                +" "+ca1.get(Calendar.DAY_OF_MONTH));//一周的第几天,一个月中的第几天        System.out.println(ca1.get(Calendar.DAY_OF_WEEK_IN_MONTH));//一个月中的第几周        System.out.println(ca1.get(Calendar.HOUR));//12小时制        System.out.println(ca1.get(Calendar.HOUR_OF_DAY));//24小时制        System.out.println(ca1.get(Calendar.MONTH)+1);//月*/        ca1.set(Calendar.YEAR, 2069);//set给年赋值        System.out.println(ca1.get(Calendar.YEAR));        ca1.add(Calendar.DATE, 50);//add有容错性,给日期向后相加某个天数        System.out.println((ca1.get(Calendar.MONTH)+1)+" "+ca1.get(Calendar.DATE));    }}
原创粉丝点击