自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 记一次JAVA程序的性能调优

背景笔者最近一个阶段做一个大数据方面的项目。和其他大数据项目使用Spark,ES不同,这个项目使用存文件的方式。写文件时把用户所需要的数据全部准备好,典型的以磁盘空间换用户查询时间的方式。大概流程如下:数据进来-->原始数据落磁盘-->小时数据汇总成各种数据报表-->天数据汇总成各种数据报表-->月数据汇总成各种报表。原始数据量为170亿每天,最终生成各种报表后大概为200G每天,

2016-08-26 10:48:58 420

原创 资源监控工具Munin

Munin 是一款优秀的性能监控工具,采用client-server模式,支持同时监控多个节点,并且以web的方式展现出来。

2016-08-02 17:33:57 513

原创 VisualVM 远程监控jmx程序

VisualVM 是一款可以安装很多插件,一款集大成的Java性能监控工具。目前网上很多关于VisualVM远程监控的配置都比较简单,而且说的不清楚,往往读者不能从这些文章中配置自己的监控环境。笔者经过一番摸索后,爬过一些坑,详细记录下,以供后者使用。1.  找到jmx配置文件2. 复制jmxremote.password.template 文件并修改配置,找到

2016-07-29 16:20:28 403

原创 Beautiful SOAP 爬网页

Python Beautiful SOAP 是一款强大的html解析工具,堪称网络爬虫利器。下面代码为工具cvelist.csv文件中的CVE ID, 分别爬出该CVE信息的一段代码。供记录。# -*- coding: utf-8 -*-import sysreload(sys)sys.setdefaultencoding('utf-8')import timeimpor

2016-07-05 19:59:34 523

原创 Java的类加载机制

Java 类加载过程1. 加载2. 链接验证。 验证正确性,和我们自己写函数要验证入参一样,必须验证该类为正确以后才能继续。否则会造成程序崩溃准备。分配静态变量内存空间解析。 解析出类中符号引用。比如函数等应用。3.初始化Java类被初始化的条件1. 被调用new, put static, get static 或者invoke static指令

2016-05-04 10:29:59 339

原创 Java 泛型extends和super

这个常常让人很迷惑,其实只要记住就可以了。当需要读的时候,用extends,这样可以保证元素都有基类的属性。当需要写的时候,用super。

2016-05-03 20:26:43 247

原创 Java 多态

本文对Java 多态,继承,重载(overload),重写(override)技术做一个简单小结。

2016-04-27 22:20:53 241

原创 JAVA NIO

Java 提供了NIO概念,也即是非阻塞IO概念。并引入了对文件和socket的一些封装。本文将详细介绍NIO。

2016-04-21 20:59:00 320

原创 Java IO

Java IO 非常看起来非常难记,难于使用,尤其是看了类图以后,大家一下就不想再深入下去了。本文试图通过一种让人容易理解的方式,来阐明JAVA IO。Java IO 示意图Java IO 的简单记忆方法需要记住这5句再加上一些demo便可以整个理解Java IO了。1. Java IO 分为字节流和字符流。 字节流按照字节byte (0~256)进行操作,

2016-04-18 16:48:54 269

原创 Java GC机制

前计JAVA相对于C++的一大好处是不用程序员自己进行new/delete 来手动管理内存了。 虽然是好处,但这些年来,一直被人诟病,内存泄漏情况比较严重。打个比方,你有个自称很牛逼的管家说可以帮你搞定一切投资,刚开始你觉得很开心,自己不用做事情了。后来发现这管家总体来说还可以,但也存在吹牛逼的现象,有的时候他把你的资产漏掉一部分,这个时候估计你整个人都不爽了。笔者开发的项目中曾经过一个用

2016-04-05 20:14:14 299

原创 Java线程模型

简述Java的内存模型

2016-03-30 19:56:47 250

原创 Java多线程详解

详解多线程的几种用法

2016-03-30 14:01:26 231

原创 Java 对象Serializable

简述Java 的序列号

2016-03-29 19:42:48 312

原创 JAVA集合类

目前中文博客中充斥着很多很多介绍Java集合类的文章,但大多人云也云,一眼就让人理解的不多。这边尝试重新介绍下,希望可以抛砖引玉。

2016-03-15 11:53:24 243

原创 详解Java 类的初始化

论坛中看到一道很有意思的代码,关于类的初始化顺序,这边尝试分析下。Java类的初始化顺序1 继承体系的所有静态成员初始化(先父类,后子类)2 父类初始化完成(普通成员的初始化-->构造函数的调用)3 子类初始化(普通成员-->构造函数)这边需要理解的是,这些不是绝对的,如首先初始化的静态方法或者变量调用了类的构造函数,那么也会造成普通成员和构造函数先

2016-03-10 23:32:16 315

原创 Java String详解

解释了Java 字符串相关操作知识

2016-03-10 23:06:09 343

原创 Java 的Comparable 和 Comparator

简述集合类排序时用到的比较方式:Comparatable和Comparator

2016-03-09 23:23:52 250

原创 Java 的clone

背景知识Java 中变量有基本类型和非基本类型之分。基本类型包括:Boolean1个bit位char2个byte(Unicode)int4个byteshort2个bytefloat4个bytelong4个bytedouble4个bytebyte1个

2016-03-09 00:02:35 237

原创 Java Immutable不可变类

详解Java不可变类

2016-03-08 23:10:56 776

原创 centos 7.0一键安装openstack

步骤一: 安装centos 7.0系统,配置好网络,保证能通外网步骤二:执行安装命令,等的时间会比较长,稍安勿躁.然后会看到成功提示。yum upgrade lvm2yum install deltarpmyum install -y http://rdo.fedorapeople.org/rdo-release.rpmyum install -y openstack-packsta

2015-12-30 14:04:40 391

原创 Java Atomic变量

Atomic 变量具有原子化下面代码片段中,isSet 原子化操作,可以防止在多线程环境中线程被起动多次import java.util.concurrent.atomic.AtomicBoolean;import java.util.concurrent.atomic.AtomicInteger;public class AutomicTest { static AtomicBo

2015-12-29 20:34:25 357

原创 Java final以及static用法简单demo

概述java final和static 变量的用法

2015-12-29 19:58:00 252

原创 数据结构与算法分析再读之引论和算法分析

本章由两个问题引开,并证明了一些算法基础的数学公式。

2015-12-28 23:01:34 276

原创 Java NIO 随笔(二)

Java NIO数据通道传输:RandomAccessFile fromFile = new RandomAccessFile("fromFile.txt", "rw");FileChannel fromChannel = fromFile.getChannel();RandomAccessFile toFile = new RandomAccessFile("toFile.tx

2015-12-23 16:52:46 263

原创 Java NIO 随笔

从C那边转过来学习java 的NIO,相对来说还是容易些。也更愿意把C底层的socket和Java NIO做些比较。Java NIO的核心部件:Channels对应于socket 的文件句柄Selectors对应于socket的select函数Buffers对应于socket的内存,通常即读写socket的void 数组。Channel 包含:Datagra

2015-12-23 15:02:27 228

原创 [APUE]再读之 标准IO库

本章介绍标准IO库1. FILE对象标准IO库一切函数基于FILE对象。FILE对象包含了管理该流的所有信息: 文件描述符,指向流缓存的指针,缓存的长度,缓存的字节数以及出错标识等2. 标准输入,标准输出和标准出错。对应非标准IO: STDIN_FILENO, STDOUT_FILENO,STDERR_FILENO对于标准IO: stdin,stdout,std

2015-12-04 13:58:06 289

原创 [APUE]再读之文件和目录

讨论不带缓存IO的各文件操作。

2015-12-01 09:29:21 290

原创 [APUE]UNIX 标准化

unix 的一些标准化内容

2015-11-30 20:14:12 199

原创 [APUE]再读之 unix 基础知识

描述了unix 系统的一些基本知识

2015-11-24 20:21:38 242

原创 [APUE]再读之高级IO

1. 非阻塞IO。阻塞IO有如下情况。 数据不存在,  则读操作永远阻塞。典型的为 管道操作。。 数据不能被立即接受,写这样的文件会被阻塞。。 打开文件会被阻塞。(典型为调制解调器。只写方式打开FIFO,要等待一个读进程)。 对已经加上强制性锁的文件进行读写。。 ioctl 操作。 某些进程间通信函数。 比如semophore的p,v 操作。管道阻塞的demo,子进

2015-09-28 20:32:32 287

原创 [APUE]再读之进程间通信

本章主要介绍几种进程间通信的方式。管道,FIFO(也叫命名管道), 消息队列,信号量,共享存储。其他的不在本章内容中的进程间通信方式有:流管道,命令流管道(下章介绍),套接字,流(后两种支持在不同主机间的进程通信)。

2015-09-08 20:10:31 268

原创 [APUE] 再读之进程关系

本章是最为难懂,最为晦涩的一章。主要讲解进程组,session, 终端,作业之间关系和概念。

2015-09-07 20:46:22 363

转载 c语言宏中的#和##

本文描述c语言中#和##的作用

2015-09-07 20:11:41 280

原创 标准的make file 模板

一个make file的模板,通吃所有项目。

2015-09-07 19:58:14 452

原创 [APUE] 再读之进程控制

本章解释了fork,exec函数族,exit,wait函数族,解释器文件,system 函数,以及进程会计和进程时间等。

2015-09-05 20:10:13 301

原创 [APUE] 再读之进程环境

本章节讲诉整个进程生命周期的方方面面,包括main 函数,进程终止方式,命令行参数,内存布局,动态库静态库,环境变量以及资源操作。顺带还解释了longjmp,setjmp函数,以及几种变量类型。

2015-09-04 15:25:18 326

原创 来看看C语言的-1>1并且小有1的问题

先看如下代码:#include //small to big, signed to unsignedint main(){ unsigned int ui_one =1; signed int i_one =1; signed short s_minus_one =-1; if(s_minus_one>ui_one) printf

2015-09-03 17:58:31 799

原创 论程序员的懒

系统是部署在AWS上的大型分布式系统。有的时候出问题找不到原因, 运维的兄弟特地部署了debug role.这个debug role会把debug log 全部打开,这样可以方便复现和查找问题。但往往有些时候,即使开了debug role, 也没有debug log。 还得现场改代码,重新部署,及其浪费时间。原因是什么, 懒。看下面的代码。(为了方便示例,隐去了所以复制逻辑)i

2015-08-28 09:15:27 275

原创 volatile变量的一个例子

volatile 用来告诉编译器不用做优化。非硬件的程序员碰到最多的例子是信号,和多线程环境中的情况。下面的例子是信号的情况下,有volatile和没有volatile的区别。变量flag用于,当接收到SIGUSR1信号时候提醒进程要做些事情。当用GCC O2 优化后,这些事情将用于得不到机会做。#include #include #include static volat

2015-08-27 22:28:39 319

原创 C时间函数

C的几个时间函数,写一段小代码,把其全部囊括。#include #include #include int main(){ time_t now = time(NULL); printf("now utc is %d\n", now); struct tm* gtmie = gmtime(&now); struct tm* ctmie = l

2015-08-27 14:54:39 296

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除