00:00
行,那这个呢,比较器咱们讲完以后呢,后边还剩这三个类啊,这三个类的话呢,这个呃,这个难度上就不大了,相当于咱们就是呃,从这个使用的角度来讲的话呢,确实会用到这样的几个类啊,咱们呢简单说一下就可以了,第一个呢,叫做system类啊,咱们第一天呢讲hello word的时候呢,其实就用到了system了,呃,叫系统类,这个system简单看一下,它呢代表的是系统,系统级的很多属性和控制方法呢,都放在这个类的当中啊,定义在这个浪包下,也属于一个比较常用的一个基本的类了,这个类的构造器呢,是私有的,言外之意呢,你就无法去创建该类的对象了啊,也就是无法呢去实例化,那它内部的这些成员变量和方法呢,呃,基本上也都是static的,那就意味着我们也用不着呢去造对象,直接呢,我们通过这个类呢就可以去调用。那么这个STEM的话呢,它有典型的三个属性,我们在API当中呢,也可以看到。
01:03
System这个类的话呢,有这样三个属性叫error in和out,分别对应的呢是print stream input stream和print stream,这呢其实都是涉及到啊流相关的这个操作了,咱们还没有讲,所以暂时呢大家先放一放,等咱们讲到流的时候呢,过来说一下啊,它呢叫标准的输入流,标准的输出流。啊,这是关于这个错误信息的一种输出。哎,暂时呢,咱们就先不关注了,而它下边这个方法的话呢,我们看到诶你看都是加上static了。啊,其实就类似于是一个工具类了啊,直接通过我们这个类呢去进行的调用啊好,那么这里边方法呢,我们看看都有哪些,第一个current time minutes用过了,哎,不多说,下一个叫ex啊,Ex呢叫退出啊可以呢填一个啊int类型呢叫status这个状态,这个方法呢,但我们一定要用,就会退出当前的程序。
02:02
当元程序呢,就会执行结束,这个status的这个值呢是零,表示正常退出,非零呢代表异常退出,使用该方法可以在退化界面当中实现程序的退出,在退化界面当中我们想推出这个程序了啊,有一个退出按钮,一点退出按钮,哎,把这个程序结束,我们就相当于可以调用此方法,行这个呢就不演示了,再往下。JCJC啊,就垃圾回收器啊,该位置collector啊,JC说该方法的调用呢,是请求系统呢进行垃圾回收,至于呢,系统呢是否立刻回收啊,取决于系统中垃圾回收算法的实现和系统的执行的情况,当我们一调这个GC的时候呢,相当于就是提示说系统,哎,你你来给我回收吧。咱们也知道呢,垃圾回收呢,是一个独立的线程,你前面呢,有一台有一个主线程,当我们调这些呢,相当于是不是哎唤醒咱们要求咱们这个垃圾回收器给我去回收垃圾啊,咱们也不是咱们说的多线程,是你所谓的就是叫并行一样哈,那至于人家这块呢,是有没有执行这个你得看这个现成的情况,哎所以这块呢,它不是说呢,我一调马上就会回收,不一定啊啊这呢至少知道我们掉它呢,实际上呢,就是哎请求垃圾回收的意思。
03:18
那再下边呢,有一个叫get,呃,Get property。Get property获取一个属性,那你得传一个K,那么这个K呢,常用的其实就是这些。我传这些key能够获取到相应的一些属性的情况,这就获取到咱们系统的一些这个属性值了啊,啊这块呢,其实也不难,大家呢,只需要把这些数据作为这个字符串呢,传到这就能够得到对应的这个结果啊,比较简单,所以这块呢,我就把这个代码呢,就提前就写好了,咱们看一下就行啊,我在那去新建一个类,这个呢,咱们就叫做那other啊这个class的一个测试,那这呢,咱们主要呢讲三个类。
04:00
哎,其他常用类的使用,哎,咱们提三个啊,第一个就是咱们提到这个system类,哎第二呢,一会咱们说一下这个mass类啊,第三个big integer,哎和啊叫big。那某啊。System。行,那么这个system呢,刚才这几个方法我们说过了,最后这个呢,我们把这个代码直接粘过来跑一下就行,比较简单。简单看一下,就是我们通过这个system呢,叫get priority,咱们呢,就把这个Java的版本,呃,Java的一个home,你的文件路径,系统的一个名称,系统的版本,呃,系统的用户名这个呃,系统的你这个当前用户名呢,它的这个路径在哪啊,C盘呢,User啊,Administrator啊,这个是吧?来你的DR2列一下比较简单啊,我们直接运行看看效果就完了。
05:05
那我这呢,装的是Java的这个1.8,那安装在这了,这是它的一个GRE的一个路径,那我系统呢是WIN7的,是WIN7的这个6.4的这个版本,当前的用户呢是administrator这个啊,它的路径呢是在这儿,然后呢,我的这个第二啊,实际上呢,是咱们当前这个工程啊,我这个代码呢是module d04啊就指定到这个D04下了行,这比较简单啊,哎,这个呢就过了,这是关于我们说的这个叫system,然后下一个呢叫做数学类math,咱们在讲这个质数的时候呢,提过math点开方。啊,还有这个,呃,四舍五入啊等等啊,一系列关于数学操作相关的,大家呢,都可以去找我们这个math类,它定义的也都基本上是一些静态的方法。其实也用不着我们造对象啊,这些调方法呢,去完成这个事儿就行了,呃,这些静态的方法,通常呢,你会发现他们都是带参数的,咱们通过这个参数呢,你去体现这个你想操作的是什么事啊,用不着呢去造我们这个ma类的对象。
06:11
比如说这个求绝对值啊,这个三角函数啊,反三角函数啊,开方啊,这个次幂啊,自然对数啊,这个指数,这个求最大值,两个数的这个最大值,两个数的最小值,求个随机数,咱们前面也用过了四舍五入,弧度转角度,角度转弧度等等啊一系列跟数学操作相关的这个功能,大家呢可以去我们这个math类里边去找。啊,就行。好,这个呢,也就过了啊,不多说了,然后再下边呢,有一个叫big in和big。哎,这两个类呢,原来没有见过,但是呢,你看到这个阴体呢,有点眼熟,不能叫眼熟了,应该是很熟悉啊,B个音体大的体是吧?啊什么意思,看看这个说明就是这两个类的话呢,可能咱们目前后边写代码也也也碰不着了,是吧,或者很少去碰到,但是呢,你得知道这两个类啊,它干什么用的呢?熟悉一下,你看我这写的这个说明说呢ind这呢,作为这个int的一个包装类,它存储的数据,咱们知道这个int的话呢,是四个字节四乘以八呢,这不是32位嘛,32位咱们有一半的正的,一半的负的,差不多就一半一半啊多一个零,这个正的话呢,这不就二的31次方减一了。
07:33
这个in的呢,最大能取到这么大这个浪作为这个包装类,它里边封装的是那个基本数据类型的浪,它呢最大存储这个数。这个咱们都知道了啊,那么浪在后边呢,就没有比它更大的这个整形了。啊,那就是说如果呢,大家需要表示再大的整数,不管是基本数这一类型还是包装类啊,就不行了。那就无能为力了啊,更别说呢去做运算了,那这里边呢,我们就啊记出了一个杀七啊,一个阴体值是吧?啊说max包线呢,有一个类。
08:09
叫做big,它呢可以表示不可变的任意精度的整数,你想要多少位就有多少位,你想表示一下什么,某个星系距离地球有多远是吧?哎,那你这块呢,比如多少多少光年。光年是一个距离单位吧,对啊,就是那个距离啊,我们可以用一个比如来表示,那你这个呢,可能用这两个内呢,无能为力了,那你就可以用这个类说big,它还提供了很多这个方法啊,去做一些额外的一些操作啊,就比较强大,这呢是我们big的一个构造器。啊,这个咱们,诶这个。嗯,这个这个这是它的一个构造器啊,这是它下边的相关的一些这个方法了,这个求绝对值增,呃这个加减乘除是吧?哎这样的一些操作啊,诶这个呢,就不过多的去演示了,大家你知道就是如果我们在开发当中涉及到或者你做具体的一些特殊的项目啊,如果呢,用到这个数据呢,整形的比较大了,哎用它呢去替换。
09:10
啊,这是一个啊,然后接着呢,我们再提到另外一个呢,叫big decimal。Big为对应的是整型big DEC呢对应的是浮点型,对应浮点型,这个之前呢,大家这个讲这个float和double的时候,基本数据类型啊,有同学呢,确实做过很多的练习啊,这个也问过我好多这个情况说,诶这个为什么我这两个做除法呀或做加法呀,最后这个小数点呢,就感觉这个精度好像很奇怪,比如我算了一个数呢,叫3.99999,它写的这个数,其实呢,这个结果呢,本身应该是四的。啊,这个呢,就是因为咱们呃,你float double,它这个存储空间呢小了,它存储范围呢,比整形还大,所以它会有这个精度的损失哈,那么在开发当中呢,如果我们对这种精度呢,要求非常高,说呢,我们需要计算到小数点以后,15位,20位啊,甚至30位,要求非常精确。
10:06
那你肯定不能够用我们的float和double了啊,那计算器,计算器或者叫电脑,那你最起码先得充当成一个计算器做运算呢,比人类强啊,那我们这块呢,就得要求精度呢,要高一些,这两个呢不行,那我们这呢就可以使用叫big din。啊,比如说在这个科学计算,在这个商业计算当中,对这个数字的要求精度非常高,我们就可以用big decimal,它呢可以支持任意精度的数据。构造七加减乘除。好,下边呢,咱们举一个简单的例子啊,这个也比较简单,我把代码呢,CTRLC粘过来。TEST2。嗯,那我来了。嗯,这个好像不用粘过来他了。
11:00
Ctrl shift f一下成,那首先来看第一个这个big,这不就我们造了一个这个big这个对象,这里边呢,大家你可以随便写它的长度。这其实已经超过这个浪了啊啊,但是你写的话呢,他也不会报错啊,这个你比如说把这块呢,先这个。嗯,把这个先这这先注释一下啊,然后把这个呢留一下。哎,这呢,就相当于打印一下你这个对象。你看没有问题啊,它支持呢,任意的这个长度,好,这是关于这个big integer了,然后呢,Big DEC把这两个打开,我们造了两个big DEC的对象,这是一个数,这是一个数,然后呢,让他俩呢做这个除。嗯,这个嗯,它作为这个被除数去除以我们这个啊BD2啊除数,然后呢四舍五入,这呢是一种默认行为,这个呢,我们要求它保留15位小数。15位小数执行一下,看这呢就出来了,哎,你数一下这这就够15位。
12:05
这个呢没有指定,相当于它有一个默认的行为,486,后边这个四呢,不足五,所以呢就舍去了。啊,4545,基本上你能看到这个数呢,其实是除不尽的啊,它能循环下去了,这个你可以给他改啊,改成25。那那就25。啊,就是这样的情况啊,这是呢任意精度啊,就这个事情,哎上面呢,我这有个注释,哎这呢我是让这个BD让他呢去除以这个BD2这个没有指定,呃,这个这个像这个四舍五入啊等等这个情况,这种写法呢,你注意一下它就报错了啊,你要能除尽还行。哎,你看这时候他就报错了,你要能除尽还行,你要除不尽的话呢,他就说你没有准确的一个,诶给我指定那个十进制的这样一个结果,就是因为呢,我这数呢确实除不尽,但是你又没有告诉我到底要算多少位,或者怎么样的一种方式去处理啊,所以这个就报错了啊。
13:03
啊,大家呢,主要来看这个事儿,就是支持任意精度的一个小数位啊行这呢,就是咱们要提的这样的几个其他的长类啊,这两个呢,大家知道是什么作用,这个里边呢,稍微注意一下里边有几个方法。啊,MAS呢,又是一个数学的工具类啊,就可以了啊,这个难度不大。
我来说两句