今天有个小任务,需要调用接口同步数据,然后就写了一个JAVA类,打算直接本地执行main()去同步数据。 代码中使用了apache的httpclient来访问接口,发现输出日志太多了, httpclient maven依赖如下: <dependency> <groupId>org.apache. […]
今天有个小任务,需要调用接口同步数据,然后就写了一个JAVA类,打算直接本地执行main()去同步数据。 代码中使用了apache的httpclient来访问接口,发现输出日志太多了, httpclient maven依赖如下: <dependency> <groupId>org.apache. […]
简介 SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图: 1位,不用。二进制中最高位为1的都是负数,但是我们生成的id一般都使用整数,所以这个最高位固定是0 41位,用来记录时间戳(毫秒)。 41位可以表示$2^{41}-1$个数字, 如果只用来表示正整数(计算机中正数包含0 […]
@NotNull:// 可以用在所有类型上面,带有@NotNull注解的元素不能为null。对于集合类型的,没有size的约束。 @NotEmpty:// String, Collection, Map 和 Array 对象不能是 null 并且相关对象的 size 大于 0。 @NotBlank:// String去 […]
UML(Unified Modeling Language)统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。 UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。这些虽简…
PO persistant object 持久对象 与数据库中表相映射的Java对象。PO中不应该包含任何对数据库的操作。 POJO plain ordinary java object 简单java对象 最基本的Java Bean,只有属性字段及setter和getter方法(传统意义上的Java对象)。 VO va […]
我们知道了何谓重构和为何重构,那么什么时候才是重构的好时机呢?我们是不是应该安排专人专门安排时间来进行重构呢? 答案是否。 重构本来就不是一件需要专一去做的事情(并不是说重构不重要),重构应该随时随地进行!记住一点:不应该为重构而重构。之所以重构,是因为你要做别的事情,而重构可以帮助你把事情做好。
项目经过不断的迭代、修改、升级...基于原先的设计所得到的系统,整体结构逐渐衰弱,代码质量不断降低,代码的可读性、弹性越来越差,冗余代码越来越多,导致新的需求只能胡乱拼凑上去...再加上公司内部的人员调整,陈年代码无人能懂更不敢随意优化(稍不注意就会导致意想不到的灾难发生)。 这样导致的结果就是代码质量、项目性能慢慢下降,程序的设计逐渐腐败变质,本来严谨的编码工作逐渐变成胡乱拼凑的随性行为
数据库(database) 创建新的数据库: create database [if not exists] db_name; 删除数据库: drop database db_name; 使用数据库: use db_name; 显示所有数据库: show databases; […]
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 评注:表单验证时很实用 匹配网址URL的正则表达式:[a-zA-z]+://[^\s]* 评注:网上流传的版本功能很有限,上面这个基本可以满足需求 匹配帐号是否合法(字母开头,允许5-16字节,允许字 […]
1.枚举允许继承类吗? 枚举不允许继承类。Jvm在生成枚举时已经继承了Enum类,由于Java语言是单继承,不支持再继承额外的类(唯一的继承名额被Jvm用了)。 2.枚举允许实现接口吗? 枚举允许实现接口。因为枚举本身就是一个类,类是可以实现多个接口的。 3.枚举可以用等号比较吗? 枚举可以用等号比较。Jvm会为每个枚 […]
ElasticSearch不支持修改mapping,但是新增mapping还是挺简单的,偶尔倒是可以搞点骚操作。 添加mapping: curl -X PUT \ http://{ElasticSearchHost}:{Port}/{index}/_mapping/{type} \ -d '{ "properties" […]
序 为什么要用线程池?什么情况下才会用到线程池? 并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 因此,就用到了线程池;线程池中的线程可以复用,就是执行完一个任务,并不被销毁,而是继续执行下一个任务。 如下使用线程: pu […]
总结: 1.查询时能用rowKey查询尽量使用rowKey查询,这样hbase能最快确定数据在集群中的哪台机器上。 2.Scan.setReversed(true)、Filter.setReversed(true)可以将查询结果反转,但是有些限制: 使用Scan.setStartRow() Scan.se […]
公司项目需要,接触了下HBASE,吐槽下感受。 1、官网基本找不到想要的资料... 难道是我方法有问题?emmmmm~ 2、版本兼容性简直了... 3、依赖jar包版本太低... 比如guava(HBASE1.2.4版本的 还在用guava14.0的jar包,坑死我了) 4、操作用法倒还算得上简单明了.. […]
什么是微服务 微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。 微服务中的“微”指的是组件的粒度,而非暴露接口的粒度。 微服务架构的一 […]
醉后不知天在水,满船清梦压星河。