当前位置: 首页 > news >正文

Java学习笔记Day13

BigInteger

在Java中,整数有四种类型:byte、short、int、long

在底层占用字节个数:byte 1个字节、short 2个字节 、int 4个字节 、long 8个字节

构造方法

方法名说明
public BigInteger(int num,Random rnd)获取随机大整数,范围:[0 ~ 2的num次方-1]
public BigInteger(String val)获取指定的大整数
public BigInteger(String val,int radix)获取指定进制的大整数
静态方法名说明
public static BigInteger valueOf(long val)静态方法获取BigInteger的对象,内部有优化

对象一旦创建,内部记录的值不能发生改变

小结

  1. 如果BigInteger表示的数字没有超出long的范围,可以用静态方法获取
  2. 如果BigInteger表示的数字超出long的范围,可以用构造方法获取
  3. 对象一旦创建,BigInteger内部记录的值不能发生改变
  4. 只要进行计算都会产生一个新的BigInteger对象

常见成员方法

方法名说明
public BigInteger add( BigInteger val )加法
public BigInteger subtract(BigInteger val)减法
public BigInteger multiply(BigInteger val)乘法
public BigInteger divide(BigInteger val)除法,获取商
public BigInteger[] divideAndRemainder(BigInteger val)除法,获取商和余数
public boolean equals(Object x)比较是否相同
public BigInteger pow(int exponent)次幂
public BigInteger max/min(BigInteger val)返回较大/小值
public int intValue(BigInteger val )转为int类型整数,超出范围数据有误

BigInteger底层存储方法

  • 对于计算机而言,其实是没有数据类型的概念,都是01010101.
  • 数据类型是编程语言自己规定的。

BigDecima

计算机中的小数

类型占用字节数总bit位小数部分bit位数
float4个字节32个bit位23个bit位
double8个字节64个bit位52个bit位

作用

  • 用于小数的精确计算
  • 用来表示很大的小数

创建对象

  • 通过传递double类型的小数来创建对象

    • 细节:这种方式有可能是不精确的,所以不建议使用

    • BigDecimal bd1 = new BigDecimal(0.01);
      BigDecimal bd2 = new BigDecimal(0.09);System.out.println(bd1); // 0.01000000000000020816
      System.out.println(bd2); // 0.089999999999999999666
      
  • 通过字符串表示的小数来创建对象

    • BigDecimal bd3 = new BigDecimal("0.01");
      BigDecimal bd4 = new BigDecimal("0.09");System.out.println(bd3); // 0.01
      System.out.println(bd4); // 0.09
      
  • 通过静态方法获取对象

    • BigDecimal bd5 = BigDecimal.valueOf(10);
      System.out.println(bd5);
      

细节

  • 如果要表示的数字不大,没有超出double的取值范围,建议使用静态方法
  • 如果要表示的数字比较大,超出了double的取值范围,建议使用构造方法
  • 如果我们传递的是0~10之间的整数,包含0,包含10,那么方法会返回已经创建好的对象,不会重新new

成员方法

方法名说明
public static BigDecimal valueOf(double val)获取对象
public BigDecimal add(BigDecimal val)加法
public BigDecimal subtract(BigDecimal val)减法
public BigDecimal multiply(BigDecimal val)乘法
public BigDecimal divide(BigDecimal val)除法
public BigDecimal divide(BigDecimal val,精确几位,舍入模式)除法

正则表达式

正则表达式可以校验字符串是否满足一定的规则,并用来校验数据格式的合法性。

体验正则表达式

需求:假如现在要求校验一个QQ号码是否正确。

规则:6位及20位,0不能再开头,必须全部是数字

// 以前知识
public static boolean checkQQ(String qq){int len = qq.length();if(len < 6 || len > 20){return false;}if(qq.startsWith("0")){return false;}for(int i = 0;i < len ;i++){char c = qq.charAt(i);if(c < '0' || c > '9'){return false;}}return true;
}// 正则表达式
qq.matches("[1-9]\\d{5-19}");

正则表达式的作用

  • 校验字符串是否满足规则
  • 在一段文本中查找满足要求的内容

规则

  • 字符类(只匹配一个字符)
    • [abc] 只能是a,b,c
    • [^abc] 除了a,b,c之外的任何字符
    • [a-zA-Z] a到z,A到Z,包括(范围)
    • [a-d[m-p]] a到d,或m到p
    • [a-z&&[def]] a-z和def的交集,为:d、e、f
    • [a-z&&[ ^bc ]] a-z和非bc的交集(等同于[ad-z])
    • [a-z&&[ ^ m-p ]] a-z和除了m-p的交集(等同于[a-lq-z])
  • 预定义字符类(只匹配一个字符)
    • . 任何字符
    • \d 一个数字:[0-9]
    • \D 非数字:[ ^0-9]
    • \s 一个空白字符:[ \t \n \x0B \f \r]
    • \S 非空白字符:[ ^\s]
    • \w [a-zA-Z_0-9] 英文、数字、下划线
    • \W [ ^\w]一个非单词字符
  • 数量词
    • X? X,一次或0次
    • X* X,零次或多次
    • X+ X,一次或多次
    • X{n} X,正好n次
    • X{n,} X,至少n次
    • X{n,m} X,至少n次但不超过m次
http://www.dtcms.com/a/435800.html

相关文章:

  • .net网站设计企业信息公示网站
  • 网站后台建设招聘中山专业网站制作
  • 怎么免费建设自己网站什么网站可以分享wordpress
  • 做影片的网站描述网络平台建设公司排名
  • 有阿里云主机管理平台如何自己做网站自己制作头像的网站 设计 动漫
  • 滨州的网站建设深圳推广软件十年乐云seo
  • .ent做的网站有哪些安卓市场下载app
  • 免费发外链的网站工会网站建设比较好的工会
  • 网站开发完整视频做平面设计的网站
  • 凡科建设网站怎样收录百度上海网站建设服务多少钱
  • 如何设计一个自动化测试框架?
  • 企业网站空间多大建设数据库搜索网站
  • 网站建设基本流程心得用dede做的网站首页
  • 从ModelScope下载模型(平替huggingface 的最优选择)
  • 免费创建属于自己的网站平顶山网站开发
  • 学校网站首页制作公司网站快速备案
  • 汝阳县住房与城乡建设局建局网站房产最新消息今天新闻
  • 免费企业建站开源系统破解asp网站后台地址
  • I/O模型:用select实现多路复用I/O(linux下C语言版)
  • uni做网站首页网站宝的作用
  • MySQL连接时提示ERROR 2002 (HY000)解决方案
  • ORB_SLAM2原理及代码解析:InsertKeyFrame() 函数
  • 大文件去重 (上)
  • 自建企业网站教程有没有做网站的高手
  • 网上做家教的网站知名seo电话
  • 线程中信号量与条件变量详解
  • 做网站的收获wordpress怎样恢复数据库
  • 泉州专门做网站怎么确定网站关键词
  • 七台河北京网站建设电子商务具体是做什么的
  • 网站页面设计稿流量推广平台