Go语言生成随机数

在日常开发中,生成随机数是很常见的需求,Go语言有两种方式来生成随机数,分别由 math/rand 和 crypo/rand 库来提供。为什么会提供两种方式呢?其实两者是有区别的,math 提供的是伪随机数,生成的随机序列不是真正的随机;而 crypo 提供的随机数具有更好的随机性,可以满足密码对随机数的要求,但缺点是性能较差,据资料显示相差10倍左右。(一)math/rand伪随机数生成的随机数是确定的。相同的程序不管什么时间、在什么机器上执行,生成的随机数序列都是相同的。123456789funcmain(){fori:=0;i<10;i++{fmt.Printf("%d",rand.Intn(10))}}$gorunmain.go1779185060$gorunmain.go1779185060可以看到,程序执行多次产生的随机数是一样的,不够随机。我们可以通过设置随机种子,也可以理解为随机函数增加参数。12345678910funcmain(){rand.Seed(1009)fori:...
开发笔记 开发笔记·2024-02-24

java中arraylist命名空间是什么

Java中没有命名空间的概念,ArrayList是java.util包中的一个类。Java中没有命名空间的概念,但是可以使用包名来进行区分。例如,如果你想使用ArrayList类,可以通过导入java.util包来实现:```importjava.util.ArrayList;```然后就可以在代码中直接使用ArrayList类了:```ArrayList...

java如何计算MD5值

可以用 MessageDigest 的MD5实例来计算String的MD5值。使用 MessageDigest 和String时,一定要显式声明你的数据编码类型。如果你使用无参的 String.getBytes() ,它会以当前平台的默认编码来转换数据。不同平台的默认编码可能是不同的,这可能会导致你的数据不一致。importjava.security.*;..byte[]bytesOfMessage=yourString.getBytes("UTF-8");MessageDigestmd=MessageDigest.getInstance("MD5");byte[]thedigest=md.digest(bytesOfMessage); ...
开发笔记 开发笔记·2024-01-12

java二进制文件读写

在Java中,二进制文件读写涉及使用Input/OutputStream或Reader/Writer类的派生类。以下是一些常用的二进制文件读写操作:1.读取二进制文件:try(FileInputStreamfileInput=newFileInputStream("input.bin")){byte[]buffer=newbyte[4096];//缓冲区大小intbytesRead;//已读取的字节数while((bytesRead=fileInput.read(buffer))!=-1){//对缓冲区中的数据进行处理}}catch(IOExceptione){e.printStackTrace();}2.写入二进制文件:try(FileOutputStreamfileOutput=newFileOutputStream("output.bin")){byte[]data={0x01,0x02,0x03};//要写入的二进制数据fileOutput.write(data);}catch(IOExceptione){e.printStackTrac...
开发笔记 开发笔记·2024-01-09

JAVA的修饰符

Java中的修饰符用于控制类、变量、方法和构造函数的访问权限、作用范围和其他特性。以下是Java中的一些主要修饰符的详细说明:1.访问修饰符(AccessModifiers):–public:公开的,可以在任何地方访问。–private:私有的,只能在类内部访问。–protected:受保护的,只能在同一包内的类以及子类中访问。–默认(不使用任何修饰符):只能在同一包内访问。2.非访问修饰符(Non-AccessModifiers):–final:表示最终的,不能被继承、修改或重写。–static:表示静态的,可以在不实例化类的情况下访问。–abstract:表示抽象的,只能用于抽象类和抽象方法,不能直接实例化。–synchronized:表示线程同步的,用于多线程编程。–transient:表示瞬态的,用于告诉JVM在序列化对象时忽略该字段。–volatile:表示易变的,用于多线程中确保变量对所有线程的可见性。3.类修饰符:–final:该类不能被继承...
开发笔记 开发笔记·2024-01-09

java把字符串转换成日期格式

publicstaticvoidmain(String[]args)throwsException{Datedate=newSimpleDateFormat("yyyy-MM-dd").parse("2005-06-09");Stringnow=newSimpleDateFormat("yyyy年MM月dd日").format(date);System.out.println(now);} ...

java四舍五入

方式一:doublef=3.1516;BigDecimalb=newBigDecimal(f);doublef1=b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();输出结果f1为3.15;源码解读:  publicBigDecimalsetScale(intnewScale,introundingMode)//intnewScale为小数点后保留的位数,introundingMode为变量进行取舍的方式;  BigDecimal.ROUND_HALF_UP 属性含义为为四舍五入方式二:Stringformat=newDecimalFormat("#.0000").format(3.1415926);System.out.println(format);输出结果为3.1416解读:  #.00表示两位小数#.0000四位小数以此类推…方式三:doublenum=3.1415926;Stringresult=String.format("%.4f",num);System...
开发笔记 开发笔记·2023-12-28

PHP生成订单号的两种方法

在开发项目的时候经常有生成订单号的需求,这里列出两种生成20位订单号的常用方法。方法一:以下代码是14位当前时间加6位随机数,如果增减位数,只需修改末尾的数字6即可。<?phpFunctionbuild_order_no(){returndate('YmdHis').substr(implode(NULL,array_map('ord',str_split(substr(uniqid(),7,13),1))),0,6);}echobuild_order_no();?>方法二:以下代码是14位当前时间加6位随机数,如果增减位数,修改随机函数rand中的最小值和最大值位数即可。<?phpfunctiongetOrderId(){date_default_timezone_set('Asia/Shanghai');$time=date('YmdHis',time());$randsix=rand('100000','999999');return$time.$randsix;}echogetOrderId();?>...

java中getrealpath怎么使用

在Java中,可以通过使用getRealPath()方法来获取Web应用程序的真实路径。这个方法通常在Servlet中使用,它返回一个字符串,表示Web应用程序的根目录在文件系统中的真实路径。以下是getRealPath()方法的示例用法:importjavax.servlet.*;importjavax.servlet.http.*;importjava.io.*;publicclassMyServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//获取Web应用程序的真实路径StringrealPath=getServletContext().getRealPath("/");//打印真实路径System.out.println("Web应用程序的真实路径:"+realPath);//其他操作...}}在上述示例中,getServletContext().getRealPath(...

java技术栈有哪些

一、消息队列一个大型的分布式系统,通常都会异步化,走消息总线。 消息队列作为最主要的基础组件,在整个体系架构中,有着及其重要的作用。kafka是目前最常用的消息队列,尤其是在大数据方面,有着极高的吞吐量。而rocketmq和rabbitmq,都是电信级别的消息队列,在业务上用的比较多。2019年了,不要再盯着JMS不放了(说的就是臃肿的ActiveMQ)。pulsar是为了解决一些kafka上的问题而诞生的消息系统,比较年轻,工具链有限。有些激进的团队经过试用,反响不错。mqtt具体来说是一种协议,主要用在物联网方面,能够双向通信,属于消息队列范畴。 二、缓存数据缓存是减少数据库压力的有效途径,有单机java内缓存,和分布式缓存之分。对于单机来说,guava的cache和ehcache都是些熟面孔。对于分布式缓存来说,优先选择的就是redis,别犹豫。由于redis是单线程的,并不适合高耗时操作。所以对于一些数据量比较大的缓存,比如图片、视频等,使用老牌的memcached效果会好的多。JetCache是一个基于Java的缓存系统封装,提供统一的api和注解来简化缓...
开发笔记 开发笔记·2023-10-23

注解 javax.validation.constraints下的注解

@NotBlank,@NotNoll,@NotEmpty实体字段校验之间的区别简单的来说字符串用@NotBlank基本类型用@NotNoll集合类型@NotEmpty...

javascript ()、[]、{}的区别

一、{}大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数体在js中,[]表示的是数组对象,{}表示的是对象;vararr={};arr[“属性名”]=属性值;vardemo={"name":"weicunbin","age":"20"};vardemo={"name":function(){returnweicunbin},"age":function(){return20;}}访问对象的属性1、对象名.属性名获取如:demo.name//"weicunbin"2、数组的方式获取对象名[属性名]如:demo["name"]//"weicunbin"3.可以在对象中加方法,调用属性名即调用方法二、[]中括号,表示一个数组,也可以理解为一个数组对象在js中,[]表示的是数组对象,{}表示的是对象;vararr=[]等价与vararr=newArray();如:varLan...
开发笔记 开发笔记·2023-09-07

java的接口和api

Java中的接口和API是两个非常重要的概念。一个接口是一组定义的方法和常量,用来完成某一个特定的任务。API代表应用程序编程接口,是一组预定义的类和方法,用来完成特定的任务,可以帮助开发人员快速实现程序功能。接口在Java中是一种特殊的类,只有方法的定义,没有方法的实现。它们通常是用来定义某一个作用域内需要实现的方法和常量。publicinterfaceMyInterface{publicvoidmyMethod();//定义一个抽象方法publicintmyVal=10;//定义一个常量}在Java中,一个类只能继承一个类,但一个类可以实现多个接口。这意味着您可以将多个接口组合在一起,并使您的类能够实现它们所定义的所有方法。publicclassMyClassimplementsMyInterface{publicvoidmyMethod(){System.out.println("MyMethodiscalled.");}}API是一组定义了许多类和方法的标准库,提供了许多常见任务和功能。Java的标准库是JavaAPI。使用这些API,您可以快速打开文件,创建网络连接,发送电子...
开发笔记 开发笔记·2023-08-29

手机版Java编程软件推荐(让你随时随地学习编程)

在当今数字化时代,学习编程已经成为了一种趋势。而手机作为我们生活中不可或缺的一部分,也逐渐成为了一种学习编程的工具。在这篇文章中,我们将为大家推荐几款手机版Java编程软件,让大家随时随地学习编程。1.概述2.为什么需要手机版Java编程软件3.推荐的几款手机版Java编程软件4.总结为什么需要手机版Java编程软件随着时代的发展,人们越来越忙碌,很难抽出时间去学习新技能。而手机作为我们生活中不可或缺的一部分,也逐渐成为了一种学习编程的工具。随时随地,只需要打开手机,就可以进行学习。推荐的几款手机版Java编程软件1.JavvyJavvy是一款非常受欢迎的手机版Java编程软件,它提供了完整的JavaSE8API文档,可以帮助用户快速查询Java文档。此外,Javvy还提供了Java教程和在线编译器,可以让用户更加方便地学习和实践Java编程。还提供了社交功能,用户可以在社区中与其他学习者交流经验和学习心得。kiki还提供了每日挑战和学习计划,可以帮助用户养成良好的学习习惯。yy还提供了实时编码和自动评估功能,可以让用户更加方便地进行学习和实践。以上就是我们为大家推荐的几款手机版Jav...

Java操作数据库的基本知识与方法详解

1.数据库连接nectivity)API来连接各种类型的数据库。具体步骤包括:-加载数据库驱动程序-建立数据库连接-关闭数据库连接2.数据库查询entent对象来执行查询操作。具体步骤包括:entent对象-执行查询语句-处理查询结果3.数据库插入、更新和删除entent对象来执行。具体步骤包括:entent对象-执行插入、更新或删除语句4.事务管理nection对象来管理事务。具体步骤包括:-开启事务-执行一系列数据库操作-提交事务或回滚事务5.数据库连接池数据库连接池是一种重要的技术,可以提高Java操作数据库的性能和可靠性。连接池可以预先创建一定数量的数据库连接,放入一个池中,当需要连接数据库时,直接从池中获取连接即可。在Java中,可以使用第三方库(如c3p0、Druid等)提供的连接池功能。6.防止SQL注入攻击entent对象可以对用户输入的数据进行预编译,从而避免注入攻击。7.数据库性能优化数据库性能优化是Java操作数据库中的一个重要问题。可以通过以下方法来提高数据库性能:-建立索引-优化SQL语句-使用连接池-分表或分库-缓存数据8.数据库备份和恢复ysqldump等...
首页上一页...23456...下一页尾页