常用API摘要

API

= = = = = = = = = = == = = = = = = = = = == = = = = = = == = = = = = = = = = = = =

* Application Programming Interface    应用编程接口

一切能被调用的东西都是API

java.lang

= = = = = = = = = = == = = = = = = == = = = = = = = = = == = = = = = = =

* lang – language   语言包

* 自动导包

 

java.lang.Object

= = = = = = = = = = == = = = = = = == = = = = = = = = = == = = = = = = =

java.lang.String

java.lang.StringBuilder

java.langStringBuffer

正则表达式

java.util.regex.Pattern

java.util.regex.Matcher

= = = = = = = = = = == = = = = = = == = = = = = = = = = == = = = = = = =

 

基本类型包装类

java.math.BigDecimal

java.math.BIgInteger

java.text.DecimalFormat

java.lang.Math

= = = = = = = = = = == = = = = = = == = = = = = = = = = == = = = = = = =

时间类

java.util.Date

java.text.SimpleDateFormat

java.util.Calendar

java.util.GregorianCalendar

= = = = = = = = = = == = = = = = = == = = = = = = = = = == = = = = = = =

 

Object

java.lang.Object

= = = = = = = = = = == = = = = = = == = = = = = = = = = == = = = = = = =

  * 所有类的顶层父类

  * 一个类不继承其他类,默认继承 Object

class A /*extends Object */{

}

方法

---------------------------------------------------------------------------------------------------------------------

  toString() 获得对象的字符串表示

Object 中默认实现:tarena.day12.Point@1a82f2

    如果需要,可以在子类中重写toString ()

  equals(Object obj) 当前对象与参数对象obj 比较是否相等

Object 中默认实现:

比较内存地址是否相等(是否是同一对象)  this == obj

如果需要,可以在子类中重新 equals()

  hashCode 获得 int 类型的哈希值,只在参与哈希运算是有用。

Object 中默认实现:

用内存地址作为哈希值

   如果作为键放入哈希表,就应该重写hashCode()

 

String

java.lang.String

= = = = = = = = = = == = = = = = = == = = = = = = = = = == = = = = = = =

  * 本质:封装 char[] 数组的对象

  * 字符串的字面值 “abc”

   String s1 = “abc”;

   String s2 = “abc”;

   *) 第一次用到一个字面值时,在“字符串常量池”中分配内存

*) 再次用到相同的字面值时,直接使用“常量池”中存在的对象,而不会新建对象

  * 字符串不可变

String s1 = “abc”;

String s2 = “def”;

String s3 = “ghi”;

String s4 = s1 + s2 + s3;

*) 字符串加号连接运算,效率低

 创建对象

-----------------------------------------------------------------------------------------

1. char[] a = {‘h’,’e’,’l’,’l’,’o’};

String s = new String(a);

2. 上面语法的简化

String s = “hello”;

 方法

 ---------------------------------------------------------------------------------------

  charAt(int index)

s = “abc”;

char c = s.charAt(0);

toUpperCase            将所有字符转换成大写

toLowerCase            将所有字符转换成小写

length()                返回字符串长度

compareTo(String anotherString)  按编码顺序比较两个字符串大小

compareToIgnoreCase(String s) 忽略大小写,按编码顺序比较两个字符串大小

当前字符串大,返回正数

当前字符串小,返回负数

大小相同,返回0

startsWith(String s)     测试此字符串是否以指定的前缀开始

s=http://.......;

boolean b=s.startsWith(“http://”);

endsWith(String suffix)   测试此字符串是否以指定的后缀结束

equals(Object obj)       与指定的对象比较

equalsIgnoreCase(String anotherString) 忽略大小写比较字符串内容是否相同

indexOf(String s)    返回指定子字符串在此字符串中第一次出现处的索引

s = “abc abc abc”;

int index = s.indexOf(“xxxx”);

indexOf(String s,int fromIndex)   从指定位置向后寻找获得指定子串的位置,不存在返回-1

lastIndexOf(String s)           从后向前寻找子串的位置

replace(char oldChar,char newChar)  将指定的字符替换为新的字符

s = “abc abc abc”;

    String s2 = s.replace(‘a’,’-‘);

substring(int a)               a 位置直到结束

s = “abcdefg”;

String s2 = s.substring(3,5);

substring(int a,int b)        获得[a,b) 位置范围的子串

trim()                   去除两端空白字符

s = “     a  bc    ”;

s=s.trim();

getBytes()              unicode 转为默认编码格式的字节数组

getBytes(字符编码)      unicode 转为指定编码格式的字节数组

String.valueOf(数据)     将任何数据转为字符串

正则表达式相关方法

--------------------------------------------------------------------------------------

matches(正则表达式)        判断当前字符串,能否与正则表达式匹配

replaceAll(正则表达式,子串)  将找到的匹配子串,替换为新的子串

split(正则表达式)           用匹配的子串,拆分字符串

 

StringBuilder

 

java.lang.StringBuilder

java.lang.StringBuffer

===========================================================

* 可变的字符串序列

* 内部封装一个 char[] 数组

* 提供了一组字符串修改的方法

* 常用来代替字符串的低效连接运算,提供高效率的字符串连接

StringBuilder sb = new StringBuilder();

sb.append(“abc”);

sb.append(“def”);

创建对象

-------------------------------------------------------------------------------------------------------------

1. StringBuilder sb = new StringBuilder();    空串

2. StringBuilder sb =new StringBuilder(“abc”);      abc

 

方法

----------------------------------------------------------------------------------------------------------

append()                在字符串序列末尾,追加字符,  高效的字符串连接

delete(int start,int end)     删除[start,end)

deleteCharAt(int index)    删除单个字符

insert(int index,子串)      index 位置,插入一个子串

replace(int start,int end,String str) [start,end) 替换为指定字符串 str

reverse()       反转

setCharAt(int index,char ch)   index 位置替换为字符  ch

toString()       转为 String 类型

 

正则表达式 regex

===================================================

* 字符串的匹配规则

* 百度“正则表达式大全”

正则表达式        匹配的字符串

   ---------------        ---------------------

    k                 k

   abc               abc

  [abc]              a, b, c

   [abc][123]          a1, a2, a3, b1, b2, b3, c1, c2, c3

   [a-z]              a,y,x,z

   [a-zA-Z_0-9]       a,z,A,Z,0,3,8,9,_

   [^a-zA-Z]          排除英文字母

   [\u4e00-\u9fa5]      中文

   \d                 数字[0-9]

   \D                非数字[^0-9]

   \w                单词字符[a-zA-Z_0-9]

   \W               非单词字符

   \s                空白字符

   \S                非空白字符

   .                 任意字符

   [abc]?            0个或1 a,b,,c

   [abc]?[123]        a1,a3,b2,c1,1,2,3

   [abc]*            0到多个   a,,aaa,abcabcabca,abcccaaaaccccccbbbbaaaccc

   [abc]+            1到多个       a,b,c,abcabcabcabc

   [abc]{3}          3

   [abc]{3,5}        35

   [abc]{3,}         3到多个  

|                

 

PatternMatcher

java.util.regex.Pattern

java.util.regex.Matcher

=====================================================================

* Pattern   封装正则表达式

* Matcher 封装正则表达式和要匹配的字符串,并提供了一组正则表达式匹配运算方法

 

创建对象

------------------------------------------------------------------------------------------------------------------

Pattern p = new Pattern.compile(正则表达式);

Matcher m = p.matcher(要匹配的字符串);

方法

---------------------------------------------------------------------------

find()     向后查找下一段匹配的子串,找到返回true, 找不到返回false

find(int from)     from 位置向后找

group()    获取刚刚找到的子串

start()     获取刚刚找到的子串的起始下标

end()    获取刚刚找到的子串的结束下标

附:自定义迭代器  代码

import java.util.regex.Matcher;

import java.util.regex.Pattern;

 

public class Formula {

private String f;

 

public Formula(String f) {

super();

this.f = f.trim();

}

public class DieDaiQi{

int from;

Matcher m=Pattern.compile("\\d+(\\.\\d+)?|[+\\-*/]").matcher(f);

public boolean hasNext(){

return from<f.length();

}

public String next(){

m.find(from);

String s=m.group();

from=m.end();

return s;

}

}

//…………………………………

}

 

基本类型包装类

  byte       Byte

  short       Short

  int         Integer

  long       Long

  float       Float

  double     Double

  char       Character

  boolean    Boolean

 

Number

java.lang.Number

============================================================

* 数字包装类的抽象父类

* 子类

Byte

Short

Integer

Long

Float

Double

方法

-----------------------------------------------------------------

* 从包装对象取出封装的值

* 可以转型成别的类型获取

byteValue()

shortValue()

intValue()

longValue()

floatValue()

doubleValue()

 

Integer

java.lang.Integer

=====================================================

创建对象

------------------------------------------------------------------------

1. Integer i = new Integer(10);

2. Integer i = Integer.valueOf(10);

-128 127 这些整数封装对象,存在缓存对象,

Integer.valueOf() 方法,可以直接获取缓存的Integer对象,

而不是新建对象;超出范围会新建对象

方法

-------------------------------------------------------------------------

* 从父类 Number 继承的6个取值方法

* 字符串解析成数字

Integer.parseInt("255")           255

        Integer.parseInt("11111111", 2)   255

        Integer.parseInt("377", 8)        255

        Integer.parseInt("ff", 16)        255

* 进制转换

Integer.toBinaryString(255)       "11111111"

        Integer.toOctalString(255)        "377"

        Integer.toHexString(255)          "ff"

Double

 

java.lang.Double

============================================

  创建对象

  ---------------------------------------------------------------------

1. Double a = new Double(3.14);

2. Double a= Double.value(3.14);   new 完全相同

  方法

  -------------------------------------------------------------------------

* 从父类 Number 继承的6 个取值方法

* 队特殊值判断的方法

Infinity       无穷大

NaN         Not a Number

Double.isInfinite(double d)  判断参数 double 值是否是Infinity

Double.isNaN(double d)    判断参数 double 值是否是 NaN

  自动装箱

  ----------------------------------------------------------------------------

* 自动将基本类型值,封装成包装类

Integer a = 10;  //编译为:Integer a = Integer.valueOf(10);

a = a + 1;  //编译为 a=Integer.valueOf(a.intValue()+1);

* 自动拆箱 , 当心 null

 

BigDecimal和BigInteger

java.math.BigDecimal

java.math.BigInteger

==========================================

  * BigDecimal 精确浮点数运算

  * BigInteger 超出长整型范围的整数运算

  创建对象

  ---------------------------------------------------------------------------------

    BigDecimal bd = BigDecimal.valueOf(3.14);

  方法

  ------------------------------------

    add(BigDecimal bd)

    subtract(BigDecimal bd)

    multiply(BigDecimal bd)

    divide(BigDecimal bd)

    divide(BigDecimal bd, 保留位数, 舍入方式)

      *) 当前对象与参数对象求加减乘除,计算结果,会被封装成一个新的

         BigDecimal 对象

    * 取出封装的值

        byteValue()

        shortValue()

        intValue()

        longValue()

        floatValue()

        doubleValue()

        toString()

    * 舍入运算

        setScale(保留位数, 舍入方式) 

            求出舍入结果,

            并封装成新的 BigDecimal 对象

            BigDecimal a =BigDecimal.valueOf(23.545454);

            BigDecimal b = a.setScale(2, BigDecimal.ROUND_HALF_UP);

            double d = b.doubleValue();

DecimalFormat

java.text.DecimalFormat

==================================================

  * 数字格式工具

  * 数字格式化成字符串 

      3454561.7 --> "3,454,561.700"

  * 字符串解析成数字 

      "3,454,561.700" --> 3454561.7 

  创建对象

  ------------------------------------

    DecimalFormat f =new DecimalFormat(格式); 

      格式:参考 DecimalFormat 文档 

        "¤###,###.000"

  方法

  ----------------------------------------

    format(数字)

        数字格式化成字符串

    parse(字符串)

        字符串解析成数字

        *) 返回一个 Number 对象,可能是 6 个子类中的其中一个;

           可以调用取值方法,取出内部封装的值

    applyPattern(格式)          修改格式

Math

java.lang.Math

=========================================

  * 参考 Math 类的文档

  Math.PI

  Math.E

  Math.sqrt()

  Math.pow()

  Math.random()

  

  Math.min()

  Math.max()

  Math.sin()

  Math.cos()

  ...

Date

java.util.Date

==========================================

  * 封装一个毫秒值

  创建对象

  -----------------------------------

    1. Date d = new Date();

        封装系统当前时间毫秒值

    2. Date d = new Date(600000000000L);

        封装指定的毫秒值

  方法

  -----------------------------------

    getTime()

    setTime(long t)      获取、设置内部毫秒值

compareTo(Date d)   当前日期对象与参数对象比较大小;

当前日期大,返回正数;当前日期小,返回负数;大小相同,返回0

附:根据生日算出活了多少天  代码

System.out.println("输入生日(yyyy-MM-dd)");

String s=new Scanner(System.in).nextLine();

SimpleDateFormat fmt=new SimpleDateFormat("yyyy-MM-dd");

Date d=fmt.parse(s);

long l=System.currentTimeMillis();//获取当前系统时间的毫秒值

long day=(l-d.getTime())/1000/60/60/24;

System.out.println("您已经活了"+day+"");

 

SimpleDateFormat

java.text.SimpleDateFormat

================================================

  * 日期格式工具

  * Date 对象格式化成字符串

  * 字符串解析成 Date 对象

  创建对象

  ---------------------------------------

    SimpleDateFormat fmt = new SimpleDateFormat(格式);

      格式:参考 SimpleDateFormat 文档

        "yyyy-MM-dd HH:mm:ss"

        "MM/dd/yyyy"

        "HH:mm"

        "MM-dd HH:mm"

  方法

  --------------------------------

    format(Date对象)        Date对象格式化成字符串

    parse(字符串)           字符串解析成 Date 对象

    applyPattern(格式)       修改格式

Calendar

java.util.Calendar

==============================================

  * 封装一个毫秒值

  * 并提供了一组时间运算方法

  * Calendar 是抽象父类

  创建对象

  --------------------------------------

    1. Calendar c = new GregorianCalendar();

    2. Calendar c = Calendar.getInstance();

    *) 都表示系统当前时间

  方法

  --------------------------------------

    get(字段) 获得日期中指定字段的值,例如:

c.get(Calendar.YEAR)

c.get(Calendar.HOUR_OF_DAY)

set(字段, )             修改指定字段的值

set(int year, int month, int date, int hourOfDay, int minute, int second)  

设置年月日时分秒

add(int field, int amount)    在指定字段上加一个值

c.add(Calendar.YEAR, 10)

compareTo(Calendar anotherCalendar)与另一个时间比较大小

当前Calendar实例大,返回正数

当前Calendar实例小,返回负数

相同大小,返回0

getActualMaximum(int field) 获得指定字段实际最大值,

用来获得月中的最大天数

setFirstDayOfWeek()

getFirstDayOfWeek()        周中的第一天是周几

星期日 - 1

星期一 - 2

星期二 - 3

星期三 - 4

星期四 - 5

星期五 - 6

星期六 - 7

getTime()               获得表示相同时间的 Date 类型实例

setTime(Date date)        将时间设置为指定 Date 实例所表示的时间

getTimeInMillis()

setTimeInMillis(long millis)  毫秒值存取方法

附:打印日历  代码

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.Scanner;

 

public class Test2 {

public static void main(String[] args) throws ParseException {

System.out.println("输入-");

String s=new Scanner(System.in).nextLine();

/*

 * 1.新建SimpleDateFormat 对象赋f

 *  指定日期格式:yyyy-MM”

 * 2.用格式工具f解析字符串s,生成Date对象赋给d  

 *

 * 3.新建calender 对象赋给c

 * 4.c.setTime(d) c设置成与d相同的时间

 * 5.c.get(Calender.DAY_OF_WEEK)获得1号是周几,赋给day

 * 6.获得当月最大天数 max

 * 7.定义计数变量count=0

 * 8.打印字符串\t\t\t\t\t\t

 * 9.循环i0<day-1

 * 10.打印“ \t”

 * 11.count++

 * 12.循环i1<=max

 * 13.打印i+“\t”

 * 14.count++

 * 15.如果count==7

 * 16.打印换行

 * 17.count=0

 *

 */

SimpleDateFormat f=new SimpleDateFormat("yyyy-MM");

Date d=f.parse(s);

Calendar c=Calendar.getInstance();

c.setTime(d);

System.out.println(f.format(c.getTime()));

int day=c.get(Calendar.DAY_OF_WEEK);

int max=c.getActualMaximum(Calendar.DAY_OF_MONTH);

int count=0;

System.out.println("\t\t\t\t\t\t");

for(int i=0;i<day-1;i++){

System.out.print(" \t");

count++;

}

for(int i=1;i<=max;i++){

if(i<10){

System.out.print(" ");

}

System.out.print(i+"\t");

count++;

if(count==7){

System.out.println();

count=0;

}

}

}

 

}

 

GregorianCalendar

java.util.GregorianCalendar

==============================================

  * 罗马历,即公历、阳历

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值