2018-07-31包装类与基本数据类型String的转换+System类详细知识+Arrays类+大数据(BigInteger+BigDecimal)运算
String testStr="123";
//强制将字符串转换成int类型用(int):
int testInt=(int)testStr;
//强制将String类型转换成int类型,会报错:Cannot cast from String to int!
包装类:
Java中提供了相应的对象来解决该问题,基本数据类型对象包装类:Java将基本数据类型值封装成了对象!封装成对象就可以提供更多的操作基本数值的功能!
//除了标红的int:Integer/char:Character其余首字母大写即可!
//在实体类内部,建议使用包装类,以减少抛出NULL值异常的概率(包装类比基本数据类型多了一个NULL值)!
功能①:将字符串转换成基本数据类型!
//以上这些方法是分布在每个包装类里面的(即Byte包装类里面有一个parseByte(String Str)方法,parseShort包装类里面有一个parseShort(String Str)方法),由于这些方法使用Static修饰的,所以可以类名.方法名()进行调用!
//如果字符串无法转成基本类型,将会发生数字转换的问题NumberFormatException(数字格式/转换异常)!
功能②:将基本数据类型转换成字符串!
1;基本数据类型直接与“”相连接:58+“”!
2;用于String的valueOf()方法:String.valueOf(58)!
//注意:上图这些方法存在于String类中,用的是方法的重载!
3;调用包装类中的toString()方法,Integer.toString(58)!
//这个与Object类里面的toString不同,这个是静态修饰(Static)的方法, 类名.方法名()调用!
功能③:基本数据类型和包装类之间的转换:
1;基本数据类型-->包装对象
Integer i1 = new Integer(4);//使用构造函数函数传值!
Integer i2 = new Integer("4");//构造函数中可以传递一个数字字符串!
//注意:第一条语句传入的4是一个int类型!
Integer i3 = Integer.valueOf(4);//使用包装类中的valueOf方法!
Integer i4 = Integer.valueOf("4");//使用包装类中的valueOf方法!
//将int或者String类型的值转换并赋值给Integer类型i3/i4
2;包装对象-->基本数据类型
int num = i1.intValue();
自动装箱+自动拆箱:
① 基本类型可以使用运算符直接进行计算,但是引用类型不可以!而基本类型包装类作为引用类型的一种却可以计算,原因在于,Java偷偷地自动地进行了对象向基本数据类型的转换!
② 相对应的,引用数据类型变量的值必须是new出来的内存空间地址值,而我们可以将一个基本类型的值赋值给一个基本类型包装类的引用!原因同样在于Java又偷偷地自动地进行了基本数据类型向对象的转换!
//总结:
自动拆箱:包装对象-->基本数据类型!
自动装箱:基本数据类型-->包装对象!
//演示Byte常量池(与String常量池类似):
当数值在byte范围之内时,进行自动装箱,不会新创建对象空间而是使用已有的空间!
Integer i1=200;
Integer i2=200;
System.out.println(i1==i2);//对比地址
System.out.println(i1.equals(i2));//对比内容
//输出结果false/true
//Byte常量池,在-128--127范围内,不会创建新的,直接把已有的地址拿过来(类似String常量池)!
Integer i3=100;
Integer i4=100;
System.out.println(i3==i4);
System.out.println(i3.equals(i4));
//输出结果true/true
System类:
System类不能手动创建对象,因为构造方法被private修饰,阻止外界创建对象!
System类中的都是static方法,类名访问即可(JDK中N 这样的类,查API)!
//如果该类不能创建对象,想要调用其中方法,请参考以下方法:
① 看该类中有没有方法返回该类的对象!
② 看看有没有静态修饰(Static),以供类名.方法名()调用!
常用方法:
① currentTimeMillis()获取当前系统时间与1970年01月01日00:00之间的毫秒差值!
② exit(int status)用来结束正在运行的Java程序!参数传入一个数字即可,通常传入0为正常状态,其他数字为异常状态!
③ gc()用来运行JVM中的垃圾回收器,完成内存中垃圾的清除(只需了解)!
④ getProperty(String key)用于获取指定键(字符串名称)中所记录的系统属性信息!
//代码示例:
int[] src={1,2,3,4,5};
int[] dest={6,7,8,9,10};
//定义以上两个数组!
System.arraycopy(src,0,dest,0,3);
//类名.方法名()调用arraycopy方法(源数组,源数组要Copy的元素起始位置,目标数组,需要拷贝的长度)
for(int i=0;i<dest.length;++i){
System.out.print(dest[i]+" ");
}
//遍历输出dest数组!
###上午内容###
Arrays类:
此类包含用来操作数组(比如排序和搜索)的各种方法!需要注意,如果指定数组引用为NULL,则访问此类中的方法都会抛出空指针异常NullPointerException!
① sort方法用来对指定数组中的元素进行排序(由小到大)!
② toString方法用来返回指定数组元素内容的字符串形式!
③ binarySearch方法,在指定数组中,查找给定元素值出现的位置,若没有查找到,返回-位置-1,要求该数组必须是个有序数组(必须先sort再binarySearch)!
大数据运算:
BigInteger:
Java中long型为最大整数类型, 超过long型的整数已经不能被称为整数了,它们被封装成BigInteger对象!在BigInteger类中,实现四则运算都是调用方法来实现,并不是采用运算符!
BigInteger的构造方法:
四则运算代码:
① 加add
② 减subtract
③ 乘multiply
④ 除divide
BigDecimal:
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类可以实现浮点数据的高精度运算!
对于浮点数据的除法运算,和整数不同,可能出现无限不循环小数,因此需要对所需要的位数进行保留和选择舍入模式!
第1个参数传入BigDecimal对象,第2个设置精度,第3个为下方表中内容:
posted on 2018-07-31 16:39 Postgre叮当牛i 阅读(200) 评论(0) 编辑 收藏 举报