分类 教程 下的文章

当您想要生成一个唯一的事务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

- 阅读剩余部分 -

概览

在这个快速教程中,我们将展示如何在Maven中设置Java版本。

在继续之前,我们可以检查Maven的默认JDK版本。运行mvn -v命令将显示Maven运行的Java版本。

$ mvn -v
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00)
Maven home: /opt/apache-maven-3.6.1
Java version: 1.8.0_212, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac"

使用Compiler插件

我们可以在编译器插件中指定所需的Java版本。

- 阅读剩余部分 -

在我们使用 Linux 的过程中, 我们经常需要对文本进行处理,需要一些强有力的工具, 来提升我们的效率.接下来介绍下 grep/cat/awk/uniq这些常用命令的使用.

grep

grep 是我们用的非常多的命令, 查询日志, 查找关键内容等等.

查看匹配到的行

查询包含 xyz 的行

grep 'xyz' myFile

在当前目录下所有html文件中查询包含 xyz 的行

grep 'xyz' *html

- 阅读剩余部分 -

介绍

构建软件项目通常包括以下任务:下载依赖项、在类路径上放置额外的JAR、将源代码编译成二进制代码、运行测试、将编译后的代码打包成可部署的构件(如JAR、WAR和ZIP文件),并将这些构件部署到应用服务器或仓库。

Apache Maven将这些任务自动化,在手工构建软件并将编译和打包代码的工作与代码构建工作分离开来的同时,将人类出错的风险降到最低。

在本教程中,我们将探索这个功能强大的工具,它使用用XML编写的中心信息—项目对象模型(Project Object Model, POM)—来描述、构建和管理Java软件项目。

为什么使用Maven

Maven的主要特性:

  • 遵循最佳实践的简单项目设置: Maven通过提供项目模板(命名原型),尽量避免配置
  • 依赖项管理: 它包括自动更新、下载和验证兼容性,以及报告依赖项闭包(也称为传递依赖项)
  • 项目依赖项和插件之间的隔离: Maven从依赖项仓库检索项目依赖项,而任何插件的依赖项都从插件仓库检索,从而在插件开始下载附加依赖项时减少冲突
  • 中央仓库系统: 可以从本地文件系统或公共仓库(如Maven central)加载项目依赖项

- 阅读剩余部分 -

查找Linux Kernel版本

root@server:~# uname -a
Linux server 4.4.0-157-generic #185-Ubuntu SMP Tue Jul 23 09:17:01 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

查看当前系统的发行版名称和版本

root@server:~# cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS"

当然你同样可以使用 lsb_release 命令来查看上述信息

- 阅读剩余部分 -

这里汇总了下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

- 阅读剩余部分 -