自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

QueryDSL学习笔记

最近部门同事在开发统一数据服务层,了解到其底层使用到了QueryDSL,于是花了几个小时在网上看了一下资料,写了一个小例子,供大家参考;QueryDSL介绍QueryDSL仅仅是一个通用的查询框架,专注于通过Java API构建类型安全的SQL查询。Querydsl可以通过一组通用的查询API为用户构建出适合不同类型ORM框架或者是SQL的查询语句,也就是说QueryDSL是基于各种...

2012-03-23 15:06:18 565

2011回顾

以前没有习惯去做总结,但是今年的今天,着实想写点什么,因为2011,于我来说,是非常重要的一年!一、家庭首先,今年3.10,我们在老家办喜酒,我们结婚了!其实领证是在2010.6.1,但对两边的爸爸妈妈来说,喜酒同样重要;回想起走过的八年,真的是挺不容易的;经常听到有人说“七年之痒”,但它在我们这里都是浮云,我们彼此还是像刚在一起的时候互相关心对方,老婆过...

2012-01-09 12:14:23 114

JVM线程知多少

本文已在黄金档上发表,原文链接:http://www.goldendoc.org/2011/11/jvm-thread/两个问题什么是守护线程?守护线程与非守护线程有什么区别?其应用场景有哪些?一个简单的Java程序,启动后JVM创建了哪些线程,它们的作用是什么?熟悉上面两个问题的同学可以绕过了,不太熟的同学可以继续往下看,哈哈!守护线程守护线程,又叫Daemon...

2012-01-09 12:10:56 162

杭州QCon总结–开放平台

 开放平台这个话题其实很大,涉及到多方面,比如平台搭建、安全、流量控制与计费、服务端性能优化等;这次QCon会议中,人人网介绍了开放平台授权与验证,飞信介绍了资源分配与控制策略,淘宝介绍了Web请求异步化处理,腾讯介绍了Open API的设计;下面是我之后的一些总结;1、授权与验证还是拿网上最流行的例子吧,网站A提供图片存储服务,网站B提供在线打印服务;现在用户想使用网站B提供的在线打...

2012-01-09 11:38:56 1373

杭州QCon总结–NoSQL

 本文已发表在:http://www.5ilei.com/writing/2011-hangzhou-qcon-nosql.html 有幸参加了今年InfoQ在杭州首次举办的QCon大会,下面将我了解到的一些知识总结并分享给大家,其中有些是会后查资料了解的,有不正确的地方欢迎指出; QCon中有一个专题专门介绍大数据及NoSQL,正好也对这方面有一点兴趣;介绍NoSQL的还真是...

2012-01-09 11:35:28 227

原创 JMS规范之JMS消息

[注]:本文已在黄金档上发布,原文链接见http://www.goldendoc.org/2011/08/jms_spec_message/。 JMS,即Java Message Service,它为Java应用程序提供了一种通用的用于创建、发送、接收以及读取消息的方式; JMS体系架构1、 ...

2011-08-23 10:47:40 101

Linux内核网络协议栈8—socket监听

几个问题了解以下几个问题的同学可以直接忽略下文:1、listen库函数主要做了什么?2、什么是最大并发连接请求数?3、什么是等待连接队列?socket监听相对还是比较简单的,先看下应用程序代码:listen( server_sockfd, 5) ;  其中,第一个参数server_sockfd为服务...

2011-08-02 09:07:21 314

Linux内核网络协议栈7-socket端口管理

一、前情回顾上一节《socket地址绑定》中提到,应用程序传递过来的端口在内核中需要检查端口是否可用:if (sk->sk_prot->get_port(sk, snum)) { inet->saddr = inet->rcv_saddr = 0; err = -EADDRINUSE; ...

2011-07-05 11:08:38 472

Linux内核网络协议栈6-socket地址绑定(续)

接上篇《socket地址绑定》  三、根据不同的协议来完成绑定上面代码中的第3步是根据应用程序在创建socket时传递到内核的协议域及socket类型来决定调用采用哪个方法,具体可以参考创建socket一文,这里不再赘述;下面以AF_IENT及SOCK_STREAM为例来说明绑定的过程;1、调用链:net/Socket.c:sys_bind()-&g...

2011-06-24 21:11:29 260

Linux内核网络协议栈5-socket地址绑定

 一、socket绑定入口1、示例代码struct sockaddr_in server_address;server_address.sin_family = AF_INET;server_address.sin_addr.s_addr = inet_addr("0.0.0.0");server_address.sin_port = htons(9734);s...

2011-06-24 15:34:47 191

Linux内核网络协议栈4-创建socket(续)

接上篇“创建socket”一文; 5、分配sock结构:本文中的例子会调用inet_family_ops.create方法即inet_create方法完成socket的创建工作;其调用链如下:net/Socket.c:sys_socket()->sock_create()->__sock_create()->net/ipv4/Af_inet.c...

2011-06-17 14:13:42 224

Linux内核网络协议栈3-创建socket

 1、示例及函数入口:1) 示例代码如下:int server_sockfd = socket(AF_INET, SOCK_STREAM, 0);2) 入口:net/Socket.c:sys_socketcall(),根据子系统调用号,创建socket会执行sys_socket()函数;2、分配socket结构:1) 调用链:net/Socket.c:sys_socket()-&g...

2011-06-17 12:28:00 210

Linux内核网络协议栈2-socket从库函数到内核

 一、socket()库函数到系统调用,再到内核1、Linux运行的C库是glibc;2、socket()调用如下:1) socket()->__socket():glibc-2.3.6/sysdept/generic/socket.c (weak_alias(name1, name2))2) __socket():glibc-2.3.6/sysdept/unix/sysv/...

2011-06-14 15:30:46 174

Linux内核网络协议栈1- socket文件系统注册

 一、注册时机1、在内核初始化时完成;2、内核初始化过程(init/main.c):kernel_init()->do_basic_setup()->do_initcalls()->do_one_initcall();3、socket文件系统注册过程(net/socket.c):core_initcall(sock_init);1) core_initcall宏定义如...

2011-06-14 15:20:45 186

原创 回车(CR)与换行(LF)

一、“回车”(Carriage Return)和“换行”(Line Feed)的来历       在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将...

2011-05-25 12:45:30 191

原创 Tomcat Context组件介绍

Context代表一个Web应用,它运行在某个指定的虚拟主机(Host)上;每个Web应用都是一个WAR文件,或是一个包含WAR解压后的文件的目录;Connector组件接收到http请求后,通过将请求URI的最长可能前缀与每个Context的path进行匹配,然后选择相应的Web应用来处理这个http请求。之后,Context会根据web application deployment d...

2011-05-09 12:56:47 275

多进程log4j日志丢失问题分析

一、背景:后台有很多任务,每个任务都是一个main函数(JVM或进程),但是所有的任务都加载同一个log4j.xml文件,即往同一份文件中输出日志。二、原因追踪:在 log4j 的 DailyRollingFileAppender 类中:void rollOver() throws IOException { /* Compute filename, but ...

2011-03-28 16:47:48 579

原创 kernel-1 内核对照

进程管理-x86系统:进程结构:<include/linux/sched.h>-struct task_structthread_info:<arch/x86/include/asm/thread_info.h>-struct thread_infothread_union:<include/linux/sched.h>current_thr...

2010-08-03 13:57:16 168

原创 kernel-4 进程管理

进程的概念进程就是处于执行期的程序;包含:可执行程序代码(代码段text section),打开的文件、挂起的信号、内核内部数据、处理器状态、地址空间及一个或多个执行线程、存放全局变量的数据段(data section)等;执行线程即线程,是在进程中活动的对象;每个线程都拥有一个独立的程序计数器、进程栈和一组进程寄存器;内核调用的对象是线程,而不是进程;在传统的Unix系统中,...

2010-08-01 14:53:15 111

原创 kernel-3 从内核出发

编译内核:在编译内核之前,必须配置它;配置的选项以CONFIG_FEATURE形式表示,如对称多处理器(SMP)的配置选项为:CONFIG_SMP=y/n;y表示启用,n表示不起作用;make config:该工具会挨个遍历所有配置项,要求用户选择yes,no或是module;make menuconfig:基于X11的图形工具;make xconfig:基于gtk+图形工...

2010-08-01 09:34:21 180

原创 Spring 5-从容器中取得bean

三、从容器中取得bean1、前面体会到了一点,那就是解析bean的职责分工;在这里,这个特点又有充分的体现;2、如何取得bean?当应用程序通过beanFactory.getBean("simpleBean")从容器中取得bean实例时,处理该请求的是AbstractBeanFactory中的以下方法:protected Object doGetBean(...

2010-07-31 16:29:32 92

原创 Spring 4-注册的具体过程

二、注册的具体过程1、职责类由DefaultListableBeanFactory来完成,该接口实现了ListableBeanFactory和BeanDefinitionRegistry接口;2、源码解读前一节中谈到,生成BeanDefinition后,由BeanDefinitionReaderUtils.registerBeanDefinition()来完成向...

2010-07-31 16:28:05 583

原创 Spring 3-Bean的解析

一、Bean的解析(以XmlBeanFactory为例来说明)1、构造级联容器AbstractBeanFactory.javapublic void setParentBeanFactory(BeanFactory parentBeanFactory) { // 如果当前容器已经指定了父容器,且新的父容器与当前的父容器不相同,则出错了; if (this.pare...

2010-07-31 16:26:00 128

原创 Spring 2-看看容器中有什么

一、初始化// 1. 资源Resource res = new ClassPathResource("beans.xml");// 2. 初始化IOC容器BeanFactory beanFactory = new XmlBeanFactory(res); 二、如何查看容器中的bean定义信息?// 3. 转化为可枚举容器ListableBeanFactory l...

2010-07-31 16:21:32 104

原创 Spring 1-IoC粗类图

一、类图先来一张全图吧,如图目的: 从整体上把握各个类、接口之间的关系;大致了解各个类、接口的职责;

2010-07-31 16:15:20 74

原创 kernel-2 Linux内核简介

操作系统是指整个系统中负责完成最基本功能和系统管理的那些部分,包括:内核驱动程序启动引导程序命令行shell或者其它种类的用户界面基本的文件管理工具和系统工具内核通常由:负责响应中断的中断服务程序负责管理多个进程从而分享处理器时间的调度程序负责管理进程地址写意的内存管理程序网络、...

2010-07-31 16:12:48 116

JVM内存分配、垃圾回收、启动参数

一、Java内存组成组成图堆(Heap) 运行时数据区域,所有类实例和数组的内存均从此处分配。Java虚拟机启动时创建。对象的堆内存由称为垃圾回收器的自动内存管理系统回收。组成 组成 详解 Young Generation 即图中的Eden + From Space + To Space 1.Eden存放新生的对象 2.Survivo...

2010-04-22 20:29:47 74

Java虚拟机学习笔记(五)类型的生命周期

一、类型生命周期的开始如图所示初始化时机 所有Java虚拟机实现必须在每个类或接口首次主动使用时初始化;以下几种情形符合主动使用的要求: 当创建某个类的新实例时(或者通过在字节码中执行new指令,或者通过不明确的创建、反射、克隆和反序列化);当调用某个类的静态方法时(即在字节码中执行invokestatic指令);当使用某个类或接口的静态字段,或者对该...

2010-04-22 20:23:45 87

Java虚拟机学习笔记(四)class文件

一、class文件内容每个class文件只能包含一个类或接口;class文件内容按顺序如下:magic(魔数)-u4 0xCAFEBABE,其作用在于可以轻松辨别出Java class文件和非Java class文件;minor_version-u2和major_version-u2(次、主版本号) 对于虚拟机来说,主次版本号确定了特...

2010-03-09 19:22:58 115

原创 Java虚拟机学习笔记(三)Java虚拟机

一、JVM的生命周期当启动一个Java程序时,一个Java虚拟机实例就诞生了;当该程序关闭退出时,这个Java虚拟机也就随之消亡;JVM实例通过调用某个初始类的main方法来运行一个Java程序;这个main方法必须是public、static的,而且返回值必须是void;任何一个拥有这样的main方法的类都可以作为Java程序运行的起点;Java程序初始类中的main方法,将作为该...

2010-03-02 18:30:42 94

Java虚拟机学习笔记(二)安全

一、基本沙箱组成沙箱的基本组件有: 类装载器结构; class文件校验器; 内置于Java虚拟机(及语言)的安全特性; 安全管理器及Java API; Java的沙箱安全模型,最重要的优点之一就是这些组件中的类装载器和安全管理器是可以由用户定制的; 二、类装载器体系结构类装载器体系结构是Java沙箱中的第一道防线; 类装载器体系结构在三个方面对...

2009-12-19 19:03:57 100

Java虚拟机学习笔记(一)Java体系结构

一、体系结构组成当编写并运行一个Java程序时,就同时体验了这四种技术。用Java语言编写源代码,马它编译成Java Class文件,然后再在Java虚拟机上运行class文件。当编写程序时,通过调用类中的方法来访问系统资源。当程序运行的时候,它通过调用class文件中的方法来满足程序的Java API调用。Java程序设计语言 Java Class文件格式 Java应用编程接...

2009-12-19 16:56:06 111

空空如也

空空如也

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

TA关注的人

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