Java 常用API
JFC(Java类库)
- 是系统提供的已实现的标准类的集合,是Java编程的API(Application Program Interface)
- 可帮助开发者方便、快捷地进行软件开发
- Java按其不同的功能分成不同的包
- 常用包:
- java.lang包:java核心类库,包含java运行程序必不可少的系统类,由JVM自动导入
- java.lang.reflect包:提供类和接口获取类和对象的反射信息
- java.io包:java标准输入/输出类库
- java.util包:java实用工具类库,提供一些实用的类和数据结构。
- java.net包:实现网络功能的类库
- java.awt包:构建图形用户界面(GUI)的类库及用户界面交互控制和事件的响应
- java.awt.even包:图形用户界面的事件处理包
- java.sql包:提供访问并处理存储在数据库中数据的类和接口
- javax.swing包:构建图形用户界面类库,相对java.awt,javax.swing包提供的是轻量级图形界面组件
常用API
- API:Application Programming Interface,应用程序编程接口
- Java的API:JDK中提供的各种功能的Java类,这些类将底层实现封装起来
- JDKI帮助文档:可查看JDK中的各种类及其方法
Scanner类
- 功能:键盘录入的字符串
- 方法
- next():遇到空格不再录入数据,以tab键或空格标记结束
- nextLine():可将数据完整接收,以回车键标记结束
Scanner sc = new Scanner(System.in);
//开启键盘录入
String s = sc.next();
String s = sc.nextLine();
String类
- 在java.lang包下,故使用时无需导包
- 代表字符串
- Java的字符串均被实现为此类的实例
- Java程序中所有的被双引号包起来的字符串,都是String类的对象
- 字符串不可变,其创建后不可被更改
- 常用方法
方法 |
说明 |
public String() |
创建一个空白字符串,其中不含任何内容 |
public String(char[] chs) |
据字符数组内容创建字符串 |
public String(String original) |
据传入的字符串,传入字符串对象 |
String s = “abc” |
以直接赋值方式创建字符串对象,赋值为abc |
public boolean equals(Object object) |
比较字符串内容,严格区分大小写 |
public boolean equalsIgnoreCase(String anotherString) |
比较字符串内容,忽略大小写 |
public int length() |
返回字符串长度 |
public char charAt(int index) |
返回指定索引处的char值 |
public char[] toCharArray() |
将字符串拆分为字符数组后返回 |
public String subString(int beginIndex,int endIndex) |
根据开始和结束索引进行截取,得到新的字符串(包含头,不包含尾) |
public String subString(int beginIndex) |
从传入的索引处截取,截取到末尾,得到新的字符串 |
public String replace(CharSequence target,CharSequence replacement) |
使用新值,将字符串中旧的替换,得到新的字符串 |
public String[] split(String regex) |
据传入规则切割字符串,得到字符串数组 |
- 字符串对象创建的两种方式及其区别
- 通过构造方法创建:
- 通过new关键字创建
- 每次new都申请一个内存空间,即使内容相同地址也不同
- 直接赋值创建:
- 以
" "
方式给出字符串,只要字符序列相同,无论程序中出现多少次,JVM都只建立一个String对象,并在字符串池中维护
- 字符串的比较:
public boolean equals(String s)
,比较两个字符串内容是否相同、区分大小写
- 比较基本数据类型:比较其具体的值
- 比较引用数据类型:比较其地址
String s1 = "abc";
String s2 = "abc";
System.out.println(s1.equals(s2);
- 切割字符串:字符串变量名.split(“分割依据”);
//例
String[] sArr = str.split(",") //据字符串中逗号分割字符串
StringBuilder类
- 是可变字符串类,即其对象内容可改变
- 与String的区别:String不可改变,StringBuilder可改变
- 常用方法
方法 |
说明 |
public StringBuilder() |
创建空白可变字符串对象,不含任何内容 |
public StringBuilder(String str) |
据字符串内容创建可变字符串对象 |
public StringBuilder append(任意类型) |
添加数据并返回对象本身 |
public StringBuilder reverse() |
返回相反的字符序列 |
- StringBuilder与String相互转换:
- StringBuilder转为String
-
public String toString()
:通过toString把StringBuilder转为String
- String转为StringBuilder:
-
public StringBuilder(String s)
:通过构造方法实现String转为StringBuilder
Math类
- 是数学帮助类,包含一组数值运算方法,使用简单
- 特点
- 与String类一样,用final修饰,不能被继承
- 构造方法私有,故不能通过new在其他类中构建Math对象
- 所有方法静态,可直接使用类名访问
- 两个常用常量:PI和E
- PI:圆周率,约等于3.14926,表示为Math.PI
- E:表示自然对数底数(基数)e,约等于2.718,表示为Math.E
- 常用方法
方法名 |
说明 |
static double abs(double a) |
返回double值的绝对值 |
static double ceil(double a) |
返回最小的(最接近负无穷大)的double值,该值大于或等于参数,且等于某个整数 |
static double floor(double a) |
返回最大的(最接近正无穷大)的double值,该值小于或等于参数,且等于某个整数 |
static double max(double a,double b) |
返回两个double值中较大的一个 |
static double min(double a,double b) |
返回两个double值中较小的一个 |
static double pow(double a,double b) |
返回第一个参数的第二个参数次幂值 |
static double random() |
返回带正号的double值,大于等于0.0,小于1.0 |
static int round(float a) |
返回最接近参数的int,四舍五入取整 |
static double sqrt(double a) |
返回正确舍入的double值的正平方根 |
System类
- 常用方法
- public static void exit(int status):终止当前运行的Java虚拟机
- public static long currentTimeMillis():返回当前时间,以毫秒为单位
Object类
toString方法
- 以良好的格式,更方便的展示对象中的属性值
//例
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
equals方法
- 作用:用于对象间的比较,返回true或false结果
-
时间日期类
- 主要是java.util包中的Date类、Calendar类及java.text包中的DateFormate和SimpleDateFormat类
Date类
- 在java.util包中
- 是唯一一个代表时间的类,允许将日期解析为年、月、日、小时、分钟和秒值,也允许格式化和解析日期字符串
- 构造方法:
- 无参:
java.util.Date();
,创建一个代表当前时间的日期对象
- 创建指定的毫秒数的Date方法:java.util.Date(long Date)
- java.sql.Date(long Date);
- 常用方法
-
Date()
:
-
Date(long date)
:据
-
toString()
:直接返回当前时间
-
getTime()
:返回自1970年至今的毫秒数
- 与System.currentTimeMillis()方法类似
-
setTime()
:设置时间,给的是毫秒值
- 许多方法过时,不建议使用
- 其提供的日期不符合特点地区和语言环境,不适于国际化需要
Calendar日历类
- 是abstract的,无构造方法,不能通过new实例化
- 只能通过
getInstance()
方法或通过Calendar子类GregorianCalendar获取实例
- 为特定瞬间与YEAR、MONTH、DAY_OFMONTH、HOUR等日历字段间的转换提供一些方法
- 提供获得特定地区和语言环境的日期,并为操作日历字段提供了方法
- 现在推荐使用Calendar处理日期时间
- 静态方法:public static Calendar getInstance()
- 常用方法:
方法名 |
说明 |
public int get(int field) |
返回给定日历字段的值 |
public void set(int field,int value) |
将给定的日历字段设定为给定值 |
public abstract void add(int field,int amount) |
据日历规则,为给定日历字段添加或减去指定时间量 |
public Date getTime() |
返回一个表示此Calendar时间值(从历元到毫秒偏移量)的Date对象 |
- 常用字段
字段值 |
含义 |
YEAR |
年 |
MONTH |
月 |
DAY_OF_MONTH |
月(从0开始,故一般使用需+1) |
HOUR |
时(12小时制) |
HOUR_OF_DAY |
时(24小时制) |
MINUTE |
分 |
SECOND |
秒 |
DAY_OF_WEEK |
周中的天(周几,周日为1,故一般使用需-1) |
DateFormat类
- 是日期/时间格式化子类的抽象类,通过该类实现日期与文本间的转换
- 即可在Date对象与String对象间来回转换
- 是Format的子类
- 作用:格式化语言环境敏感信息
- 能用与语言无关方式格式化并解析日期或时间
- 提供许多方法,以获得基于默认或给定语言环境和多种格式化风格的默认日期/时间
- 方法:
-
public static final DateFormat getDateInstance(int style,Locale alocale)
- 获取给定语言环境和格式化风格的日期格式器
- 参数
- style:给定的格式化风格
- aLocale:给定的语言环境
-
public static final DateFormat getDateTimeInstance(int dateStyle,int timeStyle,Locale alocale)
- 获取给定日期/时间风格和语言环境的日期/时间格式器
- 参数:
- dateStyle:给定日期格式化风格
- timeStyle:给定时间格式化风格
- aLocale:给定的语言环境
-
public Date parse(String source) throws ParseException
- 格式化风格:是DateFormat的常量,包括
- SHORT:完全为数字,如3:30pm
- MEDIUM:较长,Jan 12,1952
- LONG:更长,January 12,1952或3:30:32pm
- FULL:完全指定,如Tuesday、April、1952AD或3:30:42pm PST
- 缺点:不能满足个性化格式日期要求
SimpleDateFormat类
- SimpleDateFormat类是DateFormat类的子类
- 作用:按照用户自定义的日期时间模式格式化日期时间,并能将字符串解析为指定模式的日期时间
- 构造方法:
-
public SimpleDateFormat(String pattern)
- 用给定模式和默认语言环境的日期格式构造SimpleDateFormat
- 参数pattern:是一个字符串,代表日期时间自定义格式
- G:Era标志符
- y:年
- M:年中的月份
- v:年中的周数
- V:月中的周数
- D:年中的天数
- d:月中的天数
- F:月中的星期
- E:星期中的天数
- a:am/pm标记
- H:一天中的小时数(0-23)
- k:一天中的小时数(1-24)
- K:am/pm中的小时数(0-11)
- h:am/pm中的小时数(1-12)
- m:小时中的分钟数
- s:分钟中的秒数
- S:毫秒数
- z:时区
- Z:时区
- 字符串与日期间的转换:
Calendar calendar = Calendar getInstance();
calendar.set(1949,10,1,15,01);
java.util.Date date = calendar.getTime();
java.time
- Java8提供了全新的日期时间处理方式,相关类在java.time包中,是不可变且线程安全的
- 主要顶级类
- LocalDate类封装本地日期
- LocalTime类封装本地时间
- LocalDateTime类封装本地日期和时间
- java.time.format包中提供了一个DateTimeFormattaer格式器类,将日期、时间格式化为字符串
包装类
基本类型的包装类
- 将基本数据类型封装成对象
- 作用:可在对象中定义更多的功能方法操作该数据
- 常用操作:基本数据类型与字符串间的转换
- 基本类型对应包装类:
基本数据类型 |
包装类 |
byte |
Byte |
short |
Short |
int |
Integer |
long |
Long |
float |
Float |
double |
Double |
char |
Character |
boolean |
Boolean |
Integer类
- 包装一个对象中原始类型int的值
- 构造方法:
方法 |
说明 |
public Integer(int value) |
据int值创建Integer对象 |
public Integer(String s) |
据String值创建Integer对象 |
public static Integer valueOf(int i) |
返回指定的int值的Integer实例 |
public static Integer valueOf(String s) |
返回一个保存指定值的Integer对象String |
int和String类型的相互转换
- int转为String
- 方法一:直接在数字后面加一个空字符串
- 方法二:通过String类静态方法valueOf()
- String转为int
- 方法一:先将字符串数字转为Integer,再调用valueOf方法
- 方法二:通过Integer静态方法parseInt()进行转换
自动装箱与自动拆箱
- 自动装箱:把基本数据类型转换为对应的包装类类型
- 自动拆箱:把包装类转换为基本数据类型
Integer i = 1; //自动装箱
i += 2; //自动拆箱