API(应用程序编程接口),是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
Object
Object类是类层次结构的根类,每个类都使用Object作为超类,所有对象都实现这个类的方法。
方法
int hashCode()//返回该对象的哈希码值
String toString()//返回该对象的字符串表示
boolean equals(Object object)//指示其他某个对象是否与此对象“相等”
void finalize()//用于垃圾回收,在不确定的时间
void clone()//创建并返回此对象的一个副本
Math
Math类表示的是数学的计算操作。
静态方法
double/float/int/long abs(double/float/int/long a)//求绝对值
double ceil(double a)//向上取整
double floor(double a)//向下取整
double/float/int/long max(double/float/int/long a,double/float/int/long b)//最大值
double/float/int/long min(double/float/int/long a,double/float/int/long b)//最小值
double pow(double a,double b)//a的b次幂
double sqrt(double a)//正平方根
long/int round(double/float a)//四舍五入
double random()//返回一个大于或者等于0.0小于不等于1.0的随机数
int num = (int) (Math.random() * 100)+1;//表示1~100的随机数。
Random
Random类中实现的随机算法是伪随机,也就是有规则的随机,他可以产生int,long,float,double等类型的随机数。
给构造方法赋值后,第一次运行得到的随机数和以后得到的随机数相同。
new Random().nextInt(int length);
方法
int nextInt(int n)//取出不大于n的整数
float nextFloat()//取出小数
double nextDouble()//生成一个随机的double值,介于[0,1.0]之间
System
位于java.lang包中,代表系统,系统级的很多属性和控制方法都放置在该类的内部。
字段
in 标准输入流
out 标准输出流
err 标准的错误输出流
静态方法
void arraycopy(源数组,源数组中的起始位置,目标数组,目标数组中的起始位置,要复制的数组元素的数量)//拷贝
long currentTimeMills()//返回当前计算机时间
void exit(int status)//退出程序,statues(形参int statues)的值为0时代表正常退出,非0代表异常退出。
void gc()//请求系统进行垃圾回收
先获取一个数值,再获取一个字符串,Enter换行符号会代替字符串。
解决办法:Scanner input = next Scanner(System.in);
- 先获取一个数值后,再创建一个新的键盘录入对象获取字符串。
- 把所有的数据都先按照字符串获取,然后要什么,对应的转换什么。
java中垃圾回收
垃圾
当一个对象失去与引用变量的联系时就成了垃圾。
Date
位于一个java.util包中,用一个long类型的的值来表示一个指定的时刻。
方法
void setTime(long time)//设置毫秒数值
long getTime()//返回setTime的值或者当前计算机的long值
Calendar
该类是一个抽象类,可以使用GregorianCalendar类将其实例化,也可以通过getlnstannce()方法来创建对象,可以将时间精确到毫秒值。
Calendar calendar = Calendar.getInstance();
方法
void set(int year,int month,int date,int hourOfDay,int minute,int second)//此方法用来设置时间的值(月份的值为实际的月份减1)。
Date getTime()//获取当前时间的Date值。
SimpleDateFormat
是一个以国别敏感的方式格式化和分析数据的具体类,主要功能是完成日期显示格式的转换。
方法
Date parse(String time)//将字符串转为日期
String format(Date date)//将日期转为字符串
获取当前时间的几种方式
通过Util包的Date获取
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat.format(date));
通过Util包的Calendar获取
Calendar calendar = Calendar.getInstance();
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat.format(calendar.getTime()));
通过Util包的Calendar 获取时间,分别获取年月日时分秒
Calendar cal=Calendar.getInstance();
int y=cal.get(Calendar.YEAR);
int m=cal.get(Calendar.MONTH);
int d=cal.get(Calendar.DATE);
int h=cal.get(Calendar.HOUR_OF_DAY);
int mi=cal.get(Calendar.MINUTE);
int s=cal.get(Calendar.SECOND);
System.out.println("现在时刻是:"+y+"年"+m+"月"+d+"日"+h+"时"+mi+"分"+s+"秒");
通过lang包的System类获取
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(System.currentTimeMillis()));
获取时间戳的几种方式
System.currentTimeMillis();
Calendar.getInstance().getTimeInMillis();
new Date().getTime();
基本类型包装类
Byte,Short,Integer,Long,Float,Double,Character,Boolean
int类型和String类型的相互转换
int-->String
- " "+int对象
- String.valueOf(int对象)
- int先转integer,然后toString()
- Integer.toString(int对象)
String-->int
- Integer.parseInt(String对象)
进制转换
进制从2进制开始,到36进制结束,因为0-9,a-z加起来等于36。
自动装箱和自动拆箱
JDK1.5以后,简化了定义方式。Integer x = new Integer(4);可以直接写成
Integer x = 4;(自动装箱:把基本类型转换为包装类类型)
x = x + 5;(自动拆箱:把包装类类型转换为基本类型)
注意
在使用时,Integer x = null,代码就会出现NullPointerException。(空指针异常)
Integer针对-128到127之间的数据,做了一个数据缓冲池,如果数据是该范围内的,每次从缓存池里获取数据,反之,会另外开辟新空间。
BigDecimal
由于在运算的时候,float类型和double很容易丢失精度,所以为了能精确的表示,计算浮点数,Java提供了BigDecimal。