- 博客(24)
- 资源 (11)
- 问答 (1)
- 收藏
- 关注
转载 枚举类型为什么能实现单例模式?
定义:枚举是指一组固定常量组成合法值的类型首先是固定常量,一组有限常量集,比如一年的四个季节,太阳系的行星。其次,枚举是一种特殊的类型,定义了自己的一些规则,这些规则是建立在类规则之上的,是一种 type。性质:枚举是真正的 final,客户端不允许创建枚举类的实例,也不能对其进行拓展Java 枚举本质上是 int 值。只能通过公有的静态 final 域为枚举类导出实例。pub...
2019-05-31 17:32:54 3279
原创 《effective java 》第3条--枚举类型实现单例模式
枚举方式(推荐)创建枚举默认就是线程安全的,所以不需要担心double checked locking,而且还能防止反序列化导致重新创建新的对象。保证只有一个实例(即使使用反射机制也无法多次实例化一个枚举量)。public class Singleton { public static void main(String[] args) { Single sin...
2019-05-31 17:28:27 267
转载 Java中 static 和 volatile 关键字的区别?
Java语言规范(Java Language Specification)的官方解释:1) If a field is declared static, there exists exactly one incarnation of the field, no matter how many instances (possibly zero) of the class may eventuall...
2019-05-31 15:12:05 1409 1
原创 关于static用于单例模式的理解
今天看到一个单例模式,代码写的有点不明白,为啥只会调用一次私有构造函数呢?public class TestSingleton { static { System.out.println("static block"); } String name = null; public static final TestSingleton INST...
2019-05-31 15:09:31 4902
原创 《effective java 》第2条--多参数的构造优先使用Builder模式
1 重叠构造器,注意看各个构造方法和this方法,两个参数的构造方法调用的是三个参数的构造方法,第三个参数是0;三个参数的构造方法调用的是四个参数的构造方法,第四个参数是0;以此类推.....但是有一个问题,一个参数,两个参数,三个参数,使用其构造传参会比较明确,但是对于多参的构造,会涉及到参数顺序的问题,有时候会传参出错,而且参数太多,难以阅读,对参数的把控性不高,不利于程序的阅读;/...
2019-05-31 10:58:24 243
转载 JAVA设计模式-工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)https://blog.csdn.net/jason0539/article/details/23020989JAVA设计模式之抽象工厂模式https://blog.csdn.net/jason0539/article/details/44976775...
2019-05-31 09:18:34 176
转载 《effective java》1:静态工厂方法的优势,为何要使用静态工厂方法少使用new(二)
本文略长,所以先来个内容提要。1. 序:什么是静态工厂方法 2. Effective Java 2.1 静态工厂方法与构造器不同的第一优势在于,它们有名字 2.2 第二个优势,不用每次被调用时都创建新对象 2.3 第三个优势,可以返回原返回类型的子类 2.4 第四个优势,在创建带泛型的实例时,能使代码变得简洁 3. 除此之外 3.1 可以有多个参数相同但名称不同的工厂方法...
2019-05-30 22:08:03 290
转载 《effective java》1:静态工厂方法的优势,为何要使用静态工厂方法少使用new(一)
什么是静态工厂方法对于类而言,为了让使用者获取它自身的一个实例,最常用的方法就是提供一个公有的构造器。当然,这里要介绍的是另一种方法——静态工厂方法,一个返回类的实例的静态方法。举个例子,Boolean的一个将基本类型boolean转为封装类的方法,valueOf:public static Boolean valueOf(boolean b) { return (b ? TR...
2019-05-30 22:05:13 921 1
转载 Java为什么不推荐使用线程组?
线程组ThreadGroup对象中的stop,resume,suspend会导致安全问题,主要是死锁问题,已经被官方废弃,多以价值已经大不如以前。 线程组ThreadGroup不是线程安全的,在使用过程中不能及时获取安全的信息。转自:https://blog.csdn.net/xywz123456/article/details/86301612...
2019-05-30 11:42:05 1114
转载 永远不要再循环之外调用wait方法
实例1:wait在while中package com.lyzh;/** * Title: * * @Author * @CreateTime 2019/5/29 20:58 */import java.util.Date;import java.util.LinkedList;import java.util.List;/** * This class impl...
2019-05-29 21:53:42 556
转载 String.intern用法--扩充常量池
String s0 = "kvill"; String s1 = "kvill"; String s2 = "kv" + "ill"; System.out.println(s0 == s1); System.out.println(s0 == s2);// true// true...
2019-05-29 20:33:52 323
转载 字节流、字符流的区别
1字节能表示26个英文字母和一些特殊符号,但是2^8=256根本无法表示十万个左右的汉字,所以汉字可以采用GB18030编码,用1字节、2字节、4字节表示1个汉字。但是其他文字比如日语、韩语、阿拉伯语也有其他的文字编码,没有实现全球统一的字符集,比如“1100010101010”显示成英语是“hello”,显示成汉语可能是“是单次??”,所以unicode字符集应运而生,包括100多万个字符(全球...
2019-05-29 11:26:39 408
原创 Unicode字符需要几个字节来存储?
0)学习笔记:我们常说的这句话“Unicode字符是2个字节”这句话有毛病Unicode目前规划的总空间有17个平面, 0x0000---0x10FFFF,每个平面有 65536 个码点.Unicode支持的字符上限是65536个 这句话也是有问题的,这65536个字符是我们最常用的基本字符,但是还有很多字符是在0x0000--0xFFFF之外的unicode存储在计算机内存里肯定...
2019-05-29 11:16:14 9842
转载 CopyOnWriteArrayList原理,优缺点,使用场景
什么是CopyOnWrite容器 CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对CopyOnWrite容器进行并发的读,而不需要加锁,因为当前容器不会添加任何元素。所以CopyOnWri...
2019-05-22 21:50:51 33213 8
转载 mysql explain详解
Explain简介本文主要讲述如何通过 explain 命令获取 select 语句的执行计划,通过 explain 我们可以知道以下信息:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引实际使用了,表之间的引用,每张表有多少行被优化器查询等信息。下面是使用 explain 的例子:在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,...
2019-05-22 14:26:42 265
原创 Mysql,Hive union all使用
union all并不只是需要两个子查询的字段名称、顺序要一致,当不一致时会起到补充的作用,仍然使用第一个字段名Hive12Mysql:1select area_name from area_table where province_name='山西' and city_name='晋中'union all select area_id from a...
2019-05-21 22:05:44 1259 1
转载 select 某些字段比select * 更快
1尽量养成不要使用*的习惯,select * 可能会对性能产生严重影响,有一种索引,叫做覆盖索引。准确来说它不是一种索引方式,而是一种索引覆盖查询列程度。比如有一个常用查询,只需要用到表中的某两列,user_id和post_id,而且有一个多列索引已经覆盖了这两个列,那么这个索引就是这个查询的覆盖索引了。如果select `user_id`,`post_id` from xxx 的话,mysq...
2019-05-21 22:02:58 4681 1
转载 MySQL覆盖索引和优化
聚集索引和辅助索引聚集索引(主键索引)—innodb存储引擎是索引组织表,即表中的数据按照主键顺序存放。而聚集索引就是按照每张表的主键构造一颗B+树,同时叶子节点中存放的即为整张表的记录数据—聚集索引的叶子节点称为数据页,数据页,数据页!重要的事说三遍。聚集索引的这个特性决定了索引组织表中的数据也是索引的一部分。辅助索引(二级索引)—非主键索引—叶子节点=键值+书签。Innod...
2019-05-21 21:53:59 482
原创 HIve 在指定位置添加字段
分两步,先添加字段到最后(add columns),然后再移动到指定位置(change)alter table table_name add columns (c_time string comment '当前时间'); -- 正确,添加在最后alter table table_name change c_time c_time string after address ; -- 正确,...
2019-05-12 19:31:28 24983 3
原创 Hive内部表 外部表 区别
以下基于Hive 2.0.0-SNAPSHOT,本人亲自实验的结论!!1添加字段会导致表结构同时改变,与是否是外部表内部表无关,也与是否指定location无关!从本地load新分区的数据会导致表的分区信息同时改变,与是否是外部表内部表无关,也与是否指定location无关!2drop表时,如果是指定location的表,会把路径下的数据文件删掉,只保留空的二级及以上目录;...
2019-05-11 16:21:47 1566 1
原创 《effective java》66:同步访问共享的可变数据
1public class ConcurrentAccessShareVariable66 { private static boolean stopFlag; public static void main(String[] args) throws InterruptedException { Thread t1 = new Thread(new Runn...
2019-05-09 21:26:35 185
原创 hive 列转行
方法1:(不报错,达不到效果)select count(*) as new_count1 from sales_info where dt='2019-04-26'union allselect count(*) as new_count2 from sales_info where dt='2019-04-26'方法2:(报错)select T1.new_count1...
2019-05-09 20:36:14 623
原创 java往hive 的map类型字段写数据
该表的该字段类型是map<string,string>对应类的该属性的类型需要定义成String,不可定义成Map<String,String> !!方法1:建表语句定义map的分隔符:row format delimited fields terminated by '|' collection items terminated by ',' m...
2019-05-06 21:36:11 2665
mhd raw metaimage java读取类
2017-10-18
commons-lang-2.5.jar
2016-07-08
commons-configuration-1.6.jar
2016-07-08
android通过servlet与服务器验证用户信息
2016-03-26
全国省市县区域名称
2015-11-17
android布局中用到dimension,这样的作用是什么?好处是?
2015-12-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人