毫秒

最全时间工具类timeUtile

江枫思渺然 提交于 2019-12-10 17:55:43
写代码最烦的是什么,写个日期啥,或者判断一个日期是什么星座还要写一大推代码,岂不是很累,伸手党福利来了 import android.support.annotation.NonNull; import java.io.IOException; import java.net.URL; import java.net.URLConnection; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; import 自己的路径.TimeConstants; /** * @author xiaoye * @fileName TimeUtils * @createDate 2018/11/5 9:26 * @email 1025982282@qq.com * @desc 全局统一Toast工具类 */ public final class TimeUtils { private TimeUtils(){ throw new UnsupportedOperationException("u can't

snowflake算法【雪花算法】及源码

ぐ巨炮叔叔 提交于 2019-12-10 14:09:15
  snowflake算法【雪花算法】   twitter开源分布式生成id算法。   优点:基本解决了所有问题   缺点:每个节点时间可能不同,生成id是整体趋势递增的   结构   snowflake的结构如下(每部分用-分开):   0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000   第一位为未使用,接下来的41位为毫秒级时间(41位的长度可以使用69年),然后是5位datacenterId和5位workerId(10位的长度最多支持部署1024个节点) ,最后12位是毫秒内的计数(12位的计数顺序号支持每个节点每毫秒产生4096个ID序号)   一共加起来刚好64位,为一个Long型。(转换成字符串长度为18)   snowflake生成的ID整体上按照时间自增排序,并且整个分布式系统内不会产生ID碰撞(由datacenter和workerId作区分),并且效率较高。据说:snowflake每秒能够产生26万个ID。   雪花算法源码   /**   * Twitter_Snowflake   * SnowFlake的结构如下(每部分用-分开):   * 0 - 0000000000 0000000000 0000000000 0000000000 0 -

前端BOM对象

孤人 提交于 2019-12-10 13:21:59
location.href 查看当前的url location.href http://www.baidu.com 跳转URL location.reload 重载当前页面 windows.alert('你好') 弹出提示框 document.body.coneditable=true 可对网页进行编辑 confirm("你吃饭了吗?") 弹出选择框 prompt("提示框") 计时器:   setTimeout("alert(123);",5) | setTimeout("js语句;",毫秒) 来源: https://www.cnblogs.com/cou1d/p/12016015.html

简单测试linq to sql性能

有些话、适合烂在心里 提交于 2019-12-09 13:47:18
前些日子,做了一个物业收费系统,cs模式,用到了linq to sql 技术,这是我第一次使用这个东东写程序存取数据库,迷迷糊糊搞得一塌糊涂,当时有个同学他们找好的分页组件,然后写好了调用方法,由于时间比较急,而且第一次用,所以没有怎么研究就直接按照注释使用他们写好的分页方法,然而开发过程中一直都对他们写的方法有怀疑,会不会是一种投机取巧,胡编乱造的?后来我也做过一些简单分析,我发现程序在业务逻辑层中每次都从数据库中将数据全部读取出来,然后循环将数据转成特定的List,也就是遍历整个数据集合,然后在显示层中将List进行分页,最后放到DataGridView中,其中列名自动设定为类的属性值,刚开始我还一直认为这样的方法好方便啊,一下子全部生成了,直到程序马上接近尾声时,我发现程序的操作日志记录已经达到了4500条,每次打开日志管理界面时,程序都要加载上半天才能出来,我彻底对linq产生了怀疑,确切的说并不是对linq产生怀疑,而是分页方法以及程序算法产生了怀疑。 显示层的分页代码部分: 1 dataGridView.DataSource = data.Take(pagerControl1.PageSize * pagerControl1.PageIndex).Skip(pagerControl1.PageSize * (pagerControl1.PageIndex - 1))

C# SQL Server数据库里存时间(datetime)怎么能,不存后三位的毫秒

你离开我真会死。 提交于 2019-12-09 12:26:52
问题:     当我根据时间去查数据库的时候,发现必须要精确到后三位的毫秒才能查得到数据,然而,C#的datetime函数,不精确到毫秒,也可能精确到毫秒,只是我没有找到。但是我找到,别的方法。   对于datetime这个数据类型,我查了好多。存到数据库里的格式是这样的(2019-11-26 17:02:41.893),当我们要查这个时间的数据的时候,就要获得精确到后三位的毫秒,这个就很难过了。因为C#获取的当前时间跟存进在的时间是不一样的。   那么我们存的时候,能不能规定格式,就让DateTime.Now为这样的格式呢("yyyy-MM -dd HH:mm:ss")。相当于舍弃后面的三位毫秒。 答案:Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM -dd HH:mm:ss")) 来源: CSDN 作者: Jeff~李嘉诚 链接: https://blog.csdn.net/weixin_44126152/article/details/103454865

JAVA多线程--线程状态的转换

北城以北 提交于 2019-12-09 11:13:55
一、线程状态 线程状态总的可分为五大状态:分别是生、死、可运行、运行、等待/阻塞。 1、新状态:线程对象已经创建,还没有在其上调用start()方法。 2、可运行状态:当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态。当start()方法调用时,线程首先进入可运行状态。在线程运行之后或者从阻塞、等待或睡眠状态回来后,也返回到可运行状态。 3、运行状态:线程调度程序从可运行池中选择一个线程作为当前线程时线程所处的状态。这也是线程进入运行状态的唯一一种方式。 4、等待/阻塞/睡眠状态:这是线程有资格运行时它所处的状态。实际上这个三状态组合为一种,其共同点是:线程仍旧是活的,但是当前没有条件运行。换句话说,它是可运行的,但是如果某件事件出现,他可能返回到可运行状态。 5、死亡态:当线程的run()方法完成时就认为它死去。这个线程对象也许是活的,但是,它已经不是一个单独执行的线程。线程一旦死亡,就不能复生。 如果在一个死去的线程上调用start()方法,会抛出java.lang.IllegalThreadStateException异常。 二、阻止线程执行 对于线程的阻止,考虑一下三个方面,不考虑IO阻塞的情况: 睡眠; 等待; 因为需要一个对象的锁定而被阻塞。 1、睡眠 Thread.sleep(long millis)和Thread.sleep(long

Java线程:线程状态的转换

无人久伴 提交于 2019-12-09 11:13:30
一、线程状态 线程的状态转换是线程控制的基础。线程状态总的可分为五大状态:分别是生、死、可运行、运行、等待/阻塞。用一个图来描述如下: 1、新状态:线程对象已经创建,还没有在其上调用start()方法。 2、可运行状态:当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态。当start()方法调用时,线程首先进入可运行状态。在线程运行之后或者从阻塞、等待或睡眠状态回来后,也返回到可运行状态。 3、运行状态:线程调度程序从可运行池中选择一个线程作为当前线程时线程所处的状态。这也是线程进入运行状态的唯一一种方式。 4、等待/阻塞/睡眠状态:这是线程有资格运行时它所处的状态。实际上这个三状态组合为一种,其共同点是:线程仍旧是活的,但是当前没有条件运行。换句话说,它是可运行的,但是如果某件事件出现,他可能返回到可运行状态。 5、死亡态:当线程的run()方法完成时就认为它死去。这个线程对象也许是活的,但是,它已经不是一个单独执行的线程。线程一旦死亡,就不能复生。 如果在一个死去的线程上调用start()方法,会抛出java.lang.IllegalThreadStateException异常。 有关详细状态转换图可以参看本人的“ Java多线程编程总结 ”中的图 二、阻止线程执行 对于线程的阻止,考虑一下三个方面,不考虑IO阻塞的情况: 睡眠; 等待;

dom元素主动获取焦点

眉间皱痕 提交于 2019-12-09 08:50:55
我们知道如果一个元素要获取焦点,我们直接点击一下就好了 但是有的时候我们希望有这个样子的效果 当我们点击一个按钮弹出一个输入框 然后马上把焦点聚焦过去 这个时候我们可以使用 focus函数 ( document . getElementsByClassName ( "comment-input" )[ index ]). focus (); 比如 这个样子 但是这个样子有一个问题 如果一开始的时候我们的元素是被隐藏了,或者还没有创建 这个时候就是不行的 我们要进行setTime操作 在angularJs下 $timeout ( function (){ ( document . getElementsByClassName ( "comment-input" )[ index ]). focus (); }, 50 ); 这样就可以在50毫秒以后进行聚焦了 而我们的comment-input元素就会在这50毫秒里面创建出来,使得我们在50毫秒后聚焦成功 来源: CSDN 作者: AboyL 链接: https://blog.csdn.net/AboyL/article/details/78813951

JAVA for和foreach 遍历的效率

做~自己de王妃 提交于 2019-12-09 06:27:58
for循环下标遍历 和 foreach 的原理比较 (JAVA) 今天看问答中又看到了类似的问题,就把自己理解过得写上来吧。去年看面试题也看到过,当时上网找没有搜到有说服力的。后来才弄明白并不是哪个一定好,是要分情况的。 首先需要提到一个很重要的接口:RandomAccess 。里面没有任何实现(标记接口),类似于序列化。作用在于: 能够选择最优的算法来完成随机或者顺序读写。 foreach的实现机制是利用Iterator,等价于: for (Iterator iterator = list.iterator();iterator.hasNext();){ sum += iterator.next(); } 下面简单举两个例子,用ArrayList存100万条数据,LinkedList存10万条数据。然后分别用for和foreah遍历。 其中ArrayList 是实现RandomAccess @Test public void forCompareForeach (){ List<Integer> list = new ArrayList<>( 1000000 ) ; for ( int i = 0 ; i< 1000000 ; i++){ //100万 list.add(i) ; } int temp = 0 ; long start1 = System.

Java for循环和foreach循环的性能比较

亡梦爱人 提交于 2019-12-09 04:56:17
就是有些人循环用的是普通for循环,有些人用的是foreach循环,它们之间有什么区别?应该在什么时候使用这两种循环了? 两种循环的语法格式: 普通for循环语法: for (int i = 0; i < integers.length; i++) { System.out.println(intergers[i]); } foreach 循环语法: for(Integer in : integers){ System.out.println(in); } 今天我们来比较一下两种for循环对ArrayList和LinkList集合的循环性能比较。首先简单的了解一下ArrayList和LinkList的区别: ArrayList:ArrayList是采用数组的形式保存对象的,这种方式将对象放在连续的内存块中,所以插入和删除时比较麻烦,查询比较方便。 LinkList:LinkList是将对象放在独立的空间中,而且每个空间中还保存下一个空间的索引,也就是数据结构中的链表结构,插入和删除比较方便,但是查找很麻烦,要从第一个开始遍历。 下面是我测试的代码: public static void main(String[] args){ //实例化arrayList List<Integer> arrayList = new ArrayList<Integer>(); /