1、Math.random()

Math.random()生成的是0.0~1.0的小数(不包括1.0哦),如果你想要的正好就是小数,那么直接乘以一个值就好了

例如:生成 [0.0,100.0) 的double数

但是大部分情况下,都是生成一个整数,所以这时候我们就要用到类型转换,将生成的double转换成int值。

注意是:

int a = (int)(Math.random() * 100);
这种方式是将生成的0~1先乘以100,再将这个数变成int

而不是:

int a = (int)Math.random() * 100;
这种方式是先将0~1.0转换成int类型,
可是0~1.0转换成int之后是0,再乘以100也还是0啊

对比:

获取指定范围的随机数:

(int)(Math.random()*(大-小+1) ) + 小

如:生成 36 ~ 79 之间的随机数

2、Random类

(Math类是数学类,他还要完成很多数学操作。可Random类专注于生成各种随机数,你说谁牛逼?)

如图,new一个Random的对象r,想生成随机数的时候调用r的方法就行了。

int a = r.nextInt(bound);
bound指的是生成随机数的范围:[0,bount)

生成指定范围的随机数:

r.nextInt(大-小+1)+小;

如:生成 36 ~ 79之间的随机数

r.nextInt(79-36+1)+36;

可以看到,这个类是没有直接生成字符的方法的。这时候就需要生一个整数,再强转为char

JAVA 生成随机数两种方式相关推荐

  1. Java技术分享:升级所安装Java版本的两种方式

    在进行Java开发的时候我们可能会需要升级所安装的Java版本,那么你知道应该如何安装吗?小千今天就来给大家介绍两种方式. 一.卸载掉原本安装的Java,下载最新安装包安装即可. 这个步骤就不介绍了, ...

  2. Linux之Ubuntu20.04安装Java JDK8的两种方式

    Linux之Ubuntu20.04远程安装Java JDK8的两种方式 安装openjdk8 更新软件包列表: sudo apt-get update 安装openjdk-8-jdk: sudo ap ...

  3. Java连接Oracle两种方式thin与oci区别

    Java连接Oracle两种方式thin与oci区别 前几天同事跑过来跟我说, 机房中的一台tomcat服务器跟oracle数据库机连接很慢,查看控制台中的hibernate日志, 基本上是一条sql ...

  4. java excel生成_两种方式实现java生成Excel

    Web应用中难免会遇到需要将数据导出并生成excel文件的需求.同样,对于本博客中的总结,也是建立在为了完成这样的一个需求,才开始去了解其实现形式,并且顺利完成需求的开发,先将实现过程总结于此.本博文 ...

  5. Java 分页,两种方式的分页,即取即用的代码,不客气

    两种方式,一种是currentPage + pageSize, 一种是limit + offset (limit + offset 这个逻辑太恶心,边缘测试很麻烦) 第一种(currentPage + ...

  6. java实例化字符串两种方式区别

    一:实例化字符串对象的两种方式的区别 这个知识点是面试中的一个经久不衰的问题,.也是一个比较麻烦的问题,对于许多同学来说也是难点,本次课我们会详细的分析.上次课说了创建字符串对象的两种方式:直接赋值( ...

  7. Java练习:两种方式求1+1/2!+1/3!+1/4!+...前20项的和、用for,while,do-while分别实现1+1/2!+1/3!+1/4!+...前20项的和

    Java两种方式求 1+1/2!+1/3!+1/4!+... 前20项的和: 感叹号 !是阶乘的意思,如 2! .3! .4! 分别是:1*2 . 1*2*3 .1*2*3*4  第一种算法,如下代码 ...

  8. Java异常处理的两种方式

    异常处理方式一:在当前方法中直接用try-catch处理 异常处理方式二:在当前方法中不处理,throws 异常抛给调用者处理 一. try-catch的方式就是捕获异常. try:该代码块中编写可能 ...

  9. 线程Java的两种方式_多线程(java和guava两种方式):

    1.Java 当要使用线程去执行一个任务时,可以使用ExecutorService.submit(new Callable); 这样可以不影响其他的业务的执行,但是在线程中的异常不能捕获到,也不能知道 ...

  10. java guava_多线程(java和guava两种方式):

    1.Java 当要使用线程去执行一个任务时,可以使用ExecutorService.submit(new Callable); 这样可以不影响其他的业务的执行,但是在线程中的异常不能捕获到,也不能知道 ...

最新文章

  1. LeetCode19. Remove Nth Node From End of List 删除链表中的倒数第n个位置的元素
  2. 7-17 BCD解密(10 分)
  3. 批量修改mp3文件的title等
  4. java 数据库插入数据_java向数据库插入N条数据
  5. android新拟态实现方法,Android 新拟态UI (Neumorphism)
  6. poj3981 字符串替换-字符串的基本操作
  7. zookeeper注意几点
  8. php里面的socket编程,详解PHP Socket 编程过程
  9. 记录Linux下彻底删除MySQL以及启动MySQL之后使用密码登录提示报ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost
  10. leetcode那些算法都用在了哪里
  11. python 去除读取txt输出时候的换行号
  12. 数据结构笔记(三十)-- 查找的基本概念和相关的顺序查找
  13. DeepLearning tutorial(7)深度学习框架Keras的使用-进阶
  14. flowable 配置自定义表单_web工作流管理系统开发之四 自定义表单
  15. 【线性代数】行列式和矩阵的关系
  16. xcode8插件管理工具
  17. 使用SpringBoot报错:Inferred type ‘S‘ for type parameter ‘S‘ is not within its bound。【解决办法】
  18. mybatis中显示更新数据成功 ,控制台显示成功,数据库数据却没有修改
  19. 安卓实现截图功能的两种方式
  20. Concept Whitening(for Interpretable Image Recognition)

热门文章

  1. python word2vec使用_使用Python可视化Word2vec的结果
  2. android 各类开源项目整理 包括 个性化控件 工具库 完整优秀项目
  3. 电脑鼠标右键菜单太多了怎么办?Windows右键菜单清理删除方法
  4. 《和平精英》枪械怎么搭配最无敌?大神竟然都爱平底锅?
  5. 100个优秀安全测试工具
  6. 键盘按键损坏 注册表更改_如何彻底清洁键盘(不损坏任何东西)
  7. Web课设——HIS系统
  8. 使用oledb读写excel出现“操作必须使用一个可更新的查询”的解决办法
  9. flash播放器代码
  10. iphone尺寸大全对照表2021 iphone屏幕尺寸大全