java
Pecodo
这个作者很懒,什么都没留下…
展开
-
equals方法重写
在重写equals方法时,必须遵循他的一些通用约定(general contracts):自反性:对于任何非空引用 x,x.equals(x) 必须返回 true,说实话这条约定我不知道如何违反。对称性:对于任何非空引用x和y,x.equals(y)的返回值必须与y.equals(x)的返回值相等,这需要如果你在一个类Student的equals方法中有对某个类Teenager的特殊比较,...原创 2019-12-24 22:04:31 · 267 阅读 · 0 评论 -
高效Java之try-with-resources
一些由Java类库提供的可以通过close方法手动关闭的资源,例如inputStream类型,java.sql.Connection类型的资源。为了避免使用者忘记关闭资源,或者多个资源的使用导致try-finally的嵌套,这种场景使用try-with-resources是更好的选择:// try-with-resources on multiple resources - short an...原创 2019-12-23 22:03:50 · 244 阅读 · 0 评论 -
高效Java之依赖注入优于硬连接资源
许多类依赖于一个或多个底层资源(对象实例),可以通过提供带参的构造函数注入资源,用户可以根据需要选择注入的资源类的具体实例,也可以通过spring的@autowire自动注入。静态工具类和单例类不适合于需要引用底层资源的类。...原创 2019-11-28 21:56:36 · 391 阅读 · 0 评论 -
高效Java之使用私有构造方法或枚举实现Singleton属性
有两种常见的方式来实现单例。 两者都基于保持构造方法私有和导出公共静态成员以提供对唯一实例访问 第一种// Singleton with public final fieldpublic class Elvis { // 赋初值 定义为final属性 public static final Elvis INSTANCE = new Elvis(); priva...原创 2019-11-27 22:19:09 · 221 阅读 · 0 评论 -
高效Java之在模板类中模拟自我类型
// Builder pattern for class hierarchiesimport java.util.EnumSet;import java.util.Objects;import java.util.Set;public abstract class Pizza { public enum Topping {HAM, MUSHROOM, ONION, PEPPER...原创 2019-11-25 22:23:20 · 480 阅读 · 0 评论 -
高效Java之使用静态工厂方法替代构造方法
优点1、 与构造方法不同,静态方法拥有名字 例如返个可能为素数的BigInteger的构造方法BigInteger(int, int, Random)可以更好的表示为BigInteger.probablePrime的静态工厂方法(不是很明白这个方法的作用)。 在类中似乎需要具有相同签名的多个构造方法的情况下,用静态工厂方法替换构造方法,并仔细选择名称来突出他们的差异。...原创 2019-11-22 22:57:28 · 300 阅读 · 0 评论 -
Java虚拟机之 网络安全
Java提供可配置的沙箱来限制代码的行为1、类加载器 不同的applet程序使用不同的类加载器,不能相互访问; 双亲委派模式:每个类加载器都直接或间接继承启动类加载器,子加载器加载一个类时会默认的调用父加载器进行加载,保证Java api类都是由启动类加载器加载的安全的类; 运行时包概念:子加载器加载的类即使与父加载器加载的类包名一样也处于不同包,受到跨包访问限...原创 2019-11-07 21:51:33 · 229 阅读 · 0 评论 -
redis保证读写一致性
watch可以监控一个或多个键,一旦其中有一个键被修改(或删除),之后的事务就不会执行。监控一直持续到EXEC命令(事务中的命令是在EXEC之后才执行的,所以在MULTI命令后可以修改WATCH监控的键值)RedisTemplate template = null;//这里配置自己的redis template.watch("key"); template....转载 2019-07-25 22:02:36 · 2044 阅读 · 0 评论