月薪十万从零开始—Java核心之大数字和字符串—Day35
上节学习回顾:character,Double包装类,父类Number,包装类总结,Math数字处理类
本节学习预览:Random类,大数字BigInteger,BigDecimal,Scanner小问题,StringBuffer类
再次说明:文章涉及的软件读者需要的话私信必发,意在帮助大家学习
知识体系:相对简单的前端知识>Java核心>Oracle核心>Java Web开发>框架技术>MyBatis等前沿技术>实战笔记>Linux系统学习
1.Random类
1.构造函数:
1.无参:缺省值为当前时间。进过一系列计算生成随机数
2.参数为种子(一个具体数字);会根据这个数字随机生成,意味着:每次运行程序,由于种子一样,每次的结果都一样,程序运行几次都是一样的随机数。而无参的由于系统时间在变化,所以生成的不一样。
2.成员方法
1.int nextInt();随机整数
2.int nextInt(int n);0-n随机整数,包左不包右
3.long nextLong();
4.boolean nextBoolean();
5.float nextFloat();
6.double nextDouble();
7.double nextGaussian();返回一个概率密度为高斯分布的双精度值
2.大数字BigInteger类
1.介绍:任意大的数字都会完整的保存和计算,比int大的多的多
2.构造函数
1.BigInteger(String s);参数为String传入
后面还有很多生成随机数的一些。
3.成员方法
1.BigInteger add(BigInteger b);加法运算
2.BigInteger subtract(BigInteger b);减法
3.BigInteger multiply(BigInteger b);乘法
4.BigInteger divide(BigInteger b);除法
5.BigInteger remainder(BigInteger b);取余
6.BigInteger [ ] divideAndRemainder(BigInteger b);数组返回余数和商,第一个值是商,第二个是余数
7.BigInteger pow(int i);求次方
8.BigInteger negate();相反数
9.BigInteger shiftLeft(int n);将数字左移n位,如果是负数则右移
左移:相当于调用者 这个数 /(2^n),右移类似,并不是之前随便听的开平方
10.BigInteger shiftRight(int n);将数字右移n位,如果是负数则左移。
11.BigInteger and(BigInteger b);与操作。
12.BigInteger or(BigInteger b):或操作
13.int compareTo(BigInteger b);数字比较
14.boolean equals(Object o);当参数类型是BigInteger,且内容一样,返回true
15.BigInteger min(BigInteger b);返回小的那个数
16.BigInteger max(BigInteger b);返回最大的那个
3.大数字BigDecimal类
1.构造函数
1.BigDecimal(String s);参数为字符串
2.BigDecimal(double d);参数为double类型
2.成员方法
1.BigDecimal add(BigDecimal b);加
2.BigDecimal subtract(BigDecimal b);减
3.BigDecimal multiply(BigDecimal b);乘
4.BigDecimal divide(BigDecimal b1,int 小数位数,int 近似处理模式);
3.除法中涉及的处理模式,静态变量,通过BigDecimal调用
ROUND_UP:直接进位
ROUND_DOWN:直接省略
ROUND_CEILING:商是正数就ROUND_UP,负数ROUND_DOWN,结果比实际的值都大
ROUND_FLOOR:和上面的相反,正数就省略,负数就进位,结果比实际的值都小
ROUND_HALF_DOWN:不正经的四舍五入,如果最后一位<=5,舍去
ROUND_HALF_UP:正经的四舍五入,最后一位<5舍去
ROUND_HALF_EVEN:看最后一位的前一位,是奇数,最后一位就进位,是偶数,最后一位就舍去
4.Scanner小问题
1.next()和nextLine()区别:主要是对于空格的读取,space /
1.next();对于空格会把每个空格后的内容,放在后面更多的next()方法中读取。
且:空格不会在获取的字符串中
2.nextLine();把一整行读取,空格也读进去。
2.注意:先next()后nextLine()
5.StringBuffer安全低性能
1.构造方法
无参的,默认构造出16长度的(初始化长度)
参数为数字,构造出长度为那个数字的长度的
2.内存思考
初始化的时候考虑到数组的长度,最好初始化好了,不然底层实现的拷贝是(现在的长度+1)*2,翻倍的,所以尽量考虑好长度,稍微大点点。
3.成员方法
1.append(任意类型);后面追加内容。99%用的只有这个。
总结:本节重点是大数字的掌握。随机数要会生成随机范围数字和随机字符。今后用到拼串尽量使用StringBuffer,虽然StringBuilder性能高,但是由于多线程问题开发中用到的最多的还是StringBuffer,方法很简单一般只用append()。
结束语:做这一行就是要勤快练习,代码量是很重要的,练习才有经验。祝大家学业有成!
- 上一篇:没有了
- 下一篇:没有了