入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

月薪十万从零开始—Java核心之大数字和字符串—Day35

创建时间:2017-08-16 投稿人: 13875865496 浏览次数:287

上节学习回顾: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()方法中读取。

且:空格不会在获取的字符串中

月薪十万从零开始—Java核心之大数字和字符串—Day35

2.nextLine();把一整行读取,空格也读进去。

月薪十万从零开始—Java核心之大数字和字符串—Day35

2.注意:先next()后nextLine()

月薪十万从零开始—Java核心之大数字和字符串—Day35

5.StringBuffer安全低性能

1.构造方法

无参的,默认构造出16长度的(初始化长度)

参数为数字,构造出长度为那个数字的长度的

2.内存思考

初始化的时候考虑到数组的长度,最好初始化好了,不然底层实现的拷贝是(现在的长度+1)*2,翻倍的,所以尽量考虑好长度,稍微大点点。

3.成员方法

1.append(任意类型);后面追加内容。99%用的只有这个。月薪十万从零开始—Java核心之大数字和字符串—Day35


总结:本节重点是大数字的掌握。随机数要会生成随机范围数字和随机字符。今后用到拼串尽量使用StringBuffer,虽然StringBuilder性能高,但是由于多线程问题开发中用到的最多的还是StringBuffer,方法很简单一般只用append()。

结束语:做这一行就是要勤快练习,代码量是很重要的,练习才有经验。祝大家学业有成!

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了