自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (9)
  • 收藏
  • 关注

原创 005.聊聊线程与线程池

作为Java 搬砖人员,免不了要接触线程与线程池,今天就来聊聊线程与JDK里的线程池进入今天内容前,我们先思考下这么个问题:线程池里的线程是如何维持生命,不被GC掉?what is threadthread的使用thread的几种状态JDK线程池的使用线程池里的线程线程(英语:thread)是操作系统能够进行运算调度的最小单位一条线程指的是进

2016-08-21 15:43:36 441

原创 004.聊聊线程安全2

第二期里从线程安全的角度聊了聊系统设计 本期继续结合具体的技术点来聊聊线程安全惯例,先看栗子++i 或者 i++ 是否原子操作?这里先不进行分析,大家可以先想想 我们先来看看Java的内存模型Java能够实现跨平台,得益于Java虚拟机规范所定义的Java内存模型 这个模型屏蔽对硬件和操作系统的内存访问差异,使得Java程序在各个平台里运行都能够达到一致的内存访问效果 《深入Java虚拟机》

2016-01-20 16:16:10 663

原创 003.聊聊系统设计:有状态、无状态

上一期从线程安全的角度聊了聊系统设计要注意的事情,这次换个角度继续聊聊系统设计 这次主题围绕系统设计:有状态、无状态惯例,先看栗子网站登录校验,很普通的一个功能 对于这个功能我们要如何实现?先分析一下登录校验是个啥意思 举个栗子,比如我们在登陆页输入用户名密码,登录了社交网站 这时候想去看自己的新鲜事,却告诉我请先输入用户名密码进行验证。。 这时候想去吐槽下这个2B体验,发个新鲜事,点完发

2016-01-04 17:13:41 18848 4

原创 002.聊聊线程安全

本期主题为系统线程安全方面part1 先看一个案例我们的一个线上服务,一个更新用户礼物领取状态接口的逻辑是这样的:简化这个更新接口的参数为 userId,giftId1.传入用户Id和领取的礼物Id2.先读取放在redis的用户map数据,领取状态是这个map的其中一部分3.更新用户map数据里对应礼物的领取状态4.整个map写回redi

2015-12-28 17:00:10 869

原创 001.从合理使用工具开始

最近尝试在团队里发起一个技术探讨会尝试推动大家每次选一个小的技术点,进行分享,然后落地成开发规范、code review List开篇总要说下背景,所以免不了啰嗦几句首先,代码是程序猿的脸面,怎么能不上心不久前,看了篇知乎上的文章,顿时菊花一紧,心想,此时难不成在某个地方也有人在吐槽哥的代码出来混总是要还的,这话还真应验了,前段时间,接触的系统,那个惨不忍睹

2015-12-21 19:26:15 1234

原创 论设计文档的重要性

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2015-07-26 15:50:58 905

原创 【mysql】mysql学习笔记

1.库表设计1.1表字段选择以满足需求为主更小的更好,能用smallint 就没必要用int简单的更好,简单的类型的代价也更低避免NULL值,存在NULL值mysql在处理上会难优化1.2表大小单个表太大的话,可以考虑拆分表1.3范式化与反范式化的混合适当的构建冗余字段,对于查询还是非常有好处的不然就要关联查询了,多一次IO总是耗性能的

2015-06-10 17:19:03 564

原创 【thrift】 thrift原理浅析

【thrift】 thrift原理浅析上文介绍了 thrift 入门例子下面简单介绍 thrift 的基本原理这里以 thrift server端为例子1.创建socket/*             * thrift 封装的 socket 层,使用端口7911构建一个非阻塞的socket             */        TNon

2014-07-06 14:28:14 11377 1

原创 【thrift】 thrift入门

【thrift】 thrift入门thrift 是Facebook开源的跨语言的RPC通信框架,支持的语言比较多,如java、c++、Python等thrift提供的跨语言的编译工具,可以基于thrift idl语言编译出所支持语言的源代码文件利用thrift,可以方便的开发出服务间的RPC通信框架,促进服务间的解耦第一部分:thrift 入门1.idl 文件,下面的说明均基于j

2014-07-06 14:25:11 1039

原创 【resin】 resin3 线程池与IO模型(2)

【resin】 resin3 线程池与IO模型(2)上篇文章主要介绍了resin3的线程池逻辑,下面具体分析下resin3的网络IO模型resin3开源版使用的IO模型是BIO模型相关的核心类是Port和TcpConnection下面贴出源码:为说明核心逻辑,只展示核心的代码本文所分析为个人理解,欢迎指出不足之处或分享你的观点下面看看 Por

2014-03-22 11:00:37 2978

原创 【resin】 resin3 线程池与IO模型(1)

【resin】 resin3 线程池与IO模型(1)本文所讨论的线程池及IO是基于resin3.1.13开源版resin3的线程池IO相关的类主要是3个:Port、TcpConnection、ThreadPoolTcpConnection:处理tcp链接的taskPort:创建TcpConnection task的主线程TreadPool:resin

2014-03-22 10:58:29 2368

转载 【JVM】GC系列文章

GC系列文章成为JavaGC专家Part I — 深入浅出Java垃圾回收机制成为JavaGC专家Part II — 如何监控Java垃圾回收机制 成为Java GC专家系列(3) — 如何优化Java垃圾回收机制成为Java GC专家(4) — Apache的MaxClients参数详解及其在Tomcat执行FullGC时的影响

2013-10-24 10:39:52 550

原创 【java】java传值

// Java和C++的参数传值上存在共同的地方,也有不同的地方// Java 只有传值 , 而C++ 则既有 传值 也有传 引用// 因此 C++ 可以对地址值进行操作// 来看个 Java 例子public class MethodParameterTest { public static void main(String[] args) { List aa = new Ar

2013-03-16 13:18:32 952

原创 【rose】portal

rose的portal是一个非常不错的web服务端技术传统的web服务器对一个request请求的处理是串行的只有所有逻辑处理完后才返回数据给页面渲染这样的好处固然简单,但是也有极为严重的缺陷如果其中一段代码发生异常将可能造成请求处理中断,直接导致500错误而rose的portal技术则是一种并发的web服务端技术这里所讲的并发是指portal将request的处理分成了多个并发处

2013-01-03 17:18:24 902

原创 【java】Integer == Integer?

/** *Q:Integer和Integer对象用 == 进行比较的过程是怎样的? * *看例子 */public class Test { public static void main(String[] args) { int a = 1; int b = 1; Integer c = 3; Integer d = 3; Integer e = 321;

2012-12-15 12:19:31 9096 5

原创 【rose】rose初始化

【rose】rose初始化rose封装了spring框架,集合spring IOC和AOP所构建的一个MVC框架rose载体为RoseFilter在web.xml配置文件,如filter进行配置即可,如下: filter>              filter-name> roseFilter filter-name >

2012-12-02 13:10:27 1990 2

原创 【Tomcat】学习笔记:tomcat容器基本实现原理

推荐大家阅读 how tomcat works,这本书对tomcat原理做了详细的讲解index一个servlet容器是一个复杂的系统,但是实现一个请求,servlet容器需要做最基本的三件事:1.构建一个带有参数,请求头,cookie,url等信息的请求对象这个对象可以是javax.servlet.ServletRequest interface or the jav

2012-10-21 13:46:21 1796 1

原创 【JVM】spring单例内存管理简单分析

【JVM】spring单例内存管理简单分析问题描述:spring框架中controller类实例为单例开发过程中,在controller中定义的成员变量是否添加 static 描述符,在内存管理上会有区别吗?设计模式中单例的一个例子:public class Singleton {    private static Singleton sing = n

2012-10-20 09:53:42 3270

原创 【JVM】java内存管理入门

【JVM】java内存管理入门JVM管理的内存包括以下的运行时数据区域程序计数器:作用是当前线程所执行的字节码的行号指示器java虚拟机栈:线程私有,描述java方法执行的内存模型:每个方法被执行时会同时创建一个栈帧该栈帧用于存储局部变量表,操作数栈,动态链接,方法出口等信息     每个方法被调用到执行结束的过程,都对应着一个栈帧在虚拟机栈中从

2012-10-14 09:12:30 933

原创 【spring】spring MVC入门

【spring】spring MVC入门spring mvc框架是一个web服务端开发框架基于spring mvc框架进行开发,能够让我们脱离对底层代码实现的开发让我们更加的专注于业务逻辑代码的开发,大大提高web服务开发的效率spring mvc总体上分为三块:controller模块:这个模块主要是获取用户请求,进行判断处理,然后返回数据model模块:

2012-10-06 17:41:25 460

原创 【spring】深入IOC(2)

【spring】深入IOC(2)在完成了对用户定义的bean信息的载入后,即IOC容器初始化完成,我们就可以通过依赖注入来使用这些bean对象了而依赖注入的过程是用户第一次向IOC容器索要bean时触发的,当然通过设置lazy-init的属性也是可以实现bean的预实例化的通过getBean接口,就会触发依赖注入的发生对于单例情况,单例实例的维护是通

2012-10-01 12:42:10 739

原创 【spring】深入IOC

【spring】深入IOCspring IOC容器封装了我们自定义的bean信息,为我们持有bean及管理bean的生命周期IOC容器初始化过程包含bean信息的定位、载入和注册过程要初始化IOC容器,首先需要对定义的bean信息进行定位,找到所需的bean信息然后把这些bean信息载入到内存中持有bean信息的数据结构是 BeanDefin

2012-09-30 13:31:48 628

原创 【spring】IOC入门

spring的核心概念之一:控制反转——IOC控制反转简单来说就是,依赖接口,把控制权移至接口不依赖实现,高层模块不依赖于底层模块spring是非侵入的,通过使用IOC,对象是不主动去找而是被动接收依赖类的以此来实现松耦合控制反转通过依赖注入实现,而常见的实现方式也有三种:接口注入,setter方法注入,构造注入example_1:通过setter方

2012-09-30 09:19:08 348

原创 【java学习】java与C++的简单比较

1.语言类型java是解释型语言.java源代码经过编译会生成.class文件,由JVM虚拟机执行程序,执行过程加载需要的.class filejava是跨平台的,只要该平台系统能够执行相应的JVM虚拟机,则就可以对编译的class文件进行加载执行C++是编译型语言源代码编辑,然后编译器编译源代码,生成中间代码,然后由连接器把中间代码与各种库等进行链接,最终生成可执行的ex

2012-09-08 12:00:35 1159

原创 【JVM】JVM的类加载学习

JVM的类加载学习1.类的加载,即JVM把类的二进制数据加载到内存的时候,放在程序运行时的方法区内二进制数据应该是包含了类中的所有数据内容,如方法\变量同时JVM会自动在堆区创建类的唯一对象(java.lang.Class),这个对象封装了类在方法区内的数据结构2.类的加载包含了三个过程:装载,即把类的.class文件这些二进制数据加载到内存然后进行

2012-08-14 13:44:09 679

原创 【rose】rose框架学习总结

rose框架学习总结rose框架为paoding rose框架具体可见https://code.google.com/p/paoding-rose/1   对rose框架的整体认识1.1B/S web开发 我们所做的web开发是基于HTTP的应用服务开发,主要由两部分组成:浏览器+服务端 大致流程为:浏览器向服务端发送HTTP

2012-08-04 09:23:19 6726 1

Linux命令大全

Linux命令大全,详细介绍linux下的各类命令的用法

2011-10-27

微软面试题

这是关于微软面试题目的一个比较全面的整理

2011-10-27

Google笔试题整理

关于Google笔试题的一个非常全面的整理

2011-10-27

VC++深入详解的代码

此为VC++深入详解配套原书代码示例 VC++深入详解是从实际应用入手,由浅入深、循序渐进地讲述Windows程序内部运行机制、MFC框架、文本、菜单、对话框、文件操作、网络编程、进程间通信、ActiveX控件、动态链接库、HOOK编程等多个主题

2011-10-27

linux下即时通信工具

基于linux和mysql编写的即时通信工具,完整编码,包括客户端与服务端及mysql代码文档

2011-10-27

在Linux世界驰骋系列全集

介绍linux系统,对linux系统简单的入门

2011-10-27

Harris+Corner角点检测

Harris+Corner角点检测,完整源代码,并附有测试图片与讲义

2011-10-27

空空如也

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

TA关注的人

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