自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Go Channels 的状态与操作

什么是 Channels ?Channels 是 Goroutines 之间通信的通道,用于多个 Goroutine 之间的消息传递和协作。在很多编程语言中,线程之间通信和协作的方式往往是通过共享变量(共享内存)来实现的,这种编程方式需要程序员对于共享变量的读写进行保护,比如加锁,从而保证线程之间的正确协作。Go 语言提倡另一种方式 – 通过通信来共享内存,Goroutine 之间共享的值通过 channels 进行传递,Go 语言保证同一时刻只有一个 Goroutine 可以访问 channels 中的

2020-09-26 20:43:16 749

原创 什么是 Java 中的TLAB ?

TLAB (Thread Local Allocation Buffer,线程本地分配缓冲区)是 Java 中内存分配的一个概念,它是在 Java 堆中划分出来的针对每个线程的内存区域,专门在该区域为该线程创建的对象分配内存。它的主要目的是在多线程并发环境下需要进行内存分配的时候,减少线程之间对于内存分配区域的竞争,加速内存分配的速度。TLAB 本质上还是在 Java 堆中的,因此在 TLAB 区域的对象,也可以被其他线程访问。如果没有启用 TLAB,多个并发执行的线程需要创建对象、申请分配内存的时候,有

2020-05-12 16:17:20 10435

原创 JVM运行时数据区解析

Java虚拟机(Java Virtual Machine, JVM )定义了程序执行时的运行时数据区域 (Run-time Data Area),这些数据区具有不同的生命周期。有些数据区随着 JVM 的启动而创建,直到 JVM 退出的时候才销毁。而有的数据区是线程私有的,随着线程创建而创建,在线程退出的时候销毁。了解 JVM 的运行时数据区,有助于理解 JVM 的内存布局和管理。JVM 运行时数据区包含如下几种:PC(Program Counter)寄存器每个线程都拥有自己的PC寄存器,用于存放当前正在

2020-05-11 16:45:16 226

原创 Java 中 ThreadLocal 的使用解析

本文简要介绍了 Java 中 ThreadLocal 变量的内部实现与使用场景。

2017-12-15 18:19:59 230 1

原创 Servlet forward 和 sendRedirect 的区别

Servlet forward 和 sendRedirect 的区别

2017-12-07 17:51:09 335

转载 shell 应用

1. 将一个文本中每两行合并成一行,即将每个偶数行连接到奇数行的后面http://bbs.chinaunix.net/viewthread.php?tid=201169&extra=page%3D1%26amp%3Bfilter%3DdigestggqqJjq1000000@q 解释:gg 是到文件头q 表示记录宏开始q ...

2010-11-20 17:24:36 118

原创 Redirect Operators and File Descriptors

<&n redirect standard input from file descriptor n>&n redirect standard output to file descriptor nn<file redirect file descriptor n from filen>file redirect file descrip...

2010-11-20 11:16:23 111

转载 (转) 标准模板库(STL)介绍

http://www.stlchina.org/twiki/bin/view.pl/Main/STLIntroduce标准模板库(STL)介绍 作者: Scott Field来源:最优秀的STL学习网站 标准模板库(STL)介绍 0 前言. 1 定义一个list 2 使用list的成员函数push_back和pu...

2009-01-02 16:54:44 136

原创 SCJP Note 2

Chapter 8 异常1、Error类由系统使用,用户不能使用,用于处理系统在运行环境方面产生的异常,如Java虚拟机错误,类状态错误等。     Exception 类用于处理程序自身的错误,包括编译期错误和运行期错误。其中RuntimeException及其子类属于运行期异常,其余属于编译期异常2、运行期异常:    ArithmeticException、ArrayStor...

2008-12-21 00:31:26 116

原创 SCJP Note 1

Chapter 2 面向对象编程1、构造器的修饰符只能有:public,private,protected或缺省;构造器可以重载,但不能继承2、protected和private不能修饰顶级类,只能修饰内部类? Chapter 3 标识符、关键字和类型1、标识符可以包含:字母、数字,下划线(_)、美元符号($);第一个字符必须为字母、下划线或者$;字母指的是Unicode...

2008-12-21 00:30:18 109

转载 百度东大笔试题

http://groups.google.com/group/pongba/browse_thread/thread/d4e644a0d165e0861. 某计算机系统只有以下原子操作: 赋值 +1运算 循环 只能是固定次数的循环 只操作0和正整数 不会溢出 用伪代码实现加法,减法,乘法和除法运算。2.找出下面程序的错误,如何修正。 #include <vector> ...

2008-10-23 01:13:25 117

转载 2008网易游戏开发工程师笔试题

两道智力题,一道几何证明,一道概率,一道二叉树编程智力题1有25个学生参加数学竞赛 , 每个学生至少解出一题, 在所有没有解出第一题的学生中,解出第2题的人数是解出第3题人数的2倍,只解出第一题的学生比余下的学生中解出第一题的人数多1,只解出一道题的学生,有一半没有解出第一题.则共有多少学生只解出第2题?网上有原题的,可以去百度一下智力题2还没搜到原题,不过跟下面这题几乎一样,把史密斯...

2008-10-18 21:31:37 201

转载 (转)Hello, OSGi, Part 1: Bundles for beginners

This story appeared on JavaWorld athttp://www.javaworld.com/javaworld/jw-03-2008/jw-03-osgi1.html <!-- -->Hello, OSGi, Part 1: Bundles for beginnersCreating, execut...

2008-10-09 13:29:09 232

转载 (转)Hello, OSGi, Part 3: Take it to the server side

This story appeared on JavaWorld athttp://www.javaworld.com/javaworld/jw-06-2008/jw-06-osgi3.html <!-- -->Hello, OSGi, Part 3: Take it to the server sideOSGi Web application developm...

2008-10-09 13:26:40 222

转载 (转) osgi介绍(一)什么是osgi

http://www.blogjava.net/Ferrari4000/archive/2006/02/14/30616.html 过于的一年多,在和很多it届的同学及朋友见面时,他们总会问我最近在做什么。“OSGi!”,我不加思索的回答。到目前为止,对这个单词得到的反应都没有超出“这是什么?”,“我没有听说过”,“噢,能具体点吗?”等等。而我的回答更让他们糊涂,最后,大家...

2008-09-06 21:10:25 113

转载 (转) OSGi入门:消费一个服务[译]

http://230996.blog.chinajavaworld.com/entry/3690/0/在我们的上个部分,我们看了如何注册一个服务。现在哦我们需要从另外的Bundle查找并使用服务。 我们将问题放到我们的需求的上下文中,那个通过Martin Fowler的依赖反转的页面获得的灵感。我们建立了一个MovieFinder的服务并通过Service Registry注册了它。现在我们...

2008-07-25 01:52:28 95

转载 (转) OSGi入门:注册一个服务[译]

http://230996.blog.chinajavaworld.com/entry/3689/0/欢迎回来EclipseZone OSGi迷你系列。终于,我们准备接触Services了。我认为,Service层是OSGi最精彩的部分,所以接下来的部分将会很有趣。 上一次我们看了MovieFinder接口的例子,我们讲了将使用MovieLister搜索影片。事实上你可以认为这个例子——它从...

2008-07-25 01:43:28 132

转载 (转) OSGi入门:Declarative Services和依赖[译]

http://230996.blog.chinajavaworld.com/entry/3719/0/欢迎回来EclipseZone“OSGi入门”系列讲座。进入到今天这节课之前我希望你能找到所有讲座以前的部分在我的个人博客上。 上次我们首次接触了Declarative Service。这次我们将看看Declarative Service的消费者那边。记得以前我们注册了一个服务在java.l...

2008-07-25 01:33:37 152

转载 (转) OSGi入门:介绍Declarative Services[译]

原文: http://230996.blog.chinajavaworld.com/entry/3676/0/欢迎来到“OSGi入门”系列的下个部分。这个部分十分的有趣,因为我们将开始尝试使用Declarative Services。 Declarative Service(或者“DS”)规范是OSGi最新的一个部分,并且它来自于跨越Bundle将服务配置到一起的结果。并非这个任务困难——正...

2008-07-25 01:17:00 228

转载 (转) Bundle之间的依赖[译]

在我们上个指导部分,我们看了Bundle如何能启动和停止,和它们如何能与框架交互和每一个生命周期。那么Bundle真正能做什么呢? Bundles是一个模块。它们允许我们分割我们完整的项目为能够被单独载入到OSGi运行时的可管理的片段。问题是,是否我们喜欢与否,模块总是以来在一些其他的模块上。在原来旧的Jar里,从没有一个可靠的方法来指定一个对其他Jar的依赖(有的,manifest文件中的Cla...

2008-07-25 00:45:53 244

转载 (转) OSGi入门:交互与框架[译]

http://230996.blog.chinajavaworld.com/entry/3678/0/欢迎回来EclipseZone OSGi指导系列。 上一次,我们看了一个简单的Hello World的Bundle在开始和结束的时候输出一段信息。它通过实现BundleActivator接口和start和stop方法。现在再看看代码,在特定方法start和stop方法的标记中,你将注意到我们...

2008-07-25 00:33:00 134

转载 (转) OSGi入门:你的第一个Bundle[译]

http://230996.blog.chinajavaworld.com/entry/3677/0/再过一到两周,EclipseZone将运行一系列OSGI的简短公告。放到一起它们将从一个平滑的道路进入掌握OSGi编程的艺术,不过每个公告只有一个新技术,并且它尽可能的通过10分钟来完成。所以,我们想要展示OSGi开发能够如何简单,因此我们将不使用Eclipse来开发——仅仅使用一个文本编辑器和...

2008-07-25 00:23:34 113

原创 分治法解决棋盘覆盖问题

http://www.hinn.cn/2008/04/chessboard_cover.html在一个2k x 2k ( 即:2^k x 2^k )个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。    这里我们用分治法...

2008-07-21 00:21:22 512

原创 字符编码详解

字符编码详解(ascii,utf-8,unicode,gbk,gb2312,iso8859-1等)1. ASCII 我们需要了解的最早编码是ASCII码。它用7个二进制位来表示,由于那个时期生产的大多数计算机使用8位大小的字节,因此用户不仅可以存放所有可能的ASCII字符,而且有整整一位空余下来。如果你技艺高超,可以将该位用做自己离奇的目的:WordStar中那个发暗的灯泡实际上设置这个高位,以...

2008-07-01 13:32:40 424

原创 深入理解String对象(整理)

深入研究 StringString是一个非可变类(immutable class),其实现采用Copy On Write技术。简单说来,非可变类的实例是不能被修改的,每个实例中包含的信息都必须在该实例创建的时候就提供出来,并且在对象的整个生存周期内固定不变。非可变类有着自身的优势,如状态单一,对象简单,便于维护;其次,该类的对象本质上是线程安全的,不要求同步。此外用户可以共享非可变对象,甚至可以...

2008-06-25 12:43:09 103

结构与联合相关知识点

1. 关于structstruct T;struct S{ char b ; int a ; char c; T* t; OK! T*的大小在编译时可以确定 //T t; wrong !T的大小在编译时不能确定,必须在定义S 之前定义T} x ; 2. offsetof 宏可以确定某个成员在结构或者类中的位置,定义于 stddef.hof...

2008-06-16 17:28:13 108

(转) Tomcat启动分析

1 - Tomcat Server的组成部分 1.1 - Server A Server element represents the entire Catalina servlet container. (Singleton) 1.2 - Service A Service element represents the combination of one or more...

2008-06-10 17:19:37 82

(转) TOMCAT源码分析(消息处理)

0:前言我们知道了tomcat的整体框架了, 也明白了里面都有些什么组件, 以及各个组件是干什么用的了。http://www.csdn.net/Develop/read_article.asp?id=27225我想,接下来我们应该去了解一下 tomcat 是如何处理jsp和servlet请求的。 1.  我们以一个具体的例子,来跟踪TOMCAT,...

2008-06-10 16:30:11 83

(转) TOMCAT源码分析(启动框架)

 http://dev.csdn.net/develop/article/27/27225.shtm   TOMCAT源码分析(启动框架)前言:   本文是我阅读了TOMCAT源码后的一些心得。 主要是讲解TOMCAT的系统框架, 以及启动流程。若有错漏之处,敬请批评指教!建议:   毕竟TOMCAT的框架还是比较复杂的, 单是从文字上理解, 是不那...

2008-06-10 16:27:55 126

杂记—— 《C++程序设计语言》

1. 类定义可以由于#include的使用而在不同源文件里重复出现,这样并不违反唯一定义规则 2. class的const成员函数不能修改class 成员变量 3. 对于const或者非const对象都可以调用const成员函数,而非const成员函数则只能对非const对象调用 p205 4. 在类X的非const成员函数里,this 的类型就是X*;在类X的const成员函数里 t...

2008-06-09 01:10:23 115

(转) C/C++基本知识

     本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。  许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strcpy很可...

2008-06-07 23:58:49 129

转载 (转) 关于指针与函数的几点小结

http://bbs.chinaunix.net/viewthread.php?tid=993238&extra=page%3D1%26amp%3Bfilter%3Ddigest心血来潮, 想对函数指针的几个用法小结一下, 都是平常容易见到的, 如果还有其它不觉的用法也请朋友们不吝赐教.若有错误之处,还请指正.1. 首先,在C语言中函数是一种function-to-pointer的方式,...

2008-06-06 00:11:52 82

C++ 对象模型——《Inside The C++ Object Model》之五

C++对象模型中,nonstatic data members 被配置于每一个class object之内,static data members则存放在所有class object之外。static 和 nonstatic function members 也被放在所有class object 之外。C++ 对象模型对虚函数的支持策略如下:1. 每一个class 产生一堆指向virtual f...

2008-06-04 23:59:23 147

杂记——《Inside The C++ Object Model》之四

每一个nonstatic data member的offset在编译期即可获得,即使它属于base class 通过对象和通过对像指针对于data member的存取操作,当data member是一个struct member,class member,单一继承、多重继承的情况完全一样,当data member是一个来自virtual base class的member的时候,则存在差异 ...

2008-06-04 00:13:47 105

继承体系下的对象构造与解构——《Inside The C++ Object Model》之三

1 所有virtual base class constructor必须被调用,从左到右,从最深到最浅: 如果class 被列于member initialization list中,那么如果有任何明确指定的参数,都应该传递过去,若没有列于list中,而class有一个default constructor,也应该调用之 此外,class中的每一个virtual base class sub...

2008-06-03 23:30:52 99

访问java核心包中的包可访问成员

本文介绍如何访问java核心包中的包可访问成员。包可访问性的成员和方法指的是在声明成员或方法时没有加public、protected和private等访问修饰词的成员和方法。包可访问性的成员可以被同一个包中的其他类所访问。本文以BorderLayout中的center变量为例,简单介绍如何访问java核心包中的包可访问成员。      1、为了访问BorderLayout中的center变量,我...

2008-06-03 13:04:04 136

转载 (转) ClassLoader Mechanism

http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=2474&threadID=26710&messageID=182817当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构: bootstrap classloader | extension...

2008-06-03 12:44:28 90

指向Data Member的指针——《Inside The C++ Object Model》之二

      指向data member的指针是C++的一个语言特性,对于考察class member的底层布局,尤其是虚函数指针和虚基类指针在class object中的布局很有用。如下面的例子#include <iostream>class Point{public: Point():x(0x10),y(0x20){} virtual void vFun(){} st...

2008-06-01 10:01:00 126

Empty Class 的大小——《Inside The C++ Object Model》之一

在C++中,一个空类的大小到底是多少呢?当你定义如下的一个类X时,你设想它的大小是多少?class X {};X的大小是0吗?请看下面的代码#include <iostream>using namespace std;class X{};class Y:public virtual X{};class Z:public virtual X{};class A:publ...

2008-05-28 16:49:56 104

转载 (转) BSTR、char*和CString转换

http://www.mjtd.com/bbs/Archive_view.asp?boardID=14&ID=27480 BSTR、char*和CString转换 (1) char*转换成CString若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行。例如:char chArray[] = "This is a test";c...

2008-05-25 10:11:08 108

空空如也

空空如也

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

TA关注的人

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