17常用API第3天包装类SystemMathArrays大数据运算讲义Word文档下载推荐.docx
《17常用API第3天包装类SystemMathArrays大数据运算讲义Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《17常用API第3天包装类SystemMathArrays大数据运算讲义Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
●将基本数值转成字符串有3种方式:
⏹基本类型直接与””相连接即可;
34+"
"
⏹调用String的valueOf方法;
String.valueOf(34);
⏹调用包装类中的toString方法;
Integer.toString(34);
1.2基本类型和对象转换
使用int类型与Integer对象转换进行演示,其他基本类型转换方式相同。
●基本数值---->
包装对象
Integeri=newInteger(4);
//使用构造函数函数
Integerii=newInteger("
4"
);
//构造函数中可以传递一个数字字符串
Integeriii=Integer.valueOf(4);
//使用包装类中的valueOf方法
Integeriiii=Integer.valueOf("
●包装对象---->
基本数值
intnum=i.intValue();
1.3自动装箱拆箱
在需要的情况下,基本类型与包装类型可以通用。
有些时候我们必须使用引用数据类型时,可以传入基本数据类型。
比如:
基本类型可以使用运算符直接进行计算,但是引用类型不可以。
而基本类型包装类作为引用类型的一种却可以计算,原因在于,Java”偷偷地”自动地进行了对象向基本数据类型的转换。
相对应的,引用数据类型变量的值必须是new出来的内存空间地址值,而我们可以将一个基本类型的值赋值给一个基本类型包装类的引用。
原因同样在于Java又”偷偷地”自动地进行了基本数据类型向对象的转换。
●自动拆箱:
对象转成基本数值
●自动装箱:
基本数值转成对象
Integeri=4;
//自动装箱。
相当于Integeri=Integer.valueOf(4);
i=i+5;
//等号右边:
将i对象转成基本数值(自动拆箱)i.intValue()+5;
加法运算完成后,再次装箱,把基本数值转成对象。
●自动装箱(byte常量池)细节的演示
当数值在byte范围之内时,进行自动装箱,不会新创建对象空间而是使用已有的空间。
Integera=newInteger(3);
Integerb=newInteger(3);
System.out.println(a==b);
//false
System.out.println(a.equals(b));
//true
System.out.println("
---------------------"
Integerx=127;
Integery=127;
//在jdk1.5自动装箱时,如果数值在byte范围之内,不会新创建对象空间而是使用原来已有的空间。
System.out.println(x==y);
//true
System.out.println(x.equals(y));
第2章System类
2.1概念
在API中System类介绍的比较简单,我们给出定义,System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作。
System类不能手动创建对象,因为构造方法被private修饰,阻止外界创建对象。
System类中的都是static方法,类名访问即可。
在JDK中,有许多这样的类。
2.2常用方法
●currentTimeMillis()获取当前系统时间与1970年01月01日00:
00点之间的毫秒差值
●exit(intstatus)用来结束正在运行的Java程序。
参数传入一个数字即可。
通常传入0记为正常状态,其他为异常状态。
●gc()用来运行JVM中的垃圾回收器,完成内存中垃圾的清除。
●getProperty(Stringkey)用来获取指定键(字符串名称)中所记录的系统属性信息
●arraycopy方法,用来实现将源数组部分元素复制到目标数组的指定位置
2.3System类的方法练习
●练习一:
验证for循环打印数字1-9999所需要使用的时间(毫秒)
publicstaticvoidmain(String[]args){
longstart=System.currentTimeMillis();
for(inti=0;
i<
10000;
i++){
System.out.println(i);
}
longend=System.currentTimeMillis();
共耗时毫秒:
+(end-start));
●练习二:
将src数组中前3个元素,复制到dest数组的前3个位置上
复制元素前:
src数组元素[1,2,3,4,5],dest数组元素[6,7,8,9,10]
复制元素后:
src数组元素[1,2,3,4,5],dest数组元素[1,2,3,9,10]
int[]src=newint[]{1,2,3,4,5};
int[]dest=newint[]{6,7,8,9,10};
System.arraycopy(src,0,dest,0,3);
代码运行后:
两个数组中的元素发生了变化
src数组元素[1,2,3,4,5]
dest数组元素[1,2,3,9,10]
●练习三:
循环生成100-999之间的的三位数并进行打印该数,当该数能被10整除时,结束运行的程序
publicstaticvoidmain(String[]args){
Randomrandom=newRandom();
while(true){
intnumber=random.nextInt(900)+100;
//0-899+100
if(nmumber%10==0){
System.exit(0);
第3章Math类
3.1概念
Math类是包含用于执行基本数学运算的方法的数学工具类,如初等指数、对数、平方根和三角函数。
类似这样的工具类,其所有方法均为静态方法,并且一般不会创建对象。
如System类
3.2常用方法
●abs方法,结果都为正数
doubled1=Math.abs(-5);
//d1的值为5
doubled2=Math.abs(5);
//d2的值为5
●ceil方法,结果为比参数值大的最小整数的double值
doubled1=Math.ceil(3.3);
//d1的值为4.0
doubled2=Math.ceil(-3.3);
//d2的值为-3.0
doubled3=Math.ceil(5.1);
//d3的值为6.0
●floor方法,结果为比参数值小的最大整数的double值
doubled1=Math.floor(3.3);
//d1的值为3.0
doubled2=Math.floor(-3.3);
//d2的值为-4.0
doubled3=Math.floor(5.1);
//d3的值为5.0
●max方法,返回两个参数值中较大的值
doubled1=Math.max(3.3,5.5);
//d1的值为5.5
doubled2=Math.max(-3.3,-5.5);
//d2的值为-3.3
●min方法,返回两个参数值中较小的值
doubled1=Math.min(3.3,5.5);
//d1的值为3.3
//d2的值为-5.5
●pow方法,返回第一个参数的第二个参数次幂的值
doubled1=Math.pow(2.0,3.0);
//d1的值为8.0
doubled2=Math.pow(3.0,3.0);
//d2的值为27.0
●round方法,返回参数值四舍五入的结果
doubled1=Math.round(5.5);
//d1的值为6.0
doubled2=Math.round(5.4);
//d2的值为5.0
●random方法,产生一个大于等于0.0且小于1.0的double小数
doubled1=Math.random();
第4章Arrays类
4.1概念
此类包含用来操作数组(比如排序和搜索)的各种方法。
需要注意,如果指定数组引用为null,则访问此类中的方法都会抛出空指针异常NullPointerException。
4.2常用方法
●sort方法,用来对指定数组中的元素进行排序(元素值从小到大进行排序)
//源arr数组元素{1,5,9,3,7},进行排序后arr数组元素为{1,3,5,7,9}
int[]arr={1,5,9,3,7};
Arrays.sort(arr);
●toString方法,用来返回指定数组元素内容的字符串形式
Stringstr=Arrays.toString(arr);
//str的值为[1,3,5,7,9]
●binarySearch方法,在指定数组中,查找给定元素值出现的位置。
若没有查询到,返回位置为-1。
要求该数组必须是个有序的数组。
int[]arr={1,3,4,5,6};
intindex=Arrays.binarySearch(arr,4);
//index的值为2
intindex2=Arrasy.binarySearch(arr,2);
//index2的值为-1
4.3Arrays类的方法练习
定义一个方法,接收一个数组,数组中存储10个学生考试分数,该方法要求返回考试分数最低的后三名考试分数。
publicstaticint[]method(double[]arr){
Arrays.sort(arr);
//进行数组元素排序(元素值从小到大进行排序)
int[]result=newint[3];
//存储后三名考试分数
System.arraycopy(arr,0,result,0,3);
//把arr数组前3个元素复制到result数组中
returnresult;
第5章大数据运算
5.1BigInteger
java中long型为最大整数类型,对于超过long型的数据如何去表示呢.在Java的世界中,超过long型的整数已经不能被称为整数了,它们被封装成BigInteger对象.在BigInteger类中,实现四则运算都是方法来实现,并不是采用运算符.
BigInteger类的构造方法:
构造方法中,采用字符串的形式给出整数
四则运算代码:
/
//大数据封装为BigInteger对象
BigIntegerbig1=newBigInteger("
12345678909876543210"
BigIntegerbig2=newBigInteger("
98765432101234567890"
//add实现加法运算
BigIntegerbigAdd=big1.add(big2);
//subtract实现减法运算
BigIntegerbigSub=big1.subtract(big2);
//multiply实现乘法运算
BigIntegerbigMul=big1.multiply(big2);
//divide实现除法运算
BigIntegerbigDiv=big2.divide(big1);
5.2BigDecimal
在程序中执行下列代码,会出现什么问题?
System.out.println(0.09+0.01);
System.out.println(1.0-0.32);
System.out.println(1.015*100);
System.out.println(1.301/100);
double和float类型在运算中很容易丢失精度,造成数据的不准确性,Java提供我们BigDecimal类可以实现浮点数据的高精度运算
构造方法如下:
建议浮点数据以字符串形式给出,因为参数结果是可以预知的
实现加法减法乘法代码如下:
publicstaticvoidmain(String[]args){
//大数据封装为BigDecimal对象
BigDecimalbig1=newBigDecimal("
0.09"
BigDecimalbig2=newBigDecimal("
0.01"
BigDecimalbigAdd=big1.add(big2);
BigDecimalbig3=newBigDecimal("
1.0"
BigDecimalbig4=newBigDecimal("
0.32"
BigDecimalbigSub=big3.subtract(big4);
BigDecimalbig5=newBigDecimal("
1.105"
BigDecimalbig6=newBigDecimal("
100"
BigDecimalbigMul=big5.multiply(big6);
对于浮点数据的除法运算,和整数不同,可能出现无限不循环小数,因此需要对所需要的位数进行保留和选择舍入模式
第6章总结
6.1知识点总结
●基本类型包装类
⏹8种基本类型对应的包装类
基本类型包装类
byteByte
shortShort
intInteger
logLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
⏹自动装箱、自动拆箱
◆自动装箱:
基本数值转成对象(intInteger)
◆自动拆箱:
对象转成基本数值(Integerint)
⏹常用方法
publicintparseInt(Stringstr):
把字符串转成基本类型int
publicstaticStringtoString(intx):
把基本类型int转成字符串
publicstaticIntegervalueOf(intx):
把基本类型i字符串转成Integer对象
publicintintValue():
以int类型返回该包装类对象的值
●System类:
系统属性信息工具类
⏹publicstaticlongcurrentTimeMillis():
获取当前系统时间与1970年01月01日00:
⏹publicstaticvoidexit(intstatus):
用来结束正在运行的Java程序。
通常传入0记为正常状态,其他为异常状态
⏹publicstaticvoidgc():
用来运行JVM中的垃圾回收器,完成内存中垃圾的清除。
⏹publicstaticStringgetProperties():
用来获取指系统属性信息
●Arrays类:
数组操作工具类
⏹publicstaticvoidsort方法,用来对指定数组中的元素进行排序(元素值从小到大进行排序)
⏹publicstaticStringtoString方法,用来返回指定数组元素内容的字符串形式
⏹publicstaticvoidbinarySearch方法,在指定数组中,查找给定元素值出现的位置。
若没有查询到,返回位置为-插入点-1。
要求该数组必须是个有序的数组
●Math类:
数学运算工具类
⏹abs方法,结果都为正数
⏹ceil方法,结果为比参数值大的最小整数的double值
⏹floor方法,结果为比参数值小的最大整数的double值
⏹max方法,返回两个参数值中较大的值
⏹min方法,返回两个参数值中较小的值
⏹pow方法,返回第一个参数的第二个参数次幂的值
⏹round方法,返回参数值四舍五入的结果
⏹random方法,产生一个大于等于0.0且小于1.0的double小数