摘要:
编写高质量代码:改善Java程序的151个建议 [36~51] 工具类不可实例化 工具类的方法和属性都是静态的,不需要生成实例即可访 问,而且JDK也做了很好的处理,由于不希望被初始化,于是就设置了构造函数private的访问权限,表示出了类本身之外,谁都不能产生一个实例: 避免对象的浅拷贝 sup 阅读全文
摘要:
提防包装类型的null值 包装对象和拆箱对象可以自由转换,这不假,但是要剔除null值,null值并不能转换为基本类型。对于此问题,我们谨记一点:包装类型参与运算时,要做null值校验。 谨慎包装类型的大小比较 java public class Client { public static voi 阅读全文
摘要:
警惕自增的陷阱 不要只替换一个类 对于final修饰的基本类型和String类型,编译器会认为它是稳定态的(Immutable Status)所以在编译时就直接把值编译到字节码中了,避免了在运行期引用(Run time Reference),以提高代码的执行效率。对于我们的例子来说,Client类在 阅读全文
摘要:
省市区三级数据的MYSQL内容 省: db / Navicat MySQL Data Transfer Source Server : rm 2ze0lz594rof5nn72.mysql.rds.aliyuncs.com Source Server Version : 50640 Source H 阅读全文
摘要:
206 断点下载时用到,客户端请求了一部分内容,服务器成功把这部分内容返回给它,这时候就是用这个状态。 301 永久跳转,原地址不存在了,url被指向到另一个地址。这个主要是搜索引擎相关,影响爬虫的检索行为。 302 临时跳转,服务器会返回一个新的url给客户端,客户端可以继续访问这个url来获取内 阅读全文
摘要:
乐观锁和悲观锁 Synchronized属于 悲观锁 ,悲观地认为程序中的并发情况严重,所以严防死守。CAS属于 乐观锁 ,乐观地认为程序中的并发情况不那么严重,所以让线程不断去尝试更新。 性能对比: Synchronized关键字会让没有得到锁资源的线程进入blocked状态,而后在争夺到锁资源后 阅读全文
摘要:
判断是否点击!buttonView.isPressed()来解决 阅读全文
摘要:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否函数该整数。 阅读全文
摘要:
设计一个类,我们只能生成该类的一个实例。 其实就是单利模式的实现: 阅读全文
摘要:
深入学习semaphore 控制同时访问资源线程数 访问特定资源前,先使用acquire(1)获得许可,如果许可数量为0,该线程则一直阻塞,直到有可用许可。 访问资源后,使用release()释放许可。 demo: 非公平策略 acquire实现,核心代码如下: java final int non 阅读全文