2014-09-16 summer
因为特定需求,需要在linux系统下面进行安装JDK,需要在linux中写成shell脚本,安装JDK并且设置环境变量。linux中JDK的安装比较简单,直接解压缩即可。但是接下来设置环境变量可是困难了本人不久,毕竟shell脚本没有接触过。 继续阅读 »
2016-08-15 craneyuan
前言 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 TreeMap 基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。 HashMap HashMap的值是没有顺序的,它是按照key的HashCode来实现的,对于这个无序的HashMap我们要怎么来实现排序呢?参照TreeMap的value排序。 Map.Entry返回Collections视图。 按key排序 TreeMap默认是升序的 继续阅读 »
2017-08-01 summer
问题描述 在学习AES算法时,从互联网上找了例子,但是在自己运行下一直报错,错误信息如下: ``` javax.crypto.BadPaddingException: Given final block not properly padded at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:811) at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:676) at com.sun.crypto.provider.AESCipher.engineDoFina 继续阅读 »
2016-01-10 veryyoung
为什么需要热部署? Java 程序员最幸福的事情是可以在等程序编译的时候泡 Java!!(开个玩笑) more 热部署的方案 Tomcat Reload Eclipse Debug 模式 IDEA Reload Jetty Jrebel 继续阅读 »
2017-05-10 Lauzy
在项目开发中,大部分 Android 开发者都使用过 ButterKnife 这个通过注解简化代码的框架。部分 Android 开发者也使用过 xUtils 这种快速开发的框架。 两者均使用到了注解。在上一篇 Java注解、反射,安卓IOC(一) 中我们知道了注解及反射的用法。本篇会分别介绍下其实现机制。 运行时注解 首先我们自己简单实现类似 xUtils 这种运行时注解框架。 绑定 View 控件 创建注解: ```java @Retention(RetentionPolicy.RUNTIME)//运行时注解 @Target(ElementType.FIELD)//Target为属性 public @interface 继续阅读 »
2015-09-16 Piasy
建议:函数调用的时候,调用方传给被调用方的参数,如果在调用之后还会被修改,那么调用方应该给被调用方传一个当时的拷贝,深拷贝,否则将会导致潜在的bug: 可能被调用方是异步执行的,如果调用函数之后,参数发生了修改,那么被调用方执行的时候,看到的就是被修改之后的数据,这将导致严重、隐蔽、非必现的BUG,而这种BUG是最让人头疼的 可能被调用方会修改传入的参数,这就导致函数执行完毕之后,调用方看到的数据发生了非预期的变化,这同样会导致严重、隐蔽的BUG 继续阅读 »
2017-02-05 高悦翔
本文是「Java 8 函数式编程」第二章的读书笔记。 Lambda引入的变化 Lambda表达式,是一种紧凑的、传递行为的方式,从编程思想上来讲,就是代码即数据。 过去的Java中,存在大量的匿名内部类的使用,会新建一个匿名内部类传入调用的方法中。这种传统的方式,会造成冗余的、不易阅读的代码。 继续阅读 »
2017-02-14 blademainer
一 编程规约 (一) 命名规约 (二) 常量定义 (三) 格式规约 (四) OOP规约 (五) 集合处理 (六) 并发处理 (七) 控制语句 (八) 注释规约 (九) 其它 二 异常日志 (一) 异常处理 (二) 日志规约 三 MySQL规约 (一) 建表规约 (二) 索引规约 (三) SQL规约 (四) ORM规约 四 工程规约 (一) 应用分层 (二) 二方库规约 (三) 服务器规约 五 安全规约 * * * more 一 编程规约    (一)命名规约  【强制】 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 继续阅读 »
2017-02-06 高悦翔
本文是「Java 8 函数式编程」第三章的读书笔记,章名为流。本章主要介绍了外部迭代与内部迭代以及常用的高阶函数。 外部迭代与内部迭代 外部迭代 过去我们要对一个List进行迭代时,往往会采用如下方式: java int count = 0; for (Artist artist : artists) { if (artist.isFrom("London")) { count++; } } 继续阅读 »
2015-11-09 veryyoung
Java 最强大的就是其丰富的解决方案。 下面分享几个比较 Nice 的方案,其中有些能让 Java 开发变得简单和优雅!^_^ more 1. Apache Commons 继续阅读 »