精华内容
下载资源
问答
  • Java随机 Java随机

    千次阅读 2016-12-30 14:17:56
    最近发现java自带的随机函数是可以遇见的,自己就根据随机的理解利用cpu和时间的随机种子写了一个随机类,希望对你有所启发!!! 不说这么多了直接上源码:public class Random { public static void main(String...

    最近发现java自带的随机函数是可以遇见的,自己就根据随机的理解利用cpu和时间的随机种子写了一个随机类,希望对你有所启发!!!

    不说这么多了直接上源码:

    public class Random {
    
    	public static void main(String[] args) {
    		Random r = new Random((short) 100);
    		for (int i = 0; i < 50; i++) {
    			try {
    				System.out.println(r.next());
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    
    	}
    
    	private short r=0 ;//随机对象范围
    	private boolean isCall =false ;
    	private boolean isCall2 =false ;
    
    
    	public Random (short r){
    		this.r=r;
    
    	}
    
    	Object obj = new Object();
    	public int  next() throws Exception{
    		isCall =false ;
    		isCall2 =false ;
    
    		RandomRunnable	rr1= new RandomRunnable(new Call() {
    			//启动线程后通知
    			@Override
    			void call() {
    				isCall=true;
    				synchronized (obj){
    					obj.notify();
    				}
    			}
    		});
    		RandomRunnable	rr2= new RandomRunnable(new Call() {
    			//启动线程后通知
    			@Override
    			void call() {
    				isCall2=true;
    				synchronized (obj){
    					obj.notify();
    				}
    			}
    		});
    
    		//启动子线程
    		new Thread(rr1).start();
    
    		new Thread(rr2).start();
    
    		//等待子线程启动挑出来
    		while(!isCall || !isCall2){
    			synchronized (obj) {
    				obj.wait();
    			}
    		}
    		long c = System.nanoTime();
    		int t = (int) (c%2 +1);
    		//睡眠1毫秒等运算好
    		//		Thread.sleep(1l);
    		//停止线程运算获取相关值
    		//停止线程运算获取相关值
    		int j1 =rr1.endRunnable();
    		int j2 =rr2.endRunnable();
             if(j1==0)
            	 j1=j2;
             if(j2==0)
            	 j2=j1;
    
    		int j =0;
    		//获取线程运算的数字
    		switch (t) {
    		case 1:
    			j=j1;
    			break;
    		case 2:
    			j=j2;
    			break;
    
    		default: 
    			break;
    		}
    
    		return  j%(r+1);
    	}
    
    
    }
    class RandomRunnable implements Runnable{
    	private int j =0; 
    
    	private Call call;
    
    	private boolean b = true;
    
    	public RandomRunnable(Call call){
    		this.call = call;
    	}
    
    
    
    	@Override
    	public void run() {
    		call.call();
    		while (b&&j<10000000) {
    			j++;
    		}
    	}
    
    
    
    	public int endRunnable(){
    		b=false;
    //				System.out.println(j);
    		return  j;
    	}
    
    
    }
    
    abstract class Call{
    	//运行线程了告诉主线程
    	abstract void call();
    }
    
    运行结果

    展开全文
  • 今天小编就为大家分享一篇关于Java生成随机时间的简单随机算法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • java生成随机字母

    万次阅读 2016-06-23 17:35:17
    java生成随机字母
    方法一:
    public class RandomTest extends TestCase {   
        public void testRandom1() throws Exception {   
            String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";   
            char[] c = s.toCharArray();   
            Random random = new Random();   
            for( int i = 0; i < 8; i ++) {   
                System.out.println(c[random.nextInt(c.length)]);   
            }   
        }   
    }  
    
    
    方法二:
    public void testRandom2() throws Exception {   
        Random random = new Random();   
        for( int i = 0; i < 8; i ++) {   
            int choice = random.nextInt(2) % 2 == 0 ? 65 : 97; // 取得大写还是小写   
            System.out.println((char)(choice + random.nextInt(26)));   
        }   
    } 
    
    
    
    
    public String randomString(){
            return randomString(50);
        }
        
        public String randomString(int length){
            if(length<=0){
                length = 10;
            }else if(length >50){
                length = 50;
            }
            StringBuilder s = new StringBuilder(50);
            Random random = new Random();   
            for( int i = 0; i < length; i ++) {   
                int choice = random.nextInt(2) % 2 == 0 ? 65 : 97; // 取得大写还是小写   
                s.append((char)(choice + random.nextInt(26)));   
            }
            return s.toString();
        }
    





    转自:http://www.cnblogs.com/jdonson/archive/2009/12/05/1617562.html

    展开全文
  • Java获取随机字符串

    2009-02-28 15:31:42
    Java获取随机字符串Java获取随机字符串Java获取随机字符串
  • java生成随机密码

    2008-01-13 21:39:47
    java生成随机密码
  • java 随机读写Java类文件 java 随机读写Java类文件 java 随机读写Java类文件
  • Java生成随机图片验证码

    万次阅读 多人点赞 2019-11-21 15:05:26
    //随机生成字符,因为只有画字符串的方法,没有画字符的方法,所以需要将字符变成字符串再画 stringBuilder.append(s); //添加到StringBuilder里面 float x = i * 1.0F * width / 4; //定义字符的x坐标 g....

    效果如图

     

    前台html代码

     <div style="margin-top: 50px;">
            <span>验证码:</span><input type="text" name="verifyCode" id="verifyCode" style="width: 75px;height: 25px;"/>
            <img id="verifyCodeImg" alt="点击更换" src="/qos/dog/getVerifyCodeImg"
                title="点击更换" onclick="change()">
        </div>
    
    
    
    
    注释:此处的src="/qos/dog/getVerifyCodeImg"   SpringBoot页面展示Thymeleaf的语法

    前台js代码

       function change() {
            var verifyCode = document.getElementById("verifyCodeImg");
            verifyCode.src = "/qos/dog/getVerifyCodeImg?time=" + Math.random(1000);
        }
    
    
    
    /*-*/
    
    /qos/dog/  这里的路径是需要换成自己的哦
    
    

    验证代码,在controller里面新建一个util文件夹,然后放入VerifyCodeUtil.java

    代码如下

    package com.paladin.qos.util;
    
    import javax.imageio.ImageIO;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.util.Random;
    
    public class VerifyCodeUtil {
    
        private static final Random random = new Random();
        private static final String[] fontNames = {"宋体", "华文楷体", "黑体", "Georgia", "微软雅黑", "楷体_GB2312"};
    
        public static String drawImage(ByteArrayOutputStream output) {
            String code = "";
            int width = 50;
            int height = 25;
    
            //创建图片缓冲区
            BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
    
            Graphics2D g = bi.createGraphics();
    
            //设置背景颜色
            g.setBackground(new Color(255, 255, 255));
            g.clearRect(0, 0, width, height);
    
            StringBuilder stringBuilder = new StringBuilder();
            //这里只画入四个字符
            for (int i = 0; i < 4; i++) {
                String s = randomChar() + "";      //随机生成字符,因为只有画字符串的方法,没有画字符的方法,所以需要将字符变成字符串再画
                stringBuilder.append(s);           //添加到StringBuilder里面
                float x = i * 1.0F * width / 4;   //定义字符的x坐标
                g.setFont(randomFont());           //设置字体,随机
                g.setColor(randomColor());         //设置颜色,随机
                g.drawString(s, x, height - 5);
            }
            code = stringBuilder.toString();//获取验证码字符串
    
            //定义干扰线
            //定义干扰线的数量(3-5条)int num = random.nextInt(max)%(max-min+1) + min;
            int num = random.nextInt(5) % 3 + 3;
            Graphics2D graphics = (Graphics2D) bi.getGraphics();
            for (int i = 0; i < num; i++) {
                int x1 = random.nextInt(width);
                int y1 = random.nextInt(height);
                int x2 = random.nextInt(width);
                int y2 = random.nextInt(height);
                graphics.setColor(randomColor());
                graphics.drawLine(x1, y1, x2, y2);
            }
            // 释放图形上下文
            g.dispose();
            try {
                ImageIO.write(bi, "jpg", output);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return code;//为了方便取值,直接返回code,
    
    
    
        }
    
        //随机字体
        private static Font randomFont() {
            int index = random.nextInt(fontNames.length);
            String fontName = fontNames[index];
            int style = random.nextInt(4);         //随机获取4种字体的样式
            int size = random.nextInt(20) % 6 + 15;    //随机获取字体的大小(10-20之间的值)
            return new Font(fontName, style, size);
        }
    
        //随机颜色
        private static Color randomColor() {
            int r = random.nextInt(225);
            int g = random.nextInt(225);
            int b = random.nextInt(225);
            return new Color(r, g, b);
        }
    
    
        //随机字符
        private static char randomChar() {
            //A-Z,a-z,0-9,可剔除一些难辨认的字母与数字
            String str = "0123456789ABCdefghiDEFGHIJopPQRVWXYZabcjklSTUmnqrstKLMNOvuwxyz";
    
            return str.charAt(random.nextInt(str.length()));
        }
    
    }
    

    最后,在controller里面引用

        @RequestMapping("/getVerifyCodeImg")
        @ResponseBody
        public void getVerifyCodeImg(HttpServletResponse response, HttpSession session) {
            ByteArrayOutputStream output = new ByteArrayOutputStream();
            String code = VerifyCodeUtil.drawImage(output);
            //将验证码文本直接存放到session中
            session.setAttribute("verifyCode", code);
            try {
                ServletOutputStream out = response.getOutputStream();
                output.writeTo(out);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    

     

    展开全文
  • java 生成随机字符串

    千次阅读 2018-06-13 22:00:53
    java 生成随机字符串 本文我们介绍java中如何生成随机字符串,首先介绍标准java库,然后介绍the Apache Commons Lang library。 java生成随机无限定字符串 首先简单生成7个字符的随机字符串: @Test...

    java 生成随机字符串

    本文我们介绍java中如何生成随机字符串,首先介绍标准java库,然后介绍the Apache Commons Lang library。

    java生成随机无限定字符串

    首先简单生成7个字符的随机字符串:

    @Test
    public void givenUsingPlainJava_whenGeneratingRandomStringUnbounded_thenCorrect() {
        byte[] array = new byte[7]; // length is bounded by 7
        new Random().nextBytes(array);
        String generatedString = new String(array, Charset.forName("UTF-8"));
     
        System.out.println(generatedString);
    }
    

    注意输出字符串不仅是字母或数字。

    java生成随机限定字符串

    下面我们生成一定范围的随机字符串,范围为小写字母并设定长度:

    @Test
    public void givenUsingPlainJava_whenGeneratingRandomStringBounded_thenCorrect() {
      
        int leftLimit = 97; // letter 'a'
        int rightLimit = 122; // letter 'z'
        int targetStringLength = 10;
        Random random = new Random();
        StringBuilder buffer = new StringBuilder(targetStringLength);
        for (int i = 0; i < targetStringLength; i++) {
            int randomLimitedInt = leftLimit + (int) 
              (random.nextFloat() * (rightLimit - leftLimit + 1));
            buffer.append((char) randomLimitedInt);
        }
        String generatedString = buffer.toString();
     
        System.out.println(generatedString);
    }
    

    Apache Commons Lang 生成随机限定字符串

    Apache Commons Lang 库提供很多随机生成字符串方法,下面看如何生成字母字符串:

    @Test
    public void givenUsingApache_whenGeneratingRandomStringBounded_thenCorrect() {
      
        int length = 10;
        boolean useLetters = true;
        boolean useNumbers = false;
        String generatedString = RandomStringUtils.random(length, useLetters, useNumbers);
     
        System.out.println(generatedString);
    }
    

    相比于java实现代码,仅一行就能轻松实现。

    Apache Commons Lang 生成字母字符串

    再看一个简单示例,限定输出为字母字符,但无需传入布尔参数:

    @Test
    public void givenUsingApache_whenGeneratingRandomAlphabeticString_thenCorrect() {
        String generatedString = RandomStringUtils.randomAlphabetic(10);
     
        System.out.println(generatedString);
    }
    

    Apache Commons Lang 生成字母和数字字符串

    最后,我们限定输出范围为(a-z, A-Z) 和数字 0-9:

    @Test
    public void givenUsingPlainJava_whenGeneratingRandomStringUnbounded_thenCorrect() {
        byte[] array = new byte[7]; // length is bounded by 7
        new Random().nextBytes(array);
        String generatedString = new String(array, Charset.forName("UTF-8"));
     
        System.out.println(generatedString);
    }
    

    分别使用标准Java api或Apache Commons库创建有限定范围和无限定范围字符串。

    总结

    本文介绍两种方法生成随机字符串,通过标准Java api或Apache Commons库创建有限定范围和无限定范围字符串。

    展开全文
  • 主要介绍了java 微信随机红包算法的相关资料,并附实例代码,需要的朋友可以参考下
  • 主要介绍了java list随机抽取元素的案例,具有很好的参考,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Java生成随机文件名

    千次阅读 2019-08-19 10:51:55
    * 生成随机图片文件名,"年月日时分秒"格式 */ String randomFileName() { Date date = new Date(System.currentTimeMillis()); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); ...
  • android java 获取随机4位验证码(包含大小写字母,数字,不重复)
  • Java随机点名源码

    2019-09-20 12:52:34
    java随机点名窗口小程序源码,经过多次版本调整,此版本2019最新版。 点名最讨厌的两件事:1.点到不想点的人。2.想点的人点不到 此次更新已完美解决,在后面加上了权重值。
  • Java 获取随机验证码数字

    千次阅读 2017-03-10 15:37:03
    Java 获取随机验证码数字在注册或者重要操作的时候,需要结合短信平台发送验证码来确定是否是真实用户的操作,而生成验证码,一般是4位或者6位的,不过我倒觉得4位验证码更友好:/** * 获取4位随机验证码 * @...
  • 主要为大家详细介绍了java生成随机字符串的两种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Java 生成随机日期,时间

    千次阅读 2017-08-01 21:17:15
    java随机生成日期
  • Java List随机取值

    万次阅读 2018-04-24 16:43:40
    方法1 public static void main(String[] args) { List&lt;String&gt; list = Arrays.asList("a","b","c"); int index = (int) (Math.random... System.out.println(...
  • Java swing画随机

    2017-10-28 19:38:48
    Java随机圆:大小随机、颜色随机、位置随机。 西安电子科技大学Java上机题
  • 本篇文章主要介绍了java实现随机森林RandomForest的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • JAVA读取随机文件

    2009-01-12 16:58:21
    读取随机文件读取随机文件读取随机文件读取随机文件读取随机文件
  • java随机生成人名

    千次阅读 2018-04-13 18:50:52
    java随机生成人名 /** * author:creator * date:2018/4/10 */ package 随机生成人名; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io....
  • Java 生成随机密码

    千次阅读 2018-12-13 19:40:33
    利用Random方法生产随机密码。 将字母,数字,符号拆开成可取用的数组,按照密码长度做生成策略, 分别为小写字母占密码长度的1/2,大写字母和数字各占1/4,符号占剩余无法除尽的(最多两个符号)。 然后循环取值,...
  • java 产生猜随机数字

    2009-06-19 21:09:48
    java 产生猜随机数字 java 产生猜随机数字 java 产生猜随机数字 java 产生猜随机数字 java 产生猜随机数字 java 产生猜随机数字
  • JAVA 实现随机选人

    2010-04-18 13:14:03
    实现随机选人的小程序 用数组实现随机选人
  • java生成随机token

    千次阅读 2017-11-21 08:53:00
    import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.UUID;import sun.misc.BASE64Encoder;/** * * 生成随机token * * @author gaochunhu * @Date: 2...
  • Java生成随机数字10位数

    万次阅读 2019-06-26 16:38:53
    /** * java生成随机数字10位数 * * @param length[生成随机数的长度] * @return */ public static String getRandomNickname(int length) { String val = ""; Random random = new...
  • Java生成随机编码

    千次阅读 2015-12-19 17:01:17
    在我们的实际开发中,经常会遇到生成随机编码的问题,编码一般是英文和数字的结合,有点类似于UUID那样,我在网上找了一些生成编码的规则,大都是Random random = new Random()去生成,由于项目中要用到,今天总结了...
  • java生成随机整数总结

    万次阅读 2010-10-20 14:21:00
    java生成随机整数总结
  • Java随机函数

    万次阅读 2017-05-12 16:45:09
    Java有三种获取随机数的方法 一. java.util.Random包下的Random类,通过new一个Random对象来产生随机数。 二. Math.random()方法,产生的随机数是[0,1)之间的一个double数。 三. System.currentTimeMillis(),该...
  • 随机抽取工具java

    2020-02-21 22:09:53
    随机抽取工具使用Java实现,从excel文件中导入学生数据,输入要随机抽取的学生数,即可随机抽取需要的学生数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 424,549
精华内容 169,819
关键字:

java真随机

java 订阅