- 博客(43)
- 收藏
- 关注
原创 Linux下VoltDB-5.8.7安装指南
github地址:https://github.com/VoltDB/voltdb官方安装指南:https://github.com/VoltDB/voltdb/wiki/Building-VoltDB安装依赖环境Java 1.8Apache Ant 1.7 及以上支持C++11的编译器,如gcc 4.4及以上Python 2.6 及以上cmake 2.8 及以上安装git clone
2017-05-19 14:49:48 1989
原创 脚本(shell script)
执行方式区别三种执行方式:source、.、sh小数点和sh是在开启一个子进程上执行,脚本里的变量和操作不会传到父进程source直接在父进程中执行 例如配置生效用source ~/.bashrc而不用sh ~/.bashrc 分支判断符号[]中括号内的每个组件都需要空格键分隔,常用于if..then..fi中中括号内变量,最好都以双引号括起来中括号内常量,最好都以单引号
2017-05-03 12:55:26 527
原创 MySQL-5.7.18 release版安装指南
与源码版本安装过程基本一致,除了编译环节,本文只谈release版,即含有bin文件版本好处:每个用户可安装属于自己的MySQL Server目标主机系统:CentOS 6.8 用户:saojie(没有管理员权限) 目录:/home/saojie/mysql-5.7.18下载Linux Generic 地址:https://dev.mysql.com/downloads/mysql/解压tar
2017-04-28 10:10:04 820
原创 Java内部类
内部类是定义在一个类中的类 - 内部类可对同一个包中的其他类隐藏起来 - 定义一个回调函数且不想编写大量代码时,匿名内部类比较便捷 - 内部类既可以访问自身的数据域和方法,也可以访问创建它的外部类的所有数据域和方法 - 只有内部类可以是私有类(private),而常规类只能是包可见性(默认,什么都没写)或公有可见性(public) - 只有内部类才能声明为static成员内部类作为外部类
2017-04-21 11:07:54 250
原创 bash shell
shell是和内核通信的接口,shell有很多种,Linux默认是bashbash shell功能命令记忆(history)用户注销时,系统会将最近的HISTSIZE条命令更新到~/.bash_historyhistory命令列出最近的命令!number执行第number条命令!!相当于按↑再按enter!command由最近向前搜索开头为command的命令,并执行Tab键补全按Ta
2017-04-13 10:24:51 332
原创 方法覆盖(override)原则和static方法隐藏
方法覆盖原则方法的覆盖(override)两同两小一大原则:(重写、覆盖)方法名相同,参数列表(参数类型,参数个数,参数顺序)相同 子类返回类型小于等于父类方法返回类型 子类抛出异常小于等于父类方法抛出异常 子类访问权限大于等于父类方法访问权限 为什么不能降低可见性,因为每个子类的实例都应该是一个基类的有效实例,如果降低了方法的可见性,那么就相当于子类失去了一个父类的方法,这
2017-04-11 09:52:56 1721
原创 shell变量
变量规则输出变量:echo $var或echo ${var}变量类型默认是字符串变量与变量内容以一个等号连接,且等号两边不能有空格,如i=1变量名只能由英文和数字组成,且开头不能是数字变量内容有空格可使用双引号或单引号括起来 单引号内特殊字符是纯文本,照常输出双引号内特殊字符保留原有特性,如var="lang is $LANG",输出echo $var得lang is en_US可用
2017-04-05 14:22:20 273
原创 左外连接,右外连接,全外连接
左外连接用在查询块的from短语中又称左连接,列出左边所有元组,A left join B on 条件表达式中的on决定了B表中符合条件表达式的数据才保留,不符合的右边字段为nullwhere短语的条件等到外连接结束后才使用,对外连接结果进行过滤 例子: create table t1(c1 int primary key, c2 int); create table t2(cc
2017-04-05 14:11:16 580
原创 SQL子查询
一个select-from-where语句称为一个查询块,一个查询块嵌套在另一个查询块的where或having短语的条件中的查询称为嵌套查询下层的查询块称为子查询order by不能用在子查询中,其只能对最终查询结果排序不相关子查询和相关子查询不相关子查询的查询条件不依赖于父查询(子查询可独立单独运行),执行顺序由里向外相关子查询的查询条件依赖于父查询,执行顺序由外向里IN谓词子查询
2017-03-28 15:10:46 391
原创 vim程序编辑器
vim的使用和恢复vim是vi的高级版,分为3种模式:一般模式(默认)、编辑模式和命令行模式3种模式转换关系: 被vim编辑的文件会在同目录下新建一个file.swp的临时文件,对文件的编辑先存在此临时文件,写入时才会对源文件更改按键说明一般模式可用按键及说明 按键 说明 H 移到屏幕最上方那一行 M 移到屏幕中央那一行 L 移到屏幕最下方那一行 G 移到文件
2017-03-23 16:48:43 241
原创 MySQL 自增(auto_increment)
两个自增变量 auto_increment_increment:自增步长(每次自增的变化量) auto_increment_offset:自增偏移(自增初始位置)@用户变量 @@系统变量,全局和每个会话的相应变量值都被修改,所有会话立即生效global,全局变量值被修改,新建会话时全局变量赋值给会话变量,新建会话才生效 session,当前会话的变量值被修改,当前会话立即生效建表
2017-03-20 13:57:45 1948
原创 MySQL中truncate、delete、drop区别
truncate table删除表中的所有记录并将数据占用的空间收回,但保留表结构、约束和索引等,不写rollback segment因而数据不可恢复,属于DDL(Data Definition Language)delete from table删除表中的所有记录,保留表结构、约束和索引等,会写rollback segment因而数据可回滚恢复,属于DML(Data Manipulation La
2017-03-20 13:32:31 539
原创 Java反射
反射:分析类能力获得Class两种方法:Class cl = Object.getClass();Class cl = Class.forName("xxx"); //xxx是类名Class的forName和newInstance方法配合只能创建一个对象(无参实例),用Constructor类的newInstance方法可以调用任意构造函数java.lang.reflect包内有Field
2017-03-20 13:25:12 187
原创 Java对象序列化
1.序列化与对象流对象序列化可以将任何对象写出到流中,并在之后将其读回要序列化的对象的类必须实现 Serializable接口,Serializable接口没有任何方法class Foo implements Serializable{...}//写入流ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("dat
2017-03-07 11:08:47 227
原创 Windows安装MySQL Community 5.7.17(非msi方式)
操作系统:Windows 10 MySQL版本:Community 5.7.17下载 mysql-5.7.17-winx64.zip,解压至想安装的位置,如D:\mysql-5.7.17。 将解压后的 my-default.ini 配置文件复制一份,重命名为my.inimy.ini内容[mysqld]basedir = D:\mysql-5.7.17\
2017-02-24 12:21:51 813
原创 MySQL用户管理
MySQL中用户信息存放在mysql.user表中查看用户列表select host,user from mysql.user;创建新用户create user 'admin'@'%' identified by 'admin'; //创建用户admin,密码admin,可从远程 //任意客户端连接,如果为loc
2017-02-22 17:01:14 334
原创 PRM方式安装MySQL Community 5.7.17
准备工作操作系统:CentOS 6.8 MySQL版本:Community 5.7.17预备:下载MySQL的common, libs, client, devel, server五个rpm包,CentOS对应的版本是RedHat/Oracle 注:使用root用户安装,非root用户只能用源码编译安装1. 查看是否已安装了MySQL相关组件rpm -qa | grep -i mysql2. 用
2017-02-22 16:40:05 1918
原创 4.1.1 Future模式
核心思想调用方式为异步,去除了主函数中的等待时间,主函数可去处理其他任务,如图:代码实现 参与者 作用 Main 主函数,调用Client发出请求 Client 返回Data对象,立即返回FutureData,并开启ClientThread线程装配RealData Data 返回数据的接口 FutureData 虚拟数据,构造很快 RealData 真
2016-12-07 19:17:49 267
原创 3.2.2 Map接口
1.HashMapHashtable与HashMap区别: Hashtable大部分方法是同步的,HashMap没有同步 Hashtable不允许key或value为null,HashMap可以 映射算法不同HashMap实现原理 用key做hash算法得到hash值 用hash值和数组长度计算得到数组下标索引 用
2016-11-29 18:36:24 282
翻译 Leveraging Lock Contention to Improve OLTP Application Performance
摘要为了提高事务处理性能,大多数工作都关注于如何设计高效的并发控制机制,很少有工作关注查询负载和应用语义来提高性能。本文展示一款面向查询的编译器QURO,能够自动对事务里的负载重新排列以提高性能。我们观察到并发事务之间某些负载会对相同的元组进行上锁,这些查询称为争夺性负载,QURO使得执行争夺性负载尽可能晚。通过QURO事务吞吐量提高6.53倍,事务延迟下降了85%。1 介绍介绍了
2016-11-17 15:11:06 364
原创 String类型的一点知识
1. 比较字符串内容是否相等用equals(),“==”检测两个String引用是不是指向内存中的同一个对象2. 安全敏感的字符串用char[]会比String好,因为char用完可以覆盖,String字符串可能还留在常量区或者堆3. JDK7之后字符串""可用在switch表达式中String a = "hello";switch(a){ case "h
2016-11-13 23:29:35 254
原创 2.1.6&2.1.7 Value Object模式和业务代理模式
Value Object模式J2EE中业务信息交互次数过多,影响性能,例如查询订单(Order)信息,来回三次分别查询客户名、商品名和数量Value Object模式提倡将一个对象(如Order)的各个属性进行封装,将封装后的对象在网络中传输,从而减少网络交互次数此对象必须可串行化业务代理模式业务代理模式将一组远程方法调用构成的业务流程,封装在一个位于展示层
2016-09-27 21:48:46 263
原创 2.1.5 观察者模式
用于事件监听、通知发布等,确保观察者在不使用轮询方式下及时收到相关消息和事件(不然需要另开一个线程不断监听,浪费资源)UML结构图见Page33主题接口依赖于观察者接口主要角色:主题接口,被观察的对象具体主题,实现主题接口,维护一个观察者列表观察者接口,定义观察者的方法,依赖状态改变时由主题接口调用具体观察者,实现观察者接口Example:主题接口
2016-09-26 23:28:45 189
原创 2.1.4 装饰者模式
动态添加对象功能(通过叠加功能组件),可以有效分离性能组件和功能组件,提升模块的可维护性和复用性主要角色:组件接口,装饰者和被装饰者的接口,定义了被装饰者的核心功能和装饰者需要加强的功能点具体组件(被装饰者),具体的业务逻辑装饰者,持有一个具体的被装饰者对象具体装饰者,实现装饰逻辑,继承自装饰者UML图见书P28例子:组件接口public i
2016-09-13 23:21:48 166
原创 100.Same Tree
Given two binary trees, write a function to check if they are equal or not.Two binary trees are considered equal if they are structurally identical and the nodes have the same value.递归匹配pu
2016-09-13 20:35:11 302
原创 83.Remove Duplicates from Sorted List
Given a sorted linked list, delete all duplicates such that each element appear only once.For example,Given 1->1->2, return 1->2.Given 1->1->2->3->3, return 1->2->3.遍历一遍即可,重复则删除public Li
2016-09-13 19:22:09 182
原创 70.Climbing Stairs
You are climbing a stair case. It takes n steps to reach to the top.Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?菲波那切数列public int climbSt
2016-09-13 19:10:25 208
原创 67 Add Binary
Given two binary strings, return their sum (also a binary string).For example,a = "11"b = "1"Return "100".public static String addBinary(String a, String b) { int i = a.length() - 1
2016-09-13 19:01:57 202
原创 Java中finally与return的执行顺序
finally不会执行的两种情况:1.finally对应的try块语句还没被执行到就返回了2.finally对应的try块语句中有System.exit()这样的语句finally块的语句在try或catch中的return语句执行之后返回之前执行若finally里也有return语句,则覆盖try或catch里的return的值后返回finally里的修改语句(不是ret
2016-09-06 11:05:37 389
原创 2.1.3 享元模式
以提高性能为目的核心思想:一个系统中存在多个相同的对象,只需共享一份对象的拷贝,而不必为每一次使用都创建新的对象。(复用对象)主要角色:享元工厂:创建具体享元类并维护相同的享元对象,内部实现类似单例模式,请求的对象已存在时直接返回对象,没有则创建(维护一个对象列表)抽象享元:共享对象的业务接口具体享元类:实现抽象享元类,完成具体的逻辑主函数:通过享元工厂获取对象
2016-09-05 22:27:18 216
原创 Java类的初始化顺序
对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器当有继承时,顺序为父类(静态变量、静态初始化块) > 子类(静态变量、静态初始化块) > 父类(变量、初始化块) > 父类构造器 > 子类(变量、初始化块) > 子类构造器1.静态变量、静态初始化块的初始化顺序由他们在类中出现的顺序决定2.变量、初始化
2016-09-04 14:37:36 243
原创 2.1.2 代理模式
使用代理对象完成用户请求,屏蔽用户对真实对象的访问本节应用:实现延迟加载,提升性能(只是应用场景的一种),系统启动时初始化代理类,等真正用时再加载真实资源参与者: 主题接口,定义代理类和真实主题的公共对外方法,也是代理类代理真实主题的方法 真实主题,实现业务逻辑的类 代理类,代理和封装真实主题 客户端,使用代理类和主题接口
2016-08-28 19:59:51 330 2
原创 2.1.1 单例模式
一种对象创建模式,确保系统中的一个类只产生一个实例两大好处:1.对于频繁使用的对象,可以减少创建的系统开销2.减轻GC压力,缩短GC停顿时间参与者:单例类,提供单例的工厂使用者,获取并使用单例第一种:首先,单例类必须要有一个private访问级别的构造函数,其次instance变量和getInstance()必须是static的无法对instance
2016-08-28 19:54:43 383 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人