zoukankan      html  css  js  c++  java
  • 周记2018.10.8~10.14

    1. Spring定时任务通过线程池执行,默认coreSize值为1,所以默认是顺序执行的,因此可能会导致线程延后执行。可以通过调整默认线程数来调整线程执行的模式,将 串行 改成 并行。

       参见:https://blog.csdn.net/u011116672/article/details/77132205

    2. BigDecimal除法运算出现java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result的解决办法:

        上网查了一下这个异常的,找到了原因所在:通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. 
      解决的办法就是给divide方法设置精确的小数点,如:divide(xxxxx,2)。

          参见:https://blog.csdn.net/jiangeeq/article/details/70143963

    3. excle 浮点数数据和科学计数法数据处理:

       获取浮点型数据的时候,如果使用double可能会导致精度损失。可以考虑使用BigDecimal。

       在读取excle时,如果有浮点型数据,可以先当成字符串类型,获取到,然后传入到 BigDecimal构造函数中获取:BigDecimal bigDecimal = new BigDecimal(str);

       或者 统一用DecimalFormat对double进行格式化

       参见:https://blog.csdn.net/SungLee_1992/article/details/53033600       https://blog.csdn.net/qq_27093465/article/details/79166410

    4. MAC应用无法打开或文件损坏的处理方法,可能文件本身没问题,是电脑的安全防护。

        参见:http://xclient.info/a/74559ea2-7870-b992-ed53-52a9d988e382.html?t=3d65d507164cd23a7a623df2102d49a44fd92e9c

    5. Spring @Configuration 和 @Component 区别

        一句话概括就是 @Configuration 中所有带 @Bean 注解的方法都会被动态代理,因此调用该方法返回的都是同一个实例。

        具体参见:https://blog.csdn.net/isea533/article/details/78072133

    6. 删除符合条件的记录,错误信息:You can't specify target table "recent_edits" for update in FROM clause

        错误SQL:DELETE FROM recent_edits WHERE trackid NOT IN (SELECT DISTINCT history.trackid FROM history JOIN recent_edits ON history.trackid=recent_edits.trackid GROUP BY recent_edits.trackid)

        正确SQL:DELETE FROM recent_edits  WHERE trackid NOT IN (select * from (SELECT DISTINCT history.trackid FROM history JOIN recent_edits ON history.trackid=recent_edits.trackid GROUP BY recent_edits.trackid) as t);

         参见:https://stackoverflow.com/questions/5816840/delete-i-cant-specify-target-table

     7. maven之可执行jar的构建,需要指定程序入口:解决办法非常简单在pom文件中添加maven插件指定程序入口地址

         参见:http://www.dajiangdahe.com/2017/03/01/maven/

    8. Java图片验证码的生成与验证:https://www.jianshu.com/p/009914797af2

    9. 使用jsoup进行HTML 文档清理,防止  XSS 跨站点攻击之类的。

        参见:https://www.ibm.com/developerworks/cn/java/j-lo-jsouphtml/index.html

    10. CONCAT_WS函数()函数, 表示concat with separator,即有分隔符的字符串连接:concat_ws的参数中有null的话,并非都返回null,例如concat_ws(',','ab',NULL)将输出ab

         参见:https://www.cnblogs.com/locoy/archive/2006/10/28/542751.html     https://my.oschina.net/MiniBu/blog/478342

    11. Zookeeper不停打印错误日志NoClassDefFoundError原因排查:

        刚开始看到NoClassDefFoundError这个错,以为又是缺包少类,或者jar包冲突。但是这个类是ZK的核心包里的类,按道理不应该会没有jar包。况且NoClassDefFoundError和NoClassException多少还是有些区别的。

        总结一下: java.lang.NoClassDefFoundError: org/apache/zookeeper/proto/SetWatches的原因是由于应用程序没有正常启动,而zkClient线程在应用程序进程启动失败前已经正常启动了,所以导致zkClient没有在jvm中找到SetWatches该类。

        参见:http://www.voidcn.com/article/p-nrwbtybp-dr.html

    12. mysql连接字符串使用CONCAT函数:连接字符串是CONCAT函数

         例:mysql> select CONCAT('My', 'S', 'QL');

    13. foreach在in()中的应用:

         方式一:  

    // 接口
    List<User> listUserByIds(Long[] idArray);
    
    // xml
    <foreach collection="array" open="(" close=")" separator="," item="id" index="i">
    #{id}
    </foreach>

         方式二:

    // 自定义collection名
    
    // 接口指定collection名
    List<User> listUserByIds(@Param(value = "idArray") Long[] idArray);
    
    // xml
     <foreach collection="idArray" open="(" close=")" separator="," item="id" index="i">
          #{id}
     </foreach>

         参见:https://blog.csdn.net/qq_15071263/article/details/78128019

    14. 关于 

         MyBatis配置的时候,出现 
         Result Maps collection already contains value for * 
         这个的问题

         字面意思就是某某已经存在,这样的情况下Spring已经注入过一次,

         其中有一种情况就是使用mybatisGenerator生成xml的时候,可能xml的内容不会被覆盖,而是追加到后面,导致xml里面有两份甚至更多的一样的内容,导致重复注入

         另外就是以前遇到的一个问题 
         在mapper中 
          insert 中的parameterType部分,之前我写的是类名,后来改为完整的包名+类名就好用了,这样导致可能是重名的类,也会被认为已经注入过一次,尽量都用完整的包名+类名

         转自:https://blog.csdn.net/JavaMoo/article/details/75449037

    15. linux中vi保存文件时的“Can't open file for writing”:

         分析:

         出现这个错误的原因可能有两个:

         一是当前用户的权限不足;

         二是此文件可能正被其他程序或用户使用。

         第一项的解决方案是在使用vi命令打开文件时,前面加上sudo来临时提供管理员权限,即使用命令“sudo vi 文件名”打开编辑文件。

         由此看来,sudo命令是很有用的,当我们执行某种操作系统提示诸如“operation not permitted”等权限不足信息时,我们很多时候都可以在命令前面加上sudo来解决权限不足问题。

        转自:https://www.cnblogs.com/kongzhongqijing/p/3531506.html

    16. 桌面redis客户端:Redis Desktop Manager On Mac

         参见:https://blog.csdn.net/xidiancoder/article/details/71378551

    17. 运行Maven项目时出现invalid LOC header (bad signature)错误,Tomcat不能正常启动:

         说明Jar包出现了问题。

         那么接下来就要找哪个jar包出现了问题:

          方法1、可通过右击项目名 ->  Run as -> Maven test ,这时控制台会报哪个jar包出错。 (也可以打开DOS命令窗口,切换至项目目录,运行mvn test命令,和Eclipse的控制台输出信息一致)

          方法2、如果方法1未出现任何错误信息,那么就使用笨办法。打开项目中的pom.xml文件,在自己的Maven本地仓库去查找pom.xml文件中每一个dependency节点所对应的jar包版本。一个一个对比,看看是否都正常下载。 

         参见:https://blog.csdn.net/u012660464/article/details/53394549

    18. TCP/IP、Http、Socket的区别,

         参见:https://blog.csdn.net/Pk_zsq/article/details/6087367   https://my.oschina.net/yzbty32/blog/549305

    19. curl命令:

         curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。

         参见:http://man.linuxde.net/curl

    20. 对象属性拷贝工具类:  

    • 手动拷贝(set)
    • 动态代理

           cglib版本:net.sf.cglib.beans.BeanCopier.copy(Object from, Object to, Converter converter)

    • 反射机制

           Spring版本:org.springframework.beans.BeanUtils.copyProperties(Object source, Object target) 

           Apache版本:org.apache.commons.beanutils.PropertyUtils.copyProperties(Object dest, Object orig) 

                              org.apache.commons.beanutils.BeanUtils.copyProperties(Object dest, Object orig)

          DozerMapper

          参见:https://www.cnblogs.com/exceptioneye/p/4852962.html

     21. 倒序索引,用关键字作为key

          参见:http://www.cnblogs.com/zlslch/p/6440114.html

    22. springboot 中在application.yml文件里自定义属性值,配合@Value注解可以在代码中直接取到相应的值。

          参见:https://blog.csdn.net/yuanwanchao/article/details/79279658

    23. 大于等于>=及小于等于<=处理及转义字符

          方法一:使用转移字符  小于:&lt;       大于等于: &gt;=

          方法二:使用CDATA设置SQL:<![CDATA[select * from Product where price >= #{minPrice} and price <= #{maxPrice} ]]>

          参见:https://blog.csdn.net/soonfly/article/details/63369700

    24. MySQL 为日期增加一个时间间隔:date_add()

         now()       //now函数为获取当前时间

         select date_add(now(), interval 1 day); - 加1天

         MySQL 为日期减去一个时间间隔:date_sub()

         参见:https://blog.csdn.net/asdkwq/article/details/77881850

    25. maven + eclipse + tomcat : class not found exception

         参见: https://stackoverflow.com/questions/21222978/maven-eclipse-tomcat-class-not-found-exception

    26. mac下nginx的安装和配置:https://www.jianshu.com/p/026d67cc6cb1

    27. java 验证框架oval的使用方法:https://blog.csdn.net/neweastsun/article/details/50473717

  • 相关阅读:
    使用定时器实现获取手机验证码倒计时
    搜索历史管理
    利用vue和jQuery实现中国主要城市搜索与选择
    使用vue、jQuery生成带有logo的二维码
    使用vue-cli脚手架搭建Vue项目
    postcss-px-to-viewport
    git命令操作篇
    小程序中live-player
    对于常用数组的方法总结
    css的加载中动画
  • 原文地址:https://www.cnblogs.com/Jtianlin/p/9776978.html
Copyright © 2011-2022 走看看