Kaka Blog

追求自我价值的实现

Neo4j入门

简介 Neo4j是一个高性能的,NoSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。 安装 实验环境 Ubuntu版本:16.04 JDK版本:1.8.0_191 Neo...

搭建 docker registry 私有仓库

安装Docker Registry 1、从docker hub拉取官方registry镜像。 docker pull registry 由于在国内,访问国外的网站速度可能会较慢,所以,最好为ubuntu添加加速器。修改/etc/docker/daemon.json文件: { "registry-mirrors": ["http://registry.docker-cn.co...

使用Apache ab工具测试性能

ab简介 ab是Apache提供的一款小巧的压力测试工具,用来测试服务能力很方便。 安装 下载Apache,地址:http://httpd.apache.org/download.cgi#apache24,点击Files for Microsoft Windows链接,点击ApacheHaus链接,选择版本下载。 直接解压到具体目录,找到bin目录,将路径加到系统环境变量Path里即...

异步编程:CompletableFuture

并行与并发 并行:分支/合并框架以及并行流是实现并行处理的宝贵工具,它们将一个操作切分成多个子操作,在多个不同的核、CPU甚至是机器上并行地执行这些子操作。 并发:在同一个CPU上执行几个松耦合的任务,充分利用CPU的核,最大化程序的吞吐量,避免因为等待远程服务的返回,或者对数据库的查询,而阻塞线程的执行,浪费宝贵的计算资源。 并行与并发的区别: CompletableFutur...

手写Spring框架

前言 本文通过手写Spring,实现Spring MVC基本功能,为学习Spring源码做准备。 Spring介绍 Spring主要由三个阶段:配置阶段、初始化阶段和运行阶段。 配置阶段:主要完成application.properties和Annotation配置。 初始化阶段:主要加载并解析配置信息,然后初始化IOC容器,完成容器的DI操作,以及完成HandlerMap...

JVM介绍

JDK 1.6 JVM是什么? JVM是Java Virtual Machine的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 JVM的位置 JVM运行时数据区 程序计数器 指向当前线程正在执行的字节码指令的地址(行号)。 Java最小的执行单位是线程,这是由于CPU有时间片的概念,线程在一个时间片...

C#:Task多线程

前言 实现方法的异步操作,掌握Task的基本用法。 实体类 class Student { public string name { get; set; } public int age { get; set; } } 方法 方法一:修改Student对象的name值,并返回success,用时2s。 public static String MyMethod(...

Spring Boot(九):Spring Boot测试打包部署

单元测试 1、添加spring-boot-starter-test依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test&l...

Git操作

克隆新项目 git clone <远程地址> 指定分支加上-b git clone -b <分支名> <分支名仓库地址> 将已有项目提交到Git git init //在当前项目目录中生成本地git管理,并建立一个隐藏.git目录 git add . //添加当前目录中的所有文件到索引 git commit -m "first commit"...

函数式接口

介绍 函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。 函数式接口可以被隐式转换为 lambda 表达式。 引入 如定义了一个函数式接口如下: public interface GreetingService { void sayMessage(String message); } 那么就可以使用Lam...