1.Random类

随机生成某个整数

	Random r = new Random();
System.out.println(r.nextInt());

伪随机数:第一次打印为随机,再次运行,数字将保持不变

	Random r1 = new Random(10);
System.out.println(r1.nextInt());

随机输出34到179之间的数

分析:.nextInt(15)表示生成0到15之间的随机数

当输出最小为0时,只需加上34;

当输出最小为145时,也只需加上34

	System.out.println(34 + new Random().nextInt(145));

2.UUID:通用唯一识别符(在一台机器上生成的数字)

生成规律:是结合当前的时间和每台机器上的网卡识别符生成的一段字符

	String a =UUID.randomUUID().toString();
System.out.println(a);
【4b8fc3b2-89e9-473a-80d6-c791e4e90826】

3.日期类(需要导包[util包])

import java.util.Date;

public class date类 {
public static void main(String[] args) {
//获取当前的时间
Date date = new Date();
System.out.println(date);
//获取当前的毫秒值
long time = System.currentTimeMillis();
System.out.println(time);
//将毫秒值转换为当前的日期类型
Date date2 = new Date(time);
System.out.println(date2);
//中国日期
String d = date2.toLocaleString();
System.out.println(d);
//将日期转换为当前的毫秒值
System.out.println(date2.getTime()); }
}

当计算员工的工龄,年龄时类型都是date类

4.随即验证码

import java.util.Random;
import java.util.UUID; public class 验证码 {
public static void main(String[] args) {
//UUID的数是随机的
String u = UUID.randomUUID().toString();
System.out.println(u);
//取其前五位
System.out.println(u.substring(0,5));//缺点,字母只到F,原因,UUID为十六进制编写
System.out.println("********************");
//改进:让系统在给定的字符串中随机输出任意字符。
String a = "ABCDEFGHIjKLMNOPQRSTUVWXYZ";
a = a + a.toLowerCase();
a = a + "0123456789";
System.out.println(a);
###
思路:
//先让其随机在字符串长度内截取一个字符(告知其位置)
//先知道字符串有多长
System.out.println(a.length());
//将其位置在字符串长度内随机
int a2 = new Random().nextInt(a.length());
//将随机位置和字符联系在一起
System.out.println(a.charAt(a2));
###
//若输入五位验证码,则循环五次
for(int i = 0;i < 5;i++) {
int a3 = new Random().nextInt(a.length());
System.out.print(a.charAt(a3));
} }
}
在输入五位验证码处替换成更好的代码
//数据无论怎么改,地址都不会变(可变字符串)
StringBuilder sb = new StringBuilder();
for(int i = 0;i < 5;i++) {
int a2 = new Random().nextInt(a.length());
char res = a.charAt(a2);
sb.append(res);//类似于sb = sb + ch;
}
System.out.println(sb);

java42的更多相关文章

随机推荐

  1. 个人笔记docker

    启动docker sudo systemctl start docker.service   暂停docker sudo systemctl stop docker.service   运行docke ...

  2. setTimeout、同步、异步的理解

    console.log('111'); setTimeout(()=>{ console.log('222') },1000); console.log('333'); setTimeout(( ...

  3. axios封装接口

    我们一般都是在做一个大型项目的时候,需要用到很多接口时,我们为了方便使用,就把接口封装起来. 先安装axios命令 :npm install axios --save 那么思路是什么呢? 首先在src ...

  4. 无字母数字getshell

    无字母数字webshell 预备知识 一些不包含数字和字母的webshell https://www.leavesongs.com/PENETRATION/webshell-without-alpha ...

  5. 全文思维导图------redis设计与实现

  6. 五:key关键字 string字符串 list列表 set集合 Zset有序集合

    key 1.keys 命令用于查找所有符合给定模式 pattern 的 key . keys *  查找所有的key返回一个列表 2.EXISTS xxx 检查是否有指定名字为xxx的key 有就返回 ...

  7. Spring源码之IOC容器创建、BeanDefinition加载和注册和IOC容器依赖注入

    总结 在SpringApplication#createApplicationContext()执行时创建IOC容器,默认DefaultListableBeanFactory 在AbstractApp ...

  8. 每天一个linux命令之stat

    [Linux]Linux下使用stat命令所显示出来的三个时间 转 https://blog.csdn.net/pointer_y/article/details/54347968 在linux系统下 ...

  9. 我要进大厂之大数据ZooKeeper知识点(2)

    01 我们一起学大数据 接下来是大数据ZooKeeper的比较偏架构的部分,会有一点难度,老刘也花了好长时间理解和背下来,希望对想学大数据的同学有帮助,也特别希望能够得到大佬的批评和指点. 02 知识 ...

  10. python学习-pickle模块(序列化)

    简介 1 python-pickle模块 该pickle模块实现了用于序列化和反序列化Python对象结构的二进制协议. "Pickling"是将Python对象层次结构转换为字节 ...