java基础Day08 异常和工具类续

java工具类

**

Math类

**

  • Math是final的,并且所有的方法都是静态的
  • abs()
  • double cell() 天花板
  • double floor()地板
  • int或long round()四舍五入
  • max()
  • min()
  • pow()
  • random()返回带正号的double值,大于或等于0.0,小于1.0
  • 练习:怎么输出1-500间的随机数,直到输出1或500为止?并记录循环次数
import java.util.Random;
/**
 * @author Hancheng
 * 练习:怎么输出1-500间的随机数,直到输出1或500为止?并记录循环次数
 */
public class Demo08_01 {
	public static void main(String[] args) {
		Random rd = new Random();
		int a = 0;
		int count = 0;
		while(a!=1&&a!=500) {
			a = rd.nextInt(502)+1;
			count++;
			System.out.println(a);
		}
	}
}

System类

  • System类中包括一些系统相关的重要方法和变量

  • System类中的所有成员都是静态对的,如:表示标准输入和输出的in和out变量

  • exit方法,通知系统提前终止虚拟机运行,即退出应用程序

    public static void exit(int status)
    其中参数status的取值由应用程序德运行情况而定

  • 非零值:程序出现异常而结束运行

  • 零值:程序正常退出

  • currentTimeMillis方法,返回1970-01-01 0:0:0起至今以毫秒为单位的时间,以long型表示

public static long currentTimeMillis()

日期类

  1. java.util.Data:包装了一个long型数据,表示与GMT的1970-01-01 0:0:0起至今以毫秒为单位的时间(毫秒数)。
  2. java.text.DataFormat:对日期进行格式化
  3. java.util.Calendar:可灵活的设置或读取日期中的年、月、日、时、分、秒等信息

(API!!!!!)

Java垃圾回收机制(了解)

  • 垃圾回收——garbage collect(gc)

当一个对象不能被程序中处于活动状态的部分所引用时,就成了无用对象或者说垃圾对象,java虚拟机会不定时的去检测这样的对象,并回收其占用的内存空间。
T t = new T(); //这里创建了一个T对象
t = null; //上面创建的T对象不能够再被程序所引用,成为了垃圾对象,java虚拟机会回收其所占用的内存空间。

  • 垃圾回收的通知机制

当java虚拟机即将回收一个对象的时候,会调用这个对象的finalize方法来通知它,以方便这个对象做一些最终清理工作。
所以当我们希望在对象即将被清理的时候做一些事情,可以在对象中定义如下方法:
public void finalize(){
System.out.println(“我即将被回收”);
}

  • System.gc()

垃圾收集处于低优先级的线程内,当可用内存较少时运行,但不能保证何时运行。
不可能强制运行垃圾收集线程。但是调用语句System.gc()有可能激活垃圾收集程序

思考题:
1.String、Stringbuffer和Stringbuilder的区别
在这里插入图片描述
String 类不可变,内部维护的char[] 数组长度不可变,为final修饰,String类也是final修饰,不存在扩容。字符串拼接,截取,都会生成一个新的对象。频繁操作字符串效率低下,因为每次都会生成新的对象。
StringBuilder 类内部维护可变长度char[] , 初始化数组容量为16,存在扩容, 其append拼接字符串方法内部调用System的native方法,进行数组的拷贝,不会重新生成新的StringBuilder对象。
它是非线程安全的字符串操作类, 其每次调用 toString方法而重新生成的String对象,不会共享StringBuilder对象内部的char[],会进行一次char[]的copy操作。
StringBuffer 类内部维护可变长度char[], 基本上与StringBuilder一致,但其为线程安全的字符串操作类,大部分方法都采用了Synchronized关键字修改,以此来实现在多线程下的操作字符串的安全性。其toString方法而重新生成的String对象,会共享StringBuffer对象中的toStringCache属性(char[]),但是每次的StringBuffer对象修改,都会置null该属性值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值