- 博客(30)
- 收藏
- 关注
JVM摘要--Class文件格式
Class文件是JVM虚拟机可以理解的字节码文件,class文件并不是JAVA的专用文件,现在有很多语言都会生成可在JVM上运行的.class文件,比如JRuby,Groovy等等。 这里介绍一下.class文件的具体结构。 Class文件是二进制流,其中包含了一组8为字节为单位的基本单位,其中,各个基本元素之间都是紧密相连的,彼此之间没有空隙。当一个元素的数据...
2011-11-24 11:14:20
174
原创 Oracle学习笔记----如何复制一张表的定义
如果想创建一个新的表,让其与一个已有表的定义(列设置)相同。怎么办?比如,有一个已知表 TABLE_OLD,你想创建一个和其结构一样的表TABLE_NEW在不同的数据库中,操作会不太一样:[color=blue][b]Oracle, MySQL,PostgreSQL[/b][/color] create table TABLE_NEWas select * ...
2011-11-24 10:35:53
206
JVM摘要--指令集介绍03
[color=brown] 【题外话】只要学过编译原理,计算机组成类似的课程的,就不会觉得JVM的字节码太难理解。有兴趣的人,只要边看书,边写几个例子后,再javap一下慢慢看几个就大概心里有数了,其实学习JVM的东西,主要是为了让自己对它的运行方式多一些了解,在实际编程过程中心里有个概念,有些特性的底层实现心里有数就行。 毕竟在大多数编程中,JVM的知识不会直接的影响...
2011-11-17 14:04:41
141
原创 JVM摘要--指令集介绍02
[color=brown]【题外话】由于有大牛在论坛里贴出翻译的《Java虚拟机规范》,我也就不用写那么详细了,哈哈,觉得那里需要写就写一下吧[/color]Java代码的字节码可以通过 javap 命令生成JVM的指令通用格式为: [ [...]] []可以认为,方法的JVM字节码存放在一个Code[]数组中,• 就是该数组中存放的操作码的索引,• 是操...
2011-11-17 10:20:36
196
原创 JVM摘要--指令集介绍01
一个JVM的指令包含了1个字节的操作码,该操作码用来表示要操作的动作,然后是0个或多个表示操作码的操作对象:参数或者其他数据。许多指令都没有操作数,而只有一个操作码。 不考虑异常的损耗,JVM解释器的内循环是很有效率的: do{ atomically calculate pc and fetch opcode at pc; If (op...
2011-11-14 10:39:40
167
原创 JVM摘要--Frames
[b]Frames (帧)[/b][b]帧[/b]是用来存储数据和部分结果(Partial results)的,同时,也用与动态链接,方法的返回值并分发异常等。当一个方法被调用时,就会创建一个新的帧(即方法和帧是紧密关联的)。当方法调用结束后(包括正常结束或异常退出,比如抛出一个未被捕捉的异常),帧会被销毁。帧是从JVM的栈里得到内存空间的。每一个帧都有它们自己的局域变量数组(Array ...
2011-11-09 16:08:43
174
原创 JVM摘要--Heap和Method Area
[b]Heap(堆)[/b]所有的JVM线程共享一个Heap。 Heap中存放的是所有类的instances和数组。Heap在VM启动时就创建了,堆中的存储空间是由一个自动空间管理系统(也称之为垃圾回收器)来负责回收的;对象从不明确的被释放(Objects are never explicitly deallocated.),JVM没有强调用何种垃圾回收技术。堆的尺寸也可以是固定或者动态增减的...
2011-11-09 15:08:23
120
原创 JVM摘要--PC Registers 和 JVM Stacks
[b]1.PC Register(Program Counter Register);[/b]即程序计数器寄存器JVM支持同一时间同时运行多个线程,每一个线程都有它们自己的pc register。在同一个时刻,JVM的线程只能运行一个单独方法中的代码,此方法称为该线程的当前方法(Current Method)。 如果这个当前方法不是native的,PC register就指向正在被执行的J...
2011-11-09 14:30:04
250
原创 Oracle学习笔记----Long型不能随便乱用
今天在Oracle上新建了一个表,把key的长度设置为了long,后来想把另一个列的type也设置为long,发现oracle报错,网上goo了一把,发现Oracle中Long是不能随便乱用的...它并不是表示长整形,而是“Character data of variable length (A bigger version the VARCHAR2 datatype)”最大可以到2G,难怪一张表...
2011-11-09 14:17:29
449
原创 JVM摘要--JVM的结构--01
[color=brown]【题外话】最近在坛子上看到了一篇介绍JVM的牛文,其中提到了一本书《The Java™ Virtual Machine Specification》,由于是英文的,啃起来颇为费劲,所以写一点摘要以免忘记...写的很零散,主要是给自己看的,望海涵[/color]JVM可以执行的编译后的JAVA代码是与硬件和操作系统无关的二进制文件;一般都存在一个文件当中,即.c...
2011-11-08 14:53:17
140
原创 Oracle学习笔记----group by, having等语句的执行顺序
select xxx_name, count(*) as counterfrom table_ywhere [i]where_condition[/i]group by xxx_namehaving [i]having_condition[/i]order by [i]zzz[/i]当我们看到一个类似上述的包含了where, group by, having, or...
2011-11-08 13:06:12
637
原创 Oracle学习笔记----数值处理的一些函数--单值运算
Oracle在数值处理方面有诸多强大的函数,但很多在通常情况下我都很少会想起来使用,所以记在这里 :oops: Oracle的函数会处理三类数值:单值,值组(Groups of Value), 值列表; 其函数表示法为[color=blue]FUNCTION(value, [,option])[/color] 下面针对三类数值的函数分别介绍: ...
2011-11-07 13:04:22
254
原创 Oracle学习笔记----字符串的七七八八
oracle有两种字符串类型:Char 和Varchar2(其实还有Varchar,但也许Oracle在今后会有一些变化,所以为了安全起见,还是使用Varchar2) 其中Char是定长的,如果设置了小于Char长度的字符串,Oracle会用空格填充为等长的串,而且在比较CHAR时,也会有空格填充的问题,比如两个CHAR串“ComiCoder”和“ComiCoder ”被认为是一样的。...
2011-11-04 16:20:42
122
原创 Oracle学习笔记----对象关系型数据库基础-02
继续上文当我们利用自定义的抽象类型创建出一个表之后应该怎么插入数据,如何查看其内容?首先,我们要利用racle提供的构造器方法(Constructor Method)来向数据库中插入抽象类型的数据,比如: [color=green]insert into CUSTOMER values (1, PERSON_TY('ComiCoder', ADDRESS_...
2011-11-04 15:03:40
164
原创 Oracle学习笔记----对象关系型数据库基础-01
[i][color=brown]【题外话】我不是很喜欢好几天都看一本书,而更习惯于tick-by-tick式的轮巡方式来慢慢的读好几本书的方式,所以,这两天又开始读Oracle的书啦(当然,代码大全和MySQL的学习笔记还是会继续的),哈哈;Oracle之前的项目虽然有接触,但都被Hibernate堵在后面了,没怎么深入了解过,所以还是希望认识它多一点...[/color][/i][本文参...
2011-11-04 14:37:03
273
原创 代码大全读后杂记-04 错误处理技术
[size=small][color=brown]【题外话】 今天下午在公司犯困打盹的间隔,看到了同学开的公司现在已经红红火火,难免有些惆怅,虽然我知道不应太在意外在的物质,但对个人价值的体现或梦想的追逐与实现还是非常佩服的。虽然我大概走不出一条所谓创业的路,但自己的梦想依旧需要在现实中用汗水和努力去赢取,留下此言以示激励,也愿上帝能够加添给我力量,让我勇往直前:)[/color][/size]...
2011-11-01 15:28:39
177
原创 JVM垃圾回收器的工作机制 (转载)
1、 在堆上分配对象的代价十分高昂,然而java的垃圾回收机制可以和其他语言从堆栈上分配空间的速度想媲美,但是,释放对上的存储空间也有开销;2、 当它工作的时候,将一面回收空间,一面使堆中的对象紧凑排列。这样就尽量避免了页面错误。通过垃圾回收器对对象重新排列,实现了一种高速的、有限空间可供分配的堆模型;3、 其他系统的垃圾回收机制:a、 引用计数是一种简单但速度...
2011-10-31 15:56:46
92
原创 代码大全读后杂记-03 子程序之提高内聚性、好名字、别乱用参数
[color=olive][b]【题外话】[/b]蟑螂竟然也可以入药...名曰蠊虫...好吧,希望大家身体健康,别遇到吃小强的那天![/color]:evil: [color=darkred][size=medium]内聚[/size][/color]“子程序的内聚,是指子程序中各操作之间联系的紧密程度”,Steve如是说;对于子程序来说,内聚性主要有以下几个层次:[b][i]...
2011-10-27 16:27:07
205
原创 代码大全读后杂记-02 为啥创建子程序(方法,函数)
人类是世界上最勤快的物种,人类也是世界上最懒的物种;当然,人类大多数的勤快的创造是为了让自己有机会懒。为了耕种的方便,少留两滴汗多长两斤肉,发明了先进的机器;为了通讯的方便,少跑两里路,少死两只鸽子,发明了电报电话手机;为了节省程序员的脑细胞,发明了子程序![i][color=olive]PS:代码大全中的子程序(routine)就是C++中的函数(function),Java中的...
2011-10-27 15:03:22
192
原创 代码大全读后杂记-01
代码大全真是一本[b][color=red][size=large]厚[/size][/color][/b]书!但作者牛就就在写着么厚的书,却让你不觉得内容空虚(不像很多国内的混书水不拉吉),至少我看到第六章依旧觉得兴趣盎然,很多东西虽然似曾相识,但被作者巧妙的组织在一起让人有醍醐灌顶的感觉,妙哉;因为本人奔三在即,记忆衰减严重,所以不再过目不忘(自然从来没有过该本事...),就借ItEye(...
2011-10-27 14:09:45
135
原创 [Derby学习笔记02]-Eclipse Plugin
由于我都习惯于使用Eclipse作为开发工具,所以还是决定采取Eclipse + Derby plugin的方式;Derby Plugin的安装方式和其他的插件一样,这里就不再重复(需要的见附件)重启Eclipse后,可新建一个测试项目试试看,然后鼠标右键点击项目,可以发现菜单上多了Apache Derby一个选项[img]http://glutinit.iteye.com/admin...
2011-10-25 15:21:09
148
原创 [Derby学习笔记01]-准备工作
好吧,为了项目需要,又要学习一下Derby...Derby,Derby,念起来总觉得怪怪的废话少说,先写如何安装,当然安装前还得从[url=http://db.apache.org/derby/derby_downloads.html]官网下载[/url]......下载好了之后,发现解压后出现了如下一堆东西: 1. demo文件夹中包含了一些demo程序;...
2011-10-25 10:38:57
108
原创 (MYSQL EVENT 学习笔记_01)Event Scheduler Configuration
原文见MySQL官方文档http://dev.mysql.com/doc/refman/5.1/en/events-configuration.html估计MySQL迟早会发布中文版的文档,所以我还是只写一些摘要吧,另外,文中的专有名字就不翻译了,否则反倒弄巧成拙。Event Scheduler Configuration 读后感MySQL的Event是通过event schedule...
2011-10-24 13:45:33
158
原创 (MYSQL EVENT 学习笔记_00)Event Scheduler Overview
[i]文章原文见MySQL官方文档:http://dev.mysql.com/doc/refman/5.1/en/events-overview.html英语很烂,忘海涵,若有错误,烦请指正则个:) [/i] MySQL的Event,就是根据一个调度表运行的一系列任务。所以,我们有时也可以把它们看成是预先安排好的事件(scheduled event)。当你创建了一个事件时,其实你创...
2011-10-24 12:35:56
122
原创 MYSQL 无法远程访问
今天更新了MySQL(新版的MySQL界面挺好看啊)发现root用户无法访问远程地址后来发现是权限不够,可以如下操作:mysql>grant all on *.* to root@ '% ' identified by 'mypassword ';...
2011-10-21 16:18:48
98
原创 ConcurrentMap为神马好
发现一篇好文,转帖一下:http://blog.csdn.net/sswt/article/details/449254
2011-10-13 13:23:10
113
原创 Cocos2d提供字体收集
转帖:http://hi.baidu.com/184367426/blog/item/c1c8a2e9bdcb065479f05565.html
2011-09-16 13:46:21
119
原创 MY SQL insert 速度过慢
最近在用MySQL做存储,测试中发现插入数据太慢了,插入速度只有20-30 条/秒,后来查资料后,将MySQL的1个参数:innodb_flush_log_at_trx_commit,1改为了0(修改方法,可以直接修改my.ini(windows)/my.cnf(linux)中的对应参数,似乎用命令直接设置没有效果),插入速度就提升到了3000+每S,MySQL的文档中,对这个参数的描述如下:...
2011-03-29 12:42:41
197
原创 什么是ThreadLocal
ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread, 而是thread local variable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal) 其实的功用非常简单,就是为每一个使用某变量的线程都提供一个该变量值的副本,是每一个线程都可以独立地改变自己的副本...
2011-03-25 11:03:34
84
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人