分类 编程 下的文章

快捷键有助于我们提升工作效率,减少对鼠标的依赖,让编码过程更加协调.

文本编辑

  • Ctrl + 左键 或者 Ctrl 右键 光标向左/向右跳过一个单词
  • Ctrl + Shift + 左键 或者 Ctrl + Shift + 右键 光标向左/向右选中一个完整单词
  • Alt + 上键 或者 Alt + 下键 将光标所在行上移/下移
  • Alt + Shift + 上键 或者 Alt + Shift + 下键 将光标所在行内容复制到上一行或者下一行
  • Ctrl + q 光标移动到最后编辑的地方
  • Home/End 光标移动到行首或者行尾

内容查找

  • Ctrl + k 查找下一个和选中内容相同的内容
  • Ctrl + o 列出类的属性视图

- 阅读剩余部分 -

为什么要数组转List

在java中,我们经常需要将数组转换为List。这主要是由于以下原因:

  • 数组的长度是固定的,数组的大小不能动态地增加,您需要提供在数组满时增加数组大小的方法,而列表满时自动增加数组大小。
  • 数组删除元素比较复杂,而使用List则很容易做到这一点。
  • 如果需要检查数组中元素的存在性,则需要遍历数组,效率较差。
  • 您正在接收来自外部库的数据,并在处理之后将其发送到另一个服务。现在接收到的数据是数组的形式,而另一端所期望的是列表,您别无选择,只能将数组转换为列表。

在需要将数组转换为列表的代码中,可能会出现上述任何场景。这篇文章将提供一些可以使用的方法。

- 阅读剩余部分 -

反转字符串意味着按相反的顺序排列字符串的字符,也就是说,将最后一个字符放在第一位,将第二个最后一个字符放在第二位,以此类推。
本文将通过程序示例讨论在java中反转字符串的不同方法。

StringBuffer

java.lang.StringBuffer类有一个反转方法,该方法反转提供给它的字符串。

public class StringReverseDemo {
    public static void main(String[] args) {
        String str = "linuxcoming";
        // create an object of stringbuffer
        StringBuffer buffer = new StringBuffer(str);
        System.out.println("Original string: " + str);
        System.out.println("Reversed string: " + buffer.reverse());
   }
}

输出:

Original string: linuxcoming
Reversed string: gnimocxunil

- 阅读剩余部分 -

Redis持久化

Redis提供了不同级别的持久化方式:

  • RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储.
  • AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾.Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大.
  • 如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化方式.
  • 你也可以同时开启两种持久化方式, 在这种情况下, 当redis重启的时候会优先载入AOF文件来恢复原始的数据,因为在通常情况下AOF文件保存的数据集要比RDB文件保存的数据集要完整.

最重要的事情是了解RDB和AOF持久化方式的不同,让我们以RDB持久化方式开始:

- 阅读剩余部分 -

当您想要生成一个唯一的事务id或作为一个随机临时密码生成器,用户首次在网站上注册或创建防止自动输入的验证码时,通常需要生成随机的字符序列。

Java提供了许多不同的方法来编写随机字符串生成器应用程序,下面介绍几种方式。

UUID

UUID是由一组32位数的16进制数字所构成,故UUID理论上的总数为1632=2128,约等于3.4 x 1038。也就是说若每纳秒产生1兆个UUID,要花100亿年才会将所有UUID用完。

java.util.UUID 类可用于生成UUID, 它的static randomUUID方法返回一个32个字符的字符串。

import java.util.UUID;

public class RandomStringGenerator {

    public static void main(String[] args) {
        String randomString = usingUUID();
        System.out.println("Random string is: " + randomString);
        System.out.println("Random string of 8 characters is: "
            + randomString.substring(0, 8));
    }

    static String usingUUID() {
        UUID randomUUID = UUID.randomUUID();
        return randomUUID.toString().replaceAll("-", "");
    }
}
注意randomUUID方法生成的字符串包含“-”。上面的示例通过使用空字符串替换了。

以上程序输出为:

Random string is: 923ed6ec4d04452eaf258ec8a4391a0f
Random string of 8 characters is: 923ed6ec

- 阅读剩余部分 -

这里汇总了下Linux环境下常用的Linux命令,多数命令几乎每天都会用到, 本文汇总的所有命令是基于 Ubuntu 发行版, 但是多数命令在大多数Linux上皆可使用, 包括Unix, 甚至Mac OSX.

目录浏览

命令描述
ls查看当前目录下的所有文件和目录
ls -al类似 ls, 以列表形式显示当前目录下的所有文件和目录, 包括隐藏文件
ls -al & grep string查询匹配string的文件和目录
cd directory_path切换到 directory_path
cd切换到用户根目录 $HOME
cd ..切换到上级目录
pwd查看当前所在目录路径

上述命令多数都支持根上目录路径或者文件路径, 比如 ls /usr/local/bin, 其他更多命令参数,参看下 man page, 比如 man ls.

- 阅读剩余部分 -

概述

Lombok是一个库,它简化了许多繁琐的任务,并减少了Java源代码的冗长。当然,我们通常希望能够在IDE中使用库,这需要额外的设置。在本教程中,我们将讨论如何在两种最流行的Java ide (IntelliJ IDEA和Eclipse)中配置它。

IntelliJ IDEA

启用注释处理

Lombok通过APT使用注释处理,因此,当编译器调用它时,库根据原始文件中的注释生成新的源文件。

不过,默认情况下不启用注释处理。

因此,我们要做的第一件事是在项目中启用注释处理。

打开 Preferences -> Build, Execution, Deployment -> Compiler -> Annotation Processors 勾选以下:

* Enable annotation processing

* Obtain processors from project classpath

- 阅读剩余部分 -

Dynomite 简介

Dynomite是NetFlix对亚马逊分布式引擎Dynamo的一个开源通用实现,它不仅支持基于内存K/V数据库,
还支持持久化的MySQL、BerkeleyDb、LevelDb等数据库,并具有简单、高效、支持跨数据中心的数据复制功能等优点。
Dynomite的最终目标是提供数据库存储引擎不能提供的简单、高效、跨数据中心的数据复制功能。目前,Dynomite已经实现了对Redis和Memcached的支持。

Dynomite 安装配置

Build

从源代码构建Dynomite并启用调试日志,禁用assertions:

$ git clone git@github.com:Netflix/dynomite.git
$ cd dynomite
$ autoreconf -fvi
$ ./configure --enable-debug=yes    // 开发环境需要,生产环境不需要
$ make
$ src/dynomite -h

- 阅读剩余部分 -

下面这份文档, 是来自https://keepachangelog.com/zh-CN/1.0.0/Change Log 维护的一些说明和建议, Change Log 是很有意义的事情,团队或者是个人都应该建立起来.一份优秀的 Change Log 让团队成员心中有数, 能更好的了解整个项目的核心功能的发展历程.

更新日志是什么?

更新日志(Change Log)是一个由人工编辑,以时间为倒序的列表, 以记录一个项目中所有版本的显著变动。

为何要提供更新日志?

为了让用户和开发人员更简单明确的知晓项目在不同版本之间有哪些显著变动。

哪些人需要更新日志?

人人需要更新日志。无论是消费者还是开发者,软件的最终用户都关心软件所包含什么。 当软件有所变动时,大家希望知道改动是为何、以及如何进行的。

- 阅读剩余部分 -