8月 182019
 

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lu930124/article/details/77595585

利用java8新特性,可以用简洁高效的代码来实现一些数据处理。

定义1个Apple对象:


public class Apple {
private Integer id;
private String name;
private BigDecimal money;
private Integer num;
public Apple(Integer id, String name, BigDecimal money, Integer num) {
this.id = id;
this.name = name;
this.money = money;
this.num = num;
}
}

Continue reading »

8月 042019
 

目标

一台主节点,一台从节点

ES安装与配置

注意,集群配置完成前建议不要启动单个ES实例。
原因:默认参数启动会以单实例方式启动,创建各种文件夹、文件,可能干扰后续集群配置。

配置集群

修改配置文件

cluster.name: tipdm-es #es集群名称
node.name: es-node1    #es节点名称,每个节点的名称不能相同
node.master: true      #指定该节点是否有资格被选举成为master,默认是true
node.data: true        #指定该节点是否存储索引数据,默认为true。
 Continue reading »
5月 192019
 

有关null的使用

不要在Set中使用null,或者把null作为map的键值。使用特殊值代表null会让查找操作的语义更清晰。

如果你想把null作为map中某条目的值,更好的办法是 不把这一条目放到map中,而是单独维护一个”值为null的键集合” (null keys)。Map 中对应某个键的值是null,和map中没有对应某个键的值,是非常容易混淆的两种情况。因此,最好把值为null的键分离开,并且仔细想想,null值的键在你的项目中到底表达了什么语义。

如果你需要在列表中使用null,并且这个列表的数据是稀疏的,使用Map<Integer, E>可能会更高效,并且更准确地符合你的潜在需求。

此外,考虑一下使用自然的null对象——特殊值。举例来说,为某个enum类型增加特殊的枚举值表示null,比如java.math.RoundingMode就定义了一个枚举值UNNECESSARY,它表示一种不做任何舍入操作的模式,用这种模式做舍入操作会直接抛出异常。

如果你真的需要使用null值,但是null值不能和Guava中的集合实现一起工作,你只能选择其他实现。比如,用JDK中的Collections.unmodifiableList替代Guava的ImmutableList

Optional的使用

大多数情况下,开发人员使用null表明的是某种缺失情形:可能是已经有一个默认值,或没有值,或找不到值。例如,Map.get返回null就表示找不到给定键对应的值。
Continue reading »

4月 142019
 

注意:本文档基于google guava 28 wiki

Joiner

连接器

将字符串拼接

Joiner joiner = Joiner.on("; ").skipNulls();
return joiner.join("Harry", null, "Ron", "Hermione");

返回Harry; Ron; Hermione
skipNulls()方法是直接忽略null,使用useForNull(String)方法可以给定某个字符串来替换null,即

Joiner joiner = Joiner.on("; ").useForNull("替换字符串");

Continue reading »

1月 252019
 

建议使用pinyin4j,作为老牌的拼音转汉字解决方案,个人感觉比较可靠。小站用这个应该够用了。
可以参考该帖子:使用 pinyin4j API 将汉字转换为拼音 (学习笔记)
hutool工具包中有一个PinyinUtil工具类,目前已被弃用,不推荐使用,因为某些汉字可能会被转错,比如下图中的“馨”:

11月 182018
 

主要参考这篇官方文档:
https://www.rabbitmq.com/monitoring.html

有如下接口:

  • /api/overview
    • GET请求,集群概况
  • /api/nodes/{node}
    • GET请求,获取单个节点情况
  • /api/nodes
    • GET请求,获取所有节点情况
  • /api/queues/{vhost}/{qname}
    • GET请求,获取队列情况
  • /api/nodes/{node}/memory
    • GET请求,内存相关

Continue reading »

3月 012018
 

单个List数据去重

思路:利用HashSet
代码:

        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("c");
        list.add("c");
        for (String string : list) {
            System.out.println(string);
        }
        System.out.println("=============================");
        //转成set
        List<String> listWithoutDup = new ArrayList<>(new HashSet<>(list));
        for (String str : listWithoutDup) {
            System.out.println(str);
        }

Continue reading »

1月 102018
 

整理笔记本时发现一些以前做过的笔记,整理一下,在博客里留个记录,省的以后忘记。
问题是这样的:dubbo在部署时需要用到dubbo-admin,但dubbo-admin需要自己编译,网上各种下载的war包可能并不适合自己的开发环境、有极大概率是没法用的。
编译dubbo-admin很简单,在编译环境中准备好jdk、maven(jdk maven配置过程就没必要说了,网上n多教程),从github上下载dubbo源代码,准备工作就这些。
我的编译环境如下:

  • MacOSX High Sierra
  • Oracle JDK 1.8
  • apache maven 3.5.2

编译步骤: Continue reading »