Java
文章平均质量分 81
崩豆
这个作者很懒,什么都没留下…
展开
-
ProtocolBuffer使用入门
一. 获取Protocol Buffer1.1 获得源码Github:ProtocolBuffer源码Git clone之:git clone https://github.com/google/protobuf.git或者直接下载release版本:https://github.com/google/protobuf/releases本例选择从release下载3.5.1版...原创 2018-06-17 17:49:50 · 1984 阅读 · 0 评论 -
Java 编码规范15(工程结构)
工程结构其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-OOP规约) Java 编码规范5(编程规约-集合处理) Java 编码规范6(编程规约-并发处理) Java 编码规范7(编程规约-控制语句) Java 编码规范8(编程规约-注释规约与其...原创 2018-04-08 00:10:52 · 955 阅读 · 2 评论 -
Java 编码规范14(MySQL-SQL语句与ORM映射)
一. SQL语句其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-OOP规约) Java 编码规范5(编程规约-集合处理) Java 编码规范6(编程规约-并发处理) Java 编码规范7(编程规约-控制语句) Java 编码规范8(编程规约-注释...原创 2018-04-08 00:10:03 · 782 阅读 · 0 评论 -
Java 编码规范13(MySQL-索引规约)
MySQL-索引规约其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-OOP规约) Java 编码规范5(编程规约-集合处理) Java 编码规范6(编程规约-并发处理) Java 编码规范7(编程规约-控制语句) Java 编码规范8(编程规约-...原创 2018-04-08 00:09:30 · 397 阅读 · 0 评论 -
Java 编码规范12(MySQL-建表规约)
MySQL-建表规约其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-OOP规约) Java 编码规范5(编程规约-集合处理) Java 编码规范6(编程规约-并发处理) Java 编码规范7(编程规约-控制语句) Java 编码规范8(编程规约-...原创 2018-04-08 00:08:48 · 459 阅读 · 0 评论 -
Java 编码规范11(安全规约)
安全规约其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-OOP规约) Java 编码规范5(编程规约-集合处理) Java 编码规范6(编程规约-并发处理) Java 编码规范7(编程规约-控制语句) Java 编码规范8(编程规约-注释规约与其...原创 2018-04-08 00:07:51 · 2322 阅读 · 0 评论 -
Effective Java读书笔记二六(Java Tips.Day.26)
TIP 74 谨慎地实现Serializable接口序列化 将一个对象编码成一个字节流,称作对象的序列化。 相反的过程则是反序列化。原创 2017-07-20 16:20:13 · 368 阅读 · 0 评论 -
Effective Java读书笔记二五(Java Tips.Day.25)
TIP 71 慎用延迟初始化除非绝对必要,否则就不要这么做。大多数情况,正常的初始化要优先于延迟初始化。如果要使用延迟初始化,就要使用同步访问方法。如果出于性能考虑,而需要对静态域使用延迟初始化,就使用懒汉holder class模式。public class Test1 { private static FieldType getField(){ return F原创 2017-06-07 01:04:16 · 330 阅读 · 0 评论 -
Effective Java读书笔记二十(Java Tips.Day.20)
TIP 71 慎用延迟初始化除非绝对必要,否则就不要这么做。大多数情况,正常的初始化要优先于延迟初始化。如果要使用延迟初始化,就要使用同步访问方法。如果出于性能考虑,而需要对静态域使用延迟初始化,就使用懒汉holder class模式。public class Test1 { private static FieldType getField(){ return F原创 2017-05-24 01:11:58 · 351 阅读 · 0 评论 -
Effective Java读书笔记十九(Java Tips.Day.19)
TIP 51 当心字符串连接的性能不要对字符串用+连接,这个大家都懂的,String是不可变对象,每次连接都会额外创建一个对象,造成不必要的开销。如果连接数量很多,性能就会显著下降。请使用StringBuffer或StringBuilder来处理这类需求。如果在多线程并发的环境下,请使用StringBuffer类,因为它是线程安全的。如果你能确定运行环境是单线程,可以使用StringBuilder。原创 2017-05-22 01:55:29 · 383 阅读 · 0 评论 -
Java 编码规范1(编程规约-命名风格)
编程规约-命名风格其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-OOP规约) Java 编码规范5(编程规约-集合处理) Java 编码规范6(编程规约-并发处理) Java 编码规范7(编程规约-控制语句) Java 编码规范8(编程规约-注...原创 2018-04-07 01:14:40 · 1281 阅读 · 0 评论 -
Java 编码规范2(编程规约-常量定义)
编程规约-常量定义其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-OOP规约) Java 编码规范5(编程规约-集合处理) Java 编码规范6(编程规约-并发处理) Java 编码规范7(编程规约-控制语句) Java 编码规范8(编程规约-注...原创 2018-04-07 01:16:39 · 1036 阅读 · 0 评论 -
leetcode之旅-无重复字符的最大子串长度
一. 题目描述Given a string, find the length of the longest substring without repeating characters. - Examples: - Given “abcabcbb”, the answer is “abc”, which the length is 3. - Given “bbbbb”, ...原创 2018-06-24 04:26:27 · 493 阅读 · 0 评论 -
Java 编码规范10(单元测试)
单元测试其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-OOP规约) Java 编码规范5(编程规约-集合处理) Java 编码规范6(编程规约-并发处理) Java 编码规范7(编程规约-控制语句) Java 编码规范8(编程规约-注释规约与其...原创 2018-04-07 01:25:58 · 1158 阅读 · 2 评论 -
Java 编码规范9(异常日志)
一. 异常处理[强制] Java 类库中定义的可以通过预检查方式规避的RuntimeException异常不应该通过catch 的方式来处理,比如:NullPointerException,IndexOutOfBoundsException等等。 说明:无法通过预检查的异常除外,比如,在解析字符串形式的数字时,不得不通过catch NumberFormatException来实现。 ...原创 2018-04-07 01:25:21 · 1842 阅读 · 0 评论 -
Java 编码规范8(编程规约-注释规约与其它)
注释规约与其它其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-OOP规约) Java 编码规范5(编程规约-集合处理) Java 编码规范6(编程规约-并发处理) Java 编码规范7(编程规约-控制语句) Java 编码规范8(编程规约-注释规...原创 2018-04-07 01:24:32 · 1026 阅读 · 0 评论 -
Java 编码规范7(编程规约-控制语句)
控制语句其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-OOP规约) Java 编码规范5(编程规约-集合处理) Java 编码规范6(编程规约-并发处理) Java 编码规范7(编程规约-控制语句) Java 编码规范8(编程规约-注释规约与其...原创 2018-04-07 01:23:29 · 496 阅读 · 0 评论 -
Java 编码规范6(编程规约-并发处理)
并发处理其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-OOP规约) Java 编码规范5(编程规约-集合处理) Java 编码规范6(编程规约-并发处理) Java 编码规范7(编程规约-控制语句) Java 编码规范8(编程规约-注释规约与其...原创 2018-04-07 01:22:51 · 626 阅读 · 0 评论 -
Java 编码规范5(编程规约-集合处理)
集合处理其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-OOP规约) Java 编码规范5(编程规约-集合处理) Java 编码规范6(编程规约-并发处理) Java 编码规范7(编程规约-控制语句) Java 编码规范8(编程规约-注释规约与其...原创 2018-04-07 01:20:38 · 558 阅读 · 0 评论 -
Java 编码规范4(编程规约-OOP规约)
编程规约-OOP规约其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-OOP规约) Java 编码规范5(编程规约-集合处理) Java 编码规范6(编程规约-并发处理) Java 编码规范7(编程规约-控制语句) Java 编码规范8(编程规约-...原创 2018-04-07 01:18:49 · 747 阅读 · 0 评论 -
Java 编码规范3(编程规约-代码格式)
代码格式其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-OOP规约) Java 编码规范5(编程规约-集合处理) Java 编码规范6(编程规约-并发处理) Java 编码规范7(编程规约-控制语句) Java 编码规范8(编程规约-注释规约与其...原创 2018-04-07 01:17:25 · 824 阅读 · 0 评论 -
Effective Java读书笔记二四(Java Tips.Day.24)
TIP 68 executor 和 task 优先于线程使用Java 1.5提供的Executor Framework,代替Thread来执行并发任务。如果执行多线程任务,还可以开启缓存线程池。如果负载较重,可以开启固定线程数的线程池。尽量不直接使用线程,使用executor service 执行任务。 可以使用 ScheduledExecutorService代替 jav原创 2017-06-06 01:20:48 · 325 阅读 · 0 评论 -
Effective Java读书笔记十七(Java Tips.Day.17)
TIP 45 将局部变量的作用域最小化最佳方法:在第一次使用局部变量的地方声明。你无须在方法一开始就声明局部变量,这是一种旧习——你out了。 几乎每个局部变量的声明都应包含一个初始化表达式。try-catch语句块的情况有点特殊。如果一个变量被一个方法初始化,而这个方法可能抛出一个受检的异常(check exception), 那么该变量必须在try块的内部初始化。在循环中,允许声明一个循原创 2017-05-19 18:40:21 · 295 阅读 · 0 评论 -
手把手教你使用jni双向调用
一、需求: 项目为cocos2d-X开发的游戏,需要为android版本添加微信分享, 具体是在游戏界面中添加一个分享按钮,点击该按钮即可分享。 最终考虑通过jni,在C/C++层通过jni调用微信AnroidSDK。 在分享成功后,在java层调用C++层使角色复活.二、本地(native)调用java代码:分享按钮应该是在游戏中,也就是C原创 2014-02-24 10:52:43 · 1157 阅读 · 0 评论 -
Effective Java读书笔记一(Java Tips.Day.1)
Tip1. 考虑用静态工厂方法替代构造器优势静态工厂方法有名称,能够确切的描述正被返回的对象。当一个类需要多个相同签名的构造器时,用静态工厂方法替代它们。静态工厂方法不必在每次调用它们的时候都创建一个新对象。这可以用于实现实例受控的类,包括单例、FlyWeight模式、不可变类的实例equals问题、枚举类等等。静态工厂方法可以返回原返回类型的任何子类型的对象。这样的接口可以返回对象,又不会原创 2016-11-16 10:20:14 · 4185 阅读 · 0 评论 -
Effective Java读书笔记三(Java Tips.Day.3)
TIP13.使类和成员的可访问性最小化(封装)实例域决不能是公有的不应当具有公有的静态final数组域,或者返回这种域的方法。作为替代,你可以使公有数组变成私有的,并增加一个公有的不可变列表:private static final Thing[] VALUES[] = {...};public static final List<Thing> VALUES = Collections.un原创 2016-11-18 17:16:17 · 629 阅读 · 0 评论 -
Effective Java读书笔记四(Java Tips.Day.4)
TIP17.要么为继承而设计,并提供文档说明,要么就禁止继承对于专门为了继承而设计的类,首先,文档必须精确的描述覆盖每个方法带来的影响,必须说明它可覆盖的方法的自用性。对于每个public或protected的方法或构造器,必须指明它们调用哪些可覆盖的方法,是以什么顺序调用的,每个调用的结果又是如何影响后续的处理过程的。类必须通过某种形式的钩子,以便能进入它的内部工作流程中,一原创 2016-11-30 16:02:51 · 542 阅读 · 0 评论 -
Effective Java读书笔记六(Java Tips.Day.6)
消除非受检警告尽可能的消除每一个unchecked警告。 如果无法消除警告,同时可以证明引起警告的代码是类型安全的,才可以用注解@SuperessWarnings(“unchecked”)注解来禁止这条警告。每当使用这个注解时,一定要写注释说明为什么此处的代码是安全的。列表优先于数组先看下面的代码片段:Object[] objectArray = new Long[1];objectArray[原创 2016-12-29 18:33:29 · 384 阅读 · 0 评论 -
Effective Java读书笔记八(Java Tips.Day.8)
TIP29 优先考虑类型安全的异构容器今天要结束泛型这个部分,所以只有一个tip。不过这个tip涉及到的知识很多,而且是平时可能用的很少的类型相关的只是,最好多多回味,融会贯通。泛型最常用于集合,比如set,map以及单元素的容器,如ThreadLocal和 AtomicRefrence。 在这些用法中,容器是被参数化的,这样就限制你每个容器只能有固定数目的类型参数。例如,Set、List、只有一原创 2017-04-11 01:02:05 · 412 阅读 · 0 评论 -
Effective Java读书笔记十(Java Tips.Day.10)
TIP32 用EnumSet替代位域看看下一段代码: public class Text{ public static final int STYLE_BOLD = 1<<0; public static final int STYLE_ITALY = 1<<1; public static final int STYLE_UNDERLINE =原创 2017-05-01 19:51:41 · 297 阅读 · 0 评论 -
Effective Java读书笔记十一(Java Tips.Day.11)
TIP33 用接口模拟可伸缩的枚举原书表达的太绕口了,还是直接上代码吧,这样直观:public interface Operation { double apply(double x, double y);}public enum BasicOperation implements Operation{ PLUS("+"){ @Override pu原创 2017-05-09 01:26:53 · 307 阅读 · 0 评论 -
Effective Java读书笔记十二(Java Tips.Day.12)
TIP 34 注解优先于命名模式命名模式的问题文字拼写错误会导致失败,且没有任何提示。无法确保它们只用于相应的程序元素上。它们没有提供将参数值与程序元素关联起来的好方法。注解可以很好地解决这些问题。假设想要定义个注解类型来指定简单的测试,它们自动运行,并在抛出异常时失败:/** * 只能用于无参的静态方法. */@Retention(RetentionPolicy.RUNTIME)@原创 2017-05-10 02:08:16 · 416 阅读 · 1 评论 -
Effective Java读书笔记二(Java Tips.Day.2)
Tip6. 消除过期的对象引用只要类自己管理内存,就应该警惕内存泄漏问题。一旦元素被释放,则该元素中包含的任何对象引用都应该被清空。缓存对象的管理不当,可能会导致内存泄漏。监听器和其它回调。应当在合适的时候注销掉已注册的回调监听器,或者只保存它们的弱引用。Tip7. 避免使用终结方法请务必合理的使用终结方法。Java语言规范不仅不保证终结方法会被及时地执行,而且根本就不保证它们会被执行。而且原创 2016-11-18 11:13:30 · 736 阅读 · 0 评论 -
Effective Java读书笔记五(Java Tips.Day.5)
TIP21.用函数对象表示策略如果一个类仅仅导出一个方法,而这个方法执行其它对象上的操作,那么这个类的实例实际上等同于一个指向该方法的指针。这样的实例被成为函数对象。函数指针的主要用途就是实现策略模式。通常用匿名类声明并实现一个具体的策略类,如果这个策略类是设计用来重复使用的,通常就应该被实现为私有的静态类以便重复使用。具体请参考java.util中的Comparator接口,以及容器类中的排序策略原创 2016-12-28 16:55:33 · 377 阅读 · 0 评论 -
Effective Java读书笔记十六(Java Tips.Day.16)
TIP 42 慎用可变参数在需要定义参数熟不定的方法时,可变参数方法时一种很方便的方式,但他们不应该被滥用。这里有几个通常的建议:如果可能,请将第一个参数定义为int类型,表示数组长度。使用可变参数会带来额外的性能开销。因为每次调用时,都会进行一次数组分配和初始化。如果不想承受额外的性能开销,可以重载方法,每个重载版本的参数数量分别为1, 2, 3,最后再提供一个可变参数的版本。因为使用超过4原创 2017-05-19 17:13:06 · 250 阅读 · 0 评论 -
Effective Java读书笔记十五(Java Tips.Day.15)
TIP 40 谨慎设计方法签名本条目会帮助你设计更好的API请遵循标准的命名习惯名称应易于理解,而且与同一个包中的其它名称风格一致 选择与大众认可的名称相一致,或者自然语言中相同含义的词汇作为名称不要过于追求提供便利的方法不要过于追求提供便利的方法对于类和接口所支持的每个动作,都提供一个功能齐全的方法。每个方法应该尽其所能,不要设计太多太散的方法,否则难以学习、使用、文档化、测试和原创 2017-05-19 00:47:34 · 354 阅读 · 0 评论 -
Effective Java读书笔记二三(Java Tips.Day.23)
TIP 67 避免过度同步与TIP 66 不同,本条目讨论相反的问题。过度同步可能会导致性能降低、死锁、甚至不确定的行为。为了避免活性失败和安全性失败,在一个被同步的方法或代码块中,永远不要放弃对客户端的控制。不要调用设计成要覆盖的方法,因为你无法确定最终调用的是哪个子类或父类的实现。不要调用以函数对象提供的方法,包括以接口回调形式传入的匿名类。来看看实例:public class Forwa原创 2017-05-27 17:15:27 · 336 阅读 · 0 评论 -
Effective Java读书笔记二二(Java Tips.Day.22)
TIP 66 同步访问共享的可变数据关键字synchronized可以保证在同一时刻,只有一个线程可以执行某一个方法,或者某一个代码块读或写一个变量是原子的,除非这个变量的类型是long或者double原创 2017-05-27 01:18:11 · 316 阅读 · 0 评论 -
Effective Java读书笔记二一(Java Tips.Day.21)
TIP 60 优先使用标准的异常一般来说,你无需实现新的异常类型。JDK提供了一组基本的未受检的异常,满足绝大多数API的异常抛出需要。其中包括: IllegalArgumentException IllegalStateException NullPointerException IndexOutOfBoundsExceptio原创 2017-05-25 00:10:08 · 369 阅读 · 0 评论 -
Effective Java读书笔记九(Java Tips.Day.9)
TIP30 用enum代替int常量也许我们常常会写以下类似的代码: public static final int APPLE_FUJI = 0; public static final int APPLE_PIPPIN = 1; public static final int APPLE_GRANNY_SMITH = 2;这种方法称为int枚举模式,它们在类型安全和使用方便原创 2017-05-01 18:02:56 · 340 阅读 · 1 评论