源码|使用FutureTask的正确姿势
线程池的实现核心之一是FutureTask。在提交任务时,用户实现的Callable实例task会被包装为FutureTask实例ftask;提交后任务异步执行,无需用户关心;当用户需要时,再调用FutureTask#get()获取结果——或异常。随之而来的问题是,如何优雅的获取ftask的结果并处理异常?本文讨论使用FutureTask的正确姿势。JDK版本:oraclejava1.8.0_10
synchronized修饰方法时的误解
以前一直没注意synchronized关键字在修饰方法时候的问题,今天偶然看HashTable的时候突然觉得自己有个误区,不知道各位大神是否有在意。个人一直以为synchronized修饰方法是锁的是方法,一个对象的方法同一时刻只能有一个线程获取到锁,而想当然的认为一个对象其他synchronized方法之间是不互斥的。例如: public synchronized V get(Object ke
坑人的MYSQL 5.5,不支持字段类型为datetime且默认值为N
复制过来的建表语句如下:DROPTABLEIFEXISTS`sys_role_user`;CREATETABLE`sys_role_user`(`id`int(11)NOTNULLAUTO_INCREMENT,`role_id`int(11)NOTNULLCOMMENT'角色id',`user_id`int(11)NOTNULLCOMMENT'用户id',`operator`varchar(20)
CPQuery, 解决拼接SQL的新方法
阅读目录开始CPQuery是什么?参数化的SQL语句改造现有的拼接语句揭秘原因CPQuery源码CPQuery的已知问题以及解决方法更多CPQuery示例CPQuery的设计目标及使用建议友情提示我一直都不喜欢在访问数据库时采用拼接SQL的方法,原因有以下几点:1.不安全:有被SQL注入的风险。2.可能会影响性能:每条SQL语句都需要数据库引擎执行[语句分析]之类的开销。3.影响代码的可维护性:S
PHP 随机用户名账号的生成
随机生成难点是在于如何避免碰撞,有人说用md5,GUID这些机制啊,当然可以,但是做为账号,看着有乱,而且生成位数也过长。本方法只需要解决1秒内的并发碰撞就可以,因为固定头部采用的是unixtime时间,精确到秒,超过1秒,这个头部的时间肯定变化了。同时本方法也可以用户随机订单编号的生成。测试条件是用循环创建1万个随机账号(毫秒级),0碰撞,10万个大约有0-3个碰撞。应该没有哪个互联网公司会在瞬
PHP高级编程中关于PHP函数的介绍
PHP函数在PHP中,函数是一段PHP代码的集合,通过调用函数就可以执行一些任务或返回一些结果。PHP脚本通常是由主程序和函数构成的,这些函数不仅构成了PHP脚本的主要功能,也实现了程序代码的结构化,方便他人阅读。函数可以分为用户自定义函数和系统函数,用户自定义函数是有用户自行编写实现的,功能也由用户所编写的代码来决定。系统函数是PHP系统或扩展库内置的函数,这些函数一般已经存在,直接调用即可。一
Spring JDBCTemplate使用JNDI数据源
xml配置:1 3 4 5 6 7 在weblogic/jboss中配置好JNDI数据源后,上述节点改为:1 2 3 java:/ssoDS4 5 其中:第3行的java:/ssoDS即为web容器中配置好的jndi数据源名称 其它地方不用任何修改
感知机对偶形式C++实现
下面直接上代码,此处我用的是C++代码用STL中的向量实现存储,当然也可以用数组或者其他方式,感知机的对偶形式代码如下:#include #include #include #include #include using namespace std;void input_init();void train();bool judge(int i);void output();void gram();
Java数据结构与算法解析(一)——表
本节我们讨论常见常用的数据结构——表。如果要通俗简单的说什么是表,那我们可以这样说:按顺序排好的元素集合就是表。原文出处
30分钟学会用scikit-learn的基本回归方法(线性、决策树、S
注:本教程是本人尝试使用scikit-learn的一些经验,scikit-learn真的超级容易上手,简单实用。30分钟学会用调用基本的回归方法和集成方法应该是够了。本文主要参考了scikit-learn的官方网站前言:本教程主要使用了numpy的最最基本的功能,用于生成数据,matplotlib用于绘图,scikit-learn用于调用机器学习方法。如果你不熟悉他们(我也不熟悉),没关系,看看n
rails的时间选择器
rails表单中的时间选择器开启时段从'time_select',:ignore_date=>true%>开始启用到'time_select',:ignore_date=>true%>停用
日常问题整理(项目环境)
1、jdk1.7换成jdk1.8使用的jdk1.7要升级成jdk1.8。下载1.8之后安装,高级系统设置中的JAVA_HOME路径改成1.8的文件路径。cmd命令界面输入java-version报错:hasvalue1.7,but1.8isrequired.查询之后发现是注册文件版本没有改过来的导致的。在注册文件输入“regedit”,回车,打开注册表编辑器。HKEY_LOCAL_MACHINE–
拦截配置器xml文件中span标签报错
第一、xml里面的版本为3.1第二、span标签无法识别问题描述:在version的版本为3.1的情况下,span标签无法识别,需要将版本改为3.2,即可识别。第三、修改过后,错误消失。
实现jQuery对象跟DOM对象互换
在学习了jQuery之后,我们知道jQuery对象中无法使用DOM对象的任何方法,当然DOM对象中也不允许使用jQuery对象的方法。jQuery对象转成DOM对象第一种方法:可以通过[index]方法得到对应的DOM对象jQuery代码如下:var$oDiv=$("div");//jQuery对象varoDiv=$oDiv[0];//DOM对象第二种方法:可以通过get(index)方法来得到对
js 字符串 replace replaceAll
varstr="男的女的老的少的";alert(str.replace('的',''));可以看到替换后的str的值为"男女的老的少的",replace(str1,str2)方法替换的只是第一个匹配的字符串,那么如何实现替换全部匹配的字符串呢?在java语言中有给出的replaceAll方法能够实现这样的功能,但很遗憾javascript没有提供这样的方法,但replace方法要比我们想象的强大,
树的三种遍历顺序,规则和性质
二叉树的遍历分为以下三种:先序遍历:遍历顺序规则为【根左右】中序遍历:遍历顺序规则为【左根右】后序遍历:遍历顺序规则为【左右根】什么是【根左右】?就是先遍历根,再遍历左孩子,最后遍历右孩子;举个例子,看下图(图从网上找的): 先序遍历:ABCDEFGHK中序遍历:BDCAEHGKF后序遍历:DCBHKGFEA2,树的性质1,树根和任何节点之间存在唯一的一条路径。(可以确定每个节点到根节点长度。也就
if括号里填中文这样可以吗
if(a==哈哈)System.out.print("嘻嘻");elseSystem.out.print("嘻嘻");这样能行吗
做多个html页面 可以把共同的东西只写一次然后引用?
很多页面导航和底部内容一样同事说可以只写一个然后其他页面引用改的时候只改一个就好了他说用include实现但具体怎么写他也不记得了所以请问这应该怎么实现?
如何保证共享变量的原子性?
线程安全性是我们在进行Java并发编程的时候必须要先考虑清楚的一个问题。这个类在单线程环境下是没有问题的,那么我们就能确保它在多线程并发的情况下表现出正确的行为吗?我这个人,在没有副业之前,一心扑在工
Karatsuba 大整数乘法算法
我们平时接触的长乘法,按位相乘,是一种时间复杂度为O(n^2)的算法。今天,我们来介绍一种,时间复杂度为O(n^log3)的大整数乘法(log表示以2为底的对数)。介绍原理karatsuba算法要求乘