首页 文章 新番
动漫 学习 生活 日记 书籍 服务器 Bing
  • SimpleDateFormat的线程安全问题

    今天数据库保存的时间有错乱了,以前我以为是服务器的时间有问题,今天才发现原来是`SimpleDateFormat`这个类的`format`方法不是线程安全的,里面使用的`calendar`是个类变量,所以导致多线程静态对象出现了数据错乱或以下的一些异常:```Exceptioninthread"pool-1-thread-123"java.lang.NumberFormatException:Forinputstring:""atjava.lang.NumberFormatException.forInputString(NumberFormatException.java:65)atjava.lang.Long.parseLong(Long.java:601)atjava.lang.Long.parseLong(Long.java:631)atjava.text.DigitList.getLong(DigitList.java:195)atjava.text.DecimalFormat.parse(DecimalFormat.java:2051)atjava.text.SimpleDateFormat.su...

    2017年02月07日 Java SimpleDateFormat
  • 微信链接跳转

    今天发现一个奇怪的事情,微信里面比较长的URL复制到对话框和使用JS跳转都不能访问。但是使用重定向却可以,感觉是被微信给屏蔽了。短一点的链接没问题,长的链接基本上GG。解决办法正在寻觅中。其实问题很简单,URL里面带有**localhost**关键字。

    2017年01月16日 微信
  • 思考问题

    1.确认问题2.引发问题的所有因素数值的正负、字符串长度、空值、异常、网络等等3.需要达到的目标4.修改和修改后有可能引发的连锁反应>参考:[https://www.douban.com/group/topic/40236353/](https://www.douban.com/group/topic/40236353/)[https://www.zhihu.com/question/20962587](https://www.zhihu.com/question/20962587)

    2017年01月09日 思考问题
  • @media中max-width和max-device-width

    `max-device-width`和`max-width`的区别:1.`max-device-width`是设备整个显示区域的宽度,例如,真实的设备屏幕宽度。2.`max-width`是目标显示区域的宽度,例如,浏览器宽度。3.如果使用`max-device-width`,那么在PC浏览器上浏览网页时,缩小或放大浏览器时是不执行CSS的,因为“PC设备”没有变化。但如果使用`max-width`,缩小或放大浏览器时是执行CSS的,因为“显示区域”即浏览器大小发生了变化。4.如果使用`max-device-width`,那么当手机由竖变横时,CSS是不执行的,因为“手机宽度”并没有变化。如果使用`max-width`,那么当手机由竖变横时,CSS是执行的,因为“显示区域”发生了变化。5.通常,面向“移动设备”用户使用`max-device-width`;面向“PC设备”用户使用`max-width`。另外使用`@mediascreenand(max-width:1200px){html{font-size:18px;}}`这样设置的时候,最好使用的`max-xxxx`进行判断。`@mediaonlyscree...

    2016年12月22日 @media max-width max-device-width
  • Calendar

    之前定时任务一直没有问题,今天把时间改为上午所有任务都要执行完成,然后发现了居然一直再重试相同的几个任务。问题就是时间的问题:```javaCalendarnow=Calendar.getInstance();now.setTime(newDate());now.set(Calendar.HOUR,0);now.set(Calendar.MINUTE,0);now.set(Calendar.SECOND,0);now.set(Calendar.MILLISECOND,0);```上面的代码,如果是上午执行,结果`yyyy-MM-dd-00:00:00`,下午的时候就会变成`yyyy-MM-dd-12:00:00`,就是这个问题导致了时间比较的时候出了问题。所以应该使用**HOUR_OF_DAY**。```javaCalendarnow=Calendar.getInstance();now.setTime(newDate());now.set(Calendar.HOUR_OF_DAY,0);now.set(Calendar.MINUTE,0);now.set(Calendar.SECOND,0);now.set...

    2016年12月09日 Calendar
  • 统计Spring定时任务当天执行次数

    以下代码为统计Spring定时任务当天执行的次数:```java/***定时任务统计*/publicclassCronCountUtils{/***计算一天内定时任务执行次数*@paramexpression表达式*@return执行次数*/publicstaticfinalintcount(Stringexpression){returncount(null,expression);}/***计算一天内定时任务执行次数*@paramdate时间*@paramexpression表达式*@return执行次数*/publicstaticfinalintcount(Datedate,Stringexpression){CronSequenceGeneratorgenerator=newCronSequenceGenerator(expression,TimeZone.getDefault());Calendarcalendar=Calendar.getInstance();calendar.set(Calendar.HOUR_OF_DAY,0);calendar.set(Calendar.MINUTE,0);c...

    2016年11月28日 Spring 定时任务
  • HTML5不刷新页面修改地址栏

    现在很多页面都是用`ajax`来进行数据交互,但是有些场景就会比较尴尬,比如个人中心,进去点修改密码,但是地址栏没有变,下次复制地址后进来还是个人中心,并不是修改密码,所以就有了这个`history.pushState`这个东西,直接修改地址栏的地址。废话就这么多,看代码:```javascripthistory.pushState(state,title,url);````state`:状态参数,通过`history.state`可以获取,其他页面跳转的值为`null``title`:页面标题(不过好像并没有什么用)`url`:修改后的地址这个修改地址栏后放入到`history`里面,使用`history.back`,`history.go`或者浏览器的前进后退都有效果。还有一个`history.replaceState`这个不会放入到`history`中,只能修改当前地址。DEMO地址:[http://www.acgist.com/demo/history/index.html](http://www.acgist.com/demo/history/index.html)>参考文章:[http://...

    2016年10月13日 history HTML5 修改地址栏
  • WordPress固定连接

    使用固定连接更加有利于SEO,URL也更加优美。开启方法如下:*修改`httpd.conf`,开启网站目录的重写功能:```OptionsFollowSymLinksAllowOverrideNone```改为:```OptionsFollowSymLinksAllowOverrideAll```*在你的网站根目录,添加`.htaccess`文件:```bashtouch.htaccess```*然后修改用户为Apache,这样就不用手动修改,直接在后台固定连接配置就可以了:```bashchown-Rapache:apache.htaccess```

    2016年10月08日 WordPress 静态化 固定连接
  • WordPress没有写入权限

    使用WordPress上传图片时,提示:`WordPress解决无法建立目录wp-content/uploads/yyyy/MM,有没有上级目录的写权限。`这个其实很简单就是你运行WordPress的时候,用户没有这个文件的写入权限。解决办法:*建立uploads文件夹,假设WordPress的目录为:`/home/www````bashcd/home/www/wp-contentmkdirsuplaods```*查看运行WordPress的用户,假设使用的Apache作为http服务器```bashpsaux|grephttpd```如下图:![Apache用户名](//static.acgist.com/resources/images/article/201609/14749429897021001.png)apache就是用户名,将uploads的用户改为apache:```bashchown-Rapacheuploadschown-Rapache:apacheuplaods```后面一条是把uploads的用户和用户组都改为apache,然后你就可以上传文件了。当然应该还可以直接将Apache的用户...

    2016年09月27日 WordPress 文件上传
  • CentOS安装WordPress

    安装PHP/MySQL/httpd(一般Apache默认安装好了)```bashyuminstallmysqlmysql-servermysql-develyuminstallphpyuminstallhttpd```启动命令:```bashservicemysqldstart/stop/restartservicehttpdstart/stop/restart```设置MySQL密码和外网访问,修改后需要重启MySQL服务:```sqlmysqlusemsyql;updateusersetpassword=password("password")whereuser='root';GRANTALLPRIVILEGESON*.*TO'root'@'%'IDENTIFIEDBY'password'WITHGRANTOPTION;FLUSHPRIVILEGES;```修改`/etc/httpd/conf/httpd.conf`修改默认目录(假设你的WordPress目录为`/home/www/html`):```DocumentRoot"/home/www/html"```如果提示`您的PHP似乎没有安装运行Wor...

    2016年09月23日 CentOS WordPress
  • Java总结

    总结一些编码的注意事项:1.变量使用前一定要判断空值。2.方法尽可能的拆分为不同用途的小方法,减少每个方法的行数,尽量复用代码。3.Spring定时器中`00/4006-07**?`这个写法,执行的时间不是`6:00/6:40/7:20`而是`6:00/6:40/7:00/7:40`这样,是每个小时分开的。##隐式转换```shorta=1;a+=1;//正确a=a+1;//报错```##字符串拼接```Stringa="1";Stringb="2";Stringc=a+b;//StringBuilder```##float```floata=1.1;//错误```##连接接入连接接入注意管理,防止内存泄露,可以考虑使用`WeakHashMap`。##@SafeVarargs```java@SafeVarargspublicfinalTof(List...list){//...}```>必须是final方法##Java监控Java启动本地监控自动启动,如果需要远程监控可以使用JMX。本地RMI随机端口远程JMX指定端口:代码(RMI/HTTP)或者命令参数本地监控端口随机(自带):jconsole

    2016年09月12日 Java
  • 常见场景问题整理及解决办法

    一般场景应该想到的问题和解决办法。提交表单:*重复提交:*禁止刷新*处理完成重定向*Token*返回上一页:*在新窗口打开*ajax提交

    2016年09月09日 常见问题
  • URL参数转换

    将URL参数转为MAP或者JSON格式DEMO地址:[http://www.acgist.com/demo/url-map/index.html](http://www.acgist.com/demo/url-map/index.html)

    2016年09月02日 URL2MAP URL2JSON URL转MAP URL转JSON
  • Hadoop启动不了

    执行`start-dfs.sh`后提示:```Error:JAVA_HOMEisnotsetandcouldnotbefound.```但是`JAVA_HOME`确实配置正确的,怎么办?这是我们直接去修改`/etc/hadoop/hadoop-env.sh`(Hadoop相对路径下面)设置JAVA_HOME。原配置:```bashexportJAVA_HOME=${JAVA_HOME}```改为:```bashexportJAVA_HOME=/usr/java/jdk1.8.0_101```Hadoop安装资料:[http://www.powerxing.com/install-hadoop/](http://www.powerxing.com/install-hadoop/)[http://www.cnblogs.com/laov/p/3421479.html](http://www.cnblogs.com/laov/p/3421479.html)

    2016年08月17日 start-dfs.sh Hadoop
  • 手机浏览器数字输入

    手机浏览器的`input`为数字的时候输入法会自动切换到数字输入模式,非常的方便。```html```但是一些验证框架就出现了非常多的问题,数字中间有空格的时候,也可以通过验证。

    2016年08月01日 手机浏览器 input number
  • 小黄书

    最近终于把小黄书写完了,最近需要找很多的聊天记录导入到系统里面。小黄书是一个自己做的一个聊天机器人,功能可能不够强大,但是希望以后慢慢学习完善。功能分几部分:1.分词,这个本来想用现成的,但是最后还是自己写了。词库用的[IK分词的词库](http://git.oschina.net/wltea/IK-Analyzer-2012FF)2.词语分类3.句子抽象,其实就是将句子分词,然后进行词语分类匹配,组装为抽象句子4.句子最优匹配5.抽象句子实体化,根据聊天的上下文将词语分类反向生成句子6.句子转为语音,讯飞文本转语音基本思路:句子分词后,相同的词语后面跟随的词语词义可能是一样的。例如:```我喜欢吃苹果。我喜欢吃李子。```>苹果和李子同时水果。大量的出现时归为一类,然后将句子抽象,然后每一个对话归为一个场景,使用类型来获取上下文的代指词语。

    2016年07月24日 小黄书 聊天机器人
  • Servlet3.0文件上传

    Servlet3.0可以使用注解,而且文件上传也比以前简单多了。代码如下:```java/***文件上传*/@MultipartConfig@WebServlet(name="UploadServlet",urlPatterns="/upload")publicclassUploadServletextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;@OverrideprotectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//request.getPart("file");//单个文件file是input的nameCollectionparts=request.getParts();//多个文件for(Partpart:parts){part.write("文件路径");}}}```注意Servlet上面的注解`MultipartConfig`,没有会提示以下错误:```Unable...

    2016年07月24日 Servlet3.0 文件上传
  • a标签href的其他用法

    *拨打电话:```13888888888```*发送短信:```发送信息```*发送邮件:```发送邮件```*打开应用市场:```下载神女控```

    2016年07月22日 a标签 href 拨号 发短信 发邮件
  • 网页截图

    使用JS插件`html2canvas.js`将网页转为`canvas`:```javascripthtml2canvas(document.body,{onrendered:function(canvas){//操作画布对象}});```然后将画布转为图片:```javascriptvarimage=canvas.toDataURL("image/png");```如果需要下载:```javascriptvar$download=$('');$download.appendTo("body");varimage=canvas.toDataURL("image/png").replace("image/png","image/octet-stream;");$download.attr("href",image);$download.attr("download","image.png");//下载文件名//$download.trigger("click");//jQuery模拟点击事件无效varevent=document.createEvent("MouseEvents");//模拟点击事件event.i...

    2016年07月12日 网页截图 网页快照 html2canvas html2image
  • Spring判断当天最后一次定时任务

    要判断当天最后一次定时任务思路:获取下次执行时间,判断日期是不是今天。```java@AutowiredprivateApplicationContextcontext;...//获取正确的定时任务时间表达式Maptasks=context.getBeansOfType(CronTask.class);Stringexpression=null;//时间表达式Setkeys=tasks.keySet();for(Stringkey:keys){CronTasktask=tasks.get(key);ScheduledMethodRunnablerunnable=(ScheduledMethodRunnable)task.getRunnable();if("方法名".equals(runnable.getMethod().getName())){expression=task.getExpression();break;}}//获取下次执行时间CronTriggercronTrigger=newCronTrigger(expression);Datenext=cronTrigger.nextExecutionT...

    2016年07月01日 Spring 定时任务
1...16171819202122...31

关于 ACGIST

Copyright © 2013-2025 ACGIST.COM. All Rights Reserved.