post

进程与线程的一个简单解释

进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。

最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。

1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。

工厂
[Read more…]
post

大神手把手教你如何使用异步编程提升服务性能

作者:肖飞,2011年加入京东,目前在交易平台,主导交易平台核心系统的架构优化和技术攻关,以及公共技术组件和平台的建设。

庞大复杂的系统通常会采用服务化组件来实现。系统越复杂,组件之间的依赖和调用关系也会越复杂。对于处于底层的基础服务,直接和间接的调用所带来的流量压力非常大。处于中间层的聚合型服务,面对的挑战则是依赖的服务太多,后端个别服务的性能延迟就会影响其吞吐量。性能优化是我们系统稳定性中的重要一环,这其中,调用所依赖的RPC服务或后端数据是重点之一。

目前,除了传统JDBC这样从API到主流驱动实现就是阻塞式的类库之外,其他常用的RPC/HTTP服务、MQ、Redis、Mongodb、Kafka等系统都提供了成熟的基于NIO的客户端库,也有相应的异步API。

[Read more…]
post

设置 IntelliJ Idea 的中英文字体

这是一篇2013年09月份的草稿,一直没有发布,今天翻出来,好好整理下。

Eclipse 还没有用熟练的时候,我就开始投入到 IntelliJ Idea 的怀抱了,习惯后真的很方便,界面看着也舒服。

写代码的时候,我还是习惯用 YaHei.Consolas 字体,中英文显示的效果都很好看,结合了雅黑和Consolas字体的优点,喜欢的可以点此下载:YaHei.Consolas.1.11b.ttf(下载后放到系统的字体目录即可)
[Read more…]

post

调用WebService超时问题汇总(Java、C#)

目前比较常用的 WebService 有两种方式:SOAP和REST,本文就以调用这两种方式的服务,介绍编程中常用的超时设置,包括 JavaC# 调用远程 SOAP 服务,以及利用 HttpClient(Java)和 HttpWebRequest(C#)调用 REST 服务(简单的 HTTP 服务)的超时问题。

小彩旗停不下来
[Read more…]

post

详解Quartz定时任务框架中的Cron时间表达式

Quartz是英文“石英”的意思,如果你的表上有这个单词,这只说明你的手表是电子石英脉冲手表。在编程中,有一个名为Quartz的开源作业调度框架,顾名思义,就是定时执行任务。多应用于Java编程中与Spring框架相集成,目前也有Quartz.net。

Quartz使用类似于Linux下的Cron表达式定义时间规则,Cron表达式是由6或7个字段(年字段是可选字段)的字符串组成,字段与字段之间用空格来隔开,最小支持到秒数级别。

本篇文章参考的是官网帮助文档的 Cron表达式 ,英文在线帮助文档的,有兴趣的可以前往:
Quartz官方下载地址 | Cron expressions

[Read more…]

post

Java IDE中设置作者日期等Javadoc注释信息

JavaIDE(Integrated Development Environment,集成开发环境)中,如Eclipse、Spring Tool Suite、IntelliJ IDEA等,都可以设置自动添加的Javadoc注释信息,可以添加@author 作者名、@version 版本标识、@date 日期等,新添加类或方法时会自动添加注释信息,很方便。/**被注释语句*/ 就是专为Javadoc设计,可以被JDK内置的Javadoc工具支持和处理,下面就介绍下如何设置Javadoc注释信息和注释的规范。

[Read more…]

post

Ubuntu下搭建Java开发环境

其实类似的文章很多很多,我每次安装都会遇到不同问题,同时学会解决不少问题,每一次的问题记录下来就是一笔不小的财富。距离上一次玩Ubuntu过去一年了,最近配置了一台新台式机,就又弄起开发环境了。这台电脑也就主要用于学习Linux和一些比较流行的技术,如Redis、Nginx、Hadoop、Scribe等。

本次环境为:Ubuntu 13.04 64位 + JDK 1.6 + Tomcat 6 + Spring Tool Suite(STS)+ Subclipse 1.8

Ubuntu Java开发环境
[Read more…]

post

C#调用Java提供的WebService

现在,越来越多的大项目在使用Java,.net出身的我,也参与了一个Java项目的开发,项目也快接近尾声了,算是今年最重要的一个工作。现在公司的.net项目还是不少的,前期用.net开发效率比较高,但是出于成本和开源等多方面的考虑,还是Java比较占优势,现在公司的新项目也都是用Java开发的了。

下面介绍下,在.net项目中如何调用Java项目提供的WebService,留作备忘。

1、首先用Visual Studio 命令提示生成WebService客户端类文件;

wsdl //www.izhangheng.com/ws/webservice?wsdl

[Read more…]

post

Linux下安装jdk和tomcat

Linux 下安装jdk6:

1、到 sun 网站下载 jdk rpm 软件包 jdk-6u11-linux-i586-rpm.bin;
2、在/usr下建立一个java目录,拷贝 jdk-6u11-linux-i586-rpm.bin 到 java目录;
3、给 jdk-6u11-linux-i586-rpm.bin 加上执行权限,
命令:chmod a+x jdk-6u11-linux-i586-rpm.bin
4、执行: ./jdk-6u11-linux-i586-rpm.bin,得到 jdk-6u11-linux-i586.rpm
5、执行: rpm -ivh jdk-6u11-linux-i586.rpm
6、至此,安装成功,设置环境变量;
7、设置linux的全局环境变量,需要root权限,可在命令行下输入su 切换到root用户;
8、或者执行命令sudo gedit /etc/profile ,修改etc/profile 文件,在最后加入如下代码:
[Read more…]

post

JAVA中的J2EE,J2SE,J2ME,JRE,JDK,JVM

J2EE: Java 2 企业版
J2SE: Java 2 标准版
J2ME: Java 2 微型嵌入式版 

JRE:Java 的运行环境。
JDK:是一切java应用程序的基础,所有的java应用程序是构建在这个之上的。它是一组API,也可以说是一些java Class
SDK:软件开发工具包.
http://java.sun.com/products/

[Read more…]