黑马程序员——Java基础---常用类(下)

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
API概述
API(Application Programming Interface)
应用程序编程接口
编写一个机器人程序去控制机器人踢足球,程序就需要向机器人发出向前跑、向后跑、射门、抢球等各种命令,没有编过程序的人很难想象这样的程序如何编写。但是对于有经验的开发人员来说,知道机器人厂商一定会提供一些用于控制机器人的Java类,这些类中定义好了操作机器人各种动作的方法。其实,这些Java类就是机器人厂商提供给应用程序编程的接口,大家把这些类称为Xxx Robot API。本章涉及的Java API指的就是JDK中提供的各种功能的Java类。
常用类
Object类/Scanner类
String类/StringBuffer类/StringBuilder类
数组高级和Arrays类
基本类型包装类(Integer,Character)
正则表达式(Pattern,Matcher)
Math类/Random类/System类
BigInteger类/BigDecimal类
Date类/DateFormat类/Calendar类
正则表达式
正则表达式:是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。
举例:校验qq号码.
1:要求必须是5-15位数字
2:0不能开头

正则表达式的组成规则
规则字符在java.util.regex Pattern类中
常见组成规则
字符
字符类
预定义字符类
边界匹配器
数量词
正则表达式的应用
判断功能
public boolean matches(String regex)
eg:判断一个QQ号码(5-15位数字,不能以0开头)
String s5 = “45678”;
regex = “[1-9]\d{4,14}”;
分割功能
public String[] split(String regex)
eg:切割字符串”-1 99 4 23”;
str = “-1 99,4.23”;
strArray = str.split(“[ ,\.]”);
替换功能
public String replaceAll(String regex,String replacement)
eg:用”#”替换叠:”sdaaafghccccjkqqqqql”;
String s1 = “sdaaafghccccjkqqqqql”;
String regex = “(.)\1+”;
获取功能
Pattern和Matcher类的使用
Math类
Math类概述
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
public static int abs(int a):返回参数的绝对值;
public static double ceil(double a):返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。
public static double floor(double a):返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。
public static int max(int a,int b) min自学:返回两个 int 值中较大的一个。
public static double pow(double a,double b):返回第一个参数的第二个参数次幂的值。
public static double random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
public static int round(float a) 参数为double的自学:返回最接近参数的 int。结果将舍入为整数:
public static double sqrt(double a):返回正确舍入的 double 值的正平方根
eg:获取随机数:1-100之间
int number = (int)(Math.random()*100)+1
获取随机数:start到end之间
public static int getRandom(int start, int end) {
return (int) (Math.random() * (end - start + 1)) + start;
}
Random类
Random类概述
此类用于产生随机数
如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
构造方法
public Random()
public Random(long seed)
成员方法:
public int nextInt():返回一个int范围内的一个随机数
public int nextInt(int n) : 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和n(不包括)之间均匀分布的 int 值。
不同的对象,相同的种子,能够生成相同的随机数序列;
这里写图片描述
System类
System类概述
System 类包含一些有用的类字段和方法。它不能被实例化。
成员方法
public static void gc():运行垃圾回收器;
public static void exit(int status):终止当前正在运行的 Java 虚拟机
public static long currentTimeMillis():返回以毫秒为单位的当前时间。
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
参数:
src - 源数组。
srcPos - 源数组中的起始位置。
dest - 目标数组。
destPos - 目标数据中的起始位置。
length - 要复制的数组元素的数量。
注:System.gc()可用于垃圾回收。当使用System.gc()回收某个对象所占用的内存之前,通过要求程序调用适当的方法来清理资源。在没有明确指定资源清理的情况下,Java提高了默认机制来清理该对象的资源,就是调用Object类的finalize()方法。finalize()方法的作用是释放一个对象占用的内存空间时,会被JVM调用。而子类重写该方法,就可以清理对象占用的资源,该方法有没有链式调用,所以必须手动实现。
从程序的运行结果可以发现,执行System.gc()前,系统会自动调用finalize()方法清除对象占有的资源,通过super.finalize()方式可以实现从下到上的finalize()方法的调用,即先释放自己的资源,再去释放父类的资源。
但是,不要在程序中频繁的调用垃圾回收,因为每一次执行垃圾回收,jvm都会强制启动垃圾回收器运行,这会耗费更多的系统资源,会与正常的Java程序运行争抢资源,只有在执行大量的对象的释放,才调用垃圾回收最好
BigInteger类
BigInteger类概述
可以让超过Integer范围内的数据进行运算
构造方法
public BigInteger(String val)
BigInteger类的成员方法及举例
public BigInteger add(BigInteger val):
public BigInteger subtract(BigInteger val):
public BigInteger multiply(BigInteger val)
public BigInteger divide(BigInteger val)
public BigInteger[] divideAndRemainder(BigInteger val):返回包含 (this / val) 后跟 (this % val) 的两个 BigInteger 的数组。
eg
BigDecimal类
由于在运算的时候,float类型和double很容易丢失精度
System.out.println(0.09 + 0.01);
System.out.println(1.0 - 0.32);
所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal
BigDecimal类的概述
不可变的、任意精度的有符号十进制数。
构造方法:
public BigDecimal(String val)—–优先使用此构造方法
成员方法:
public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
//就别用了 public BigDecimal divide(BigDecimal divisor):注意:如果除不尽时,会抛出异常;
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
divisor - 此 BigDecimal 要除以的值。
scale - 要返回的 BigDecimal 商的标度。取小数部分几位
roundingMode - 要应用的舍入模式。
eg
Date类
Date类概述
类 Date 表示特定的瞬间,精确到毫秒。
构造方法:
public Date():使用当前的系统时间
public Date(long date):使用一个毫秒值构造
成员方法
public long getTime()
public void setTime(long time)
DateFormat类
DateFormat类概述
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。
是抽象类,所以使用其子类SimpleDateFormat
构造方法:
public SimpleDateFormat()
public SimpleDateFormat(String pattern)
成员方法:
public final String format(Date date):从日期转换到字符串:
public Date parse(String source):从字符串转换到Date对象;
Date类及DateFormat类练习
eg1
eg2
Calendar类
Calendar类概述
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
public static Calendar getInstance():获取一个Calendar实例
子类:
成员方法:
public int get(int field):返回给定日历字段的值
public void add(int field,int amount):向指定的字段加上amount的值;
public final void set(int year,int month,int date)
public void add(int field,int amount):向指定的字段加上amount的值;
获取的星期值:
日 一 二 三 四 五 六
1 2 3 4 5 6 7
练习:
1.算一下你来到这个世界多少天?
2.获取任意一年的二月有多少天?
1).先获取任意年的3月1日;
2).减1;
eg

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值