Java____随机数+时间戳+拼接=图片命名
2015-09-02 11:35
363 查看
————————————————获取随机数————————————————
方法1
(数据类型)(最小值+Math.random()*(最大值-最小值+1))
例:
(int)(1+Math.random()*(10-1+1))
从1到10的int型随数
方法2
方法3
Random ra =new Random();
for (int i=0;i<30;i++)
{System.out.println(ra.nextInt(10)+1);}
通过java.util包中的Random类的nextInt方法来得到1-10的int随机数
————————————————获取时间————————————————
——————————————拼接字符串(转)——————————————
运行结果如下:
要特别注意的是:
StringBuilder 循环的次数是其它的10倍,如果是一样,那么返回 0,可见StringBuilder 的速度之快。
总结:
用+的方式效率最差,concat由于是内部机制实现,比+的方式好了不少。
Join 和 StringBuffer,相差不大,Join方式要快些,可见这种JavaScript中快速拼接字符串的方式在Java中也非常适用。
StringBuilder 的速度最快,但其有线程安全的问题,而且只有JDK5支持。
——————————————获取唯一图片名称——————————————
#CONCAT后得到的是一个新字符串,并没有存储到原来生命的变量中去!
———————————————选择性更新图片——————————————
更新作物信息时由于form里的file无法传入值,导致读取不到被更新作物的图片信息。原来的方法时每次更新都要把四张图片全部重新录入一遍。现在通过if判断,在更新模式下,当录入的图片为空时不覆盖原图片。
Mybatis SQL语句:
方法1
(数据类型)(最小值+Math.random()*(最大值-最小值+1))
例:
(int)(1+Math.random()*(10-1+1))
从1到10的int型随数
方法2
方法3
Random ra =new Random();
for (int i=0;i<30;i++)
{System.out.println(ra.nextInt(10)+1);}
通过java.util包中的Random类的nextInt方法来得到1-10的int随机数
————————————————获取时间————————————————
package com.java.test; import java.text.SimpleDateFormat; import java.util.Date; import java.lang.System; public class timerandForPic { public static void main(String[] args) { System.out.println( System.currentTimeMillis());// 返回以毫秒为单位的当前时间。 System.out.println("-----------------------------------"); System.out.println(System.nanoTime());//返回最准确的可用系统计时器的当前值,以毫微秒为单位。 System.out.println("-----------------------------------"); SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");//设置日期格式 System.out.println(df.format(new Date()));// new Date()为获取当前系统时间 } }
——————————————拼接字符串(转)——————————————
import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.StringUtils; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestString { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Test public void testPlus() { String s = ""; long ts = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { s = s + String.valueOf(i); } long te = System.currentTimeMillis(); logger.info("+ cost {} ms", te - ts); } @Test public void testConcat() { String s = ""; long ts = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { s = s.concat(String.valueOf(i)); } long te = System.currentTimeMillis(); logger.info("concat cost {} ms", te - ts); } @Test public void testJoin() { List<String> list = new ArrayList<String>(); long ts = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { list.add(String.valueOf(i)); } StringUtils.join(list, ""); long te = System.currentTimeMillis(); logger.info("StringUtils.join cost {} ms", te - ts); } @Test public void testStringBuffer() { StringBuffer sb = new StringBuffer(); long ts = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { sb.append(String.valueOf(i)); } sb.toString(); long te = System.currentTimeMillis(); logger.info("StringBuffer cost {} ms", te - ts); } @Test public void testStringBuilder() { StringBuilder sb = new StringBuilder(); long ts = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { sb.append(String.valueOf(i)); } sb.toString(); long te = System.currentTimeMillis(); logger.info("StringBuilder cost {} ms", te - ts); } }
运行结果如下:
11:00:22,359 INFO TestString:23 - + cost 1828 ms 11:00:22,921 INFO TestString:34 - concat cost 562 ms 11:00:22,937 INFO TestString:46 - StringUtils.join cost 16 ms 11:00:22,968 INFO TestString:58 - StringBuffer cost 31 ms 11:00:23,031 INFO TestString:70 - StringBuilder cost 63 ms
要特别注意的是:
StringBuilder 循环的次数是其它的10倍,如果是一样,那么返回 0,可见StringBuilder 的速度之快。
总结:
用+的方式效率最差,concat由于是内部机制实现,比+的方式好了不少。
Join 和 StringBuffer,相差不大,Join方式要快些,可见这种JavaScript中快速拼接字符串的方式在Java中也非常适用。
StringBuilder 的速度最快,但其有线程安全的问题,而且只有JDK5支持。
——————————————获取唯一图片名称——————————————
package com.java.test; import java.text.SimpleDateFormat; import java.util.*; public class test1 { public static void main(String[] args) { String s = "a"; Random rand = new Random(); SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");//设置日期格式 String time = df.format(new Date()); int randnum1 = rand.nextInt(900)+100; <span style="color:#ff0000;">time=</span>time.concat(String.valueOf(randnum1)); int randnum2 = rand.nextInt(90)+10; <span style="color:#ff0000;">time=</span>time.concat(String.valueOf(randnum2)); s=time; System.out.println(s); System.out.println(String.valueOf(randnum1)+"abc"); }s.concat("5"); 输出s就不会有问题。但是time=不加到句子前面输出time 或者s 字符串最后都没有随机数!
#CONCAT后得到的是一个新字符串,并没有存储到原来生命的变量中去!
———————————————选择性更新图片——————————————
更新作物信息时由于form里的file无法传入值,导致读取不到被更新作物的图片信息。原来的方法时每次更新都要把四张图片全部重新录入一遍。现在通过if判断,在更新模式下,当录入的图片为空时不覆盖原图片。
Mybatis SQL语句:
<insert id="uploadPlants" parameterType="cdata"> INSERT INTO wc_plants ( id, name, seed_img, sprout_img, growup_img, ripe_img, sprout_day, growup_day, ripe_day ) VALUES ( #{id}, #{name}, #{seed_img}, #{sprout_img}, #{growup_img}, #{ripe_img}, #{sprout_day}, #{growup_day}, #{ripe_day}) ON DUPLICATE KEY UPDATE <if test="NAME!=null and NAME!=''"> NAME=VALUES(NAME), </if> <if test="seed_img!=null and seed_img!=''"> seed_img=VALUES(seed_img), </if> <if test="sprout_img!=null and sprout_img!=''"> sprout_img=VALUES(sprout_img), </if> <if test="growup_img!=null and growup_img!=''"> growup_img=VALUES(growup_img), </if> <if test="ripe_img!=null and ripe_img!=''"> ripe_img=VALUES(ripe_img), </if> sprout_day=VALUES(sprout_day),growup_day=VALUES(growup_day),ripe_day=VALUES(ripe_day); </insert>
相关文章推荐
- Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC
- Spring Assert 断言
- Set file permission in Java(Java 中文件权限的设置)
- 在eclipse里安装pydev
- JavaBean组件在JSP文档中的应用
- Java中四种引用类型
- Hibernate学习笔记
- 现阶段要学习JAVA技术
- java编程之Noncompliant; %n should be used in place of \n to produce the platform-specific line separato
- [leetcode-87]Scramble String(java)
- Java transient关键字使用小记
- Java--Swing组件使用问题详解
- Java--Encode
- java编程之Exception handlers should preserve the original exception
- SpringMVC 使用JSR-303进行校验 @Valid
- SSH项目问题【六】java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- 看马士兵javase视频看第2章基础语法发现错误
- Java性能优化(7):改写equals时遵守通用约定
- 解决Eclipse快捷键被其他软件占用
- Java 中类和方法修饰符