自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 jaVa之十七篇:jaVa类的内存抓取

IT九指神丐 兄弟抛出个话题,从内存中把类抓出来晒一晒,这有点悬乎;辗转反侧也只拿到地址,想dUmp出来虚拟机立即挂掉,更别说在内存中修改那些指令代码,jre被保护了;说来也是防止黑客、病毒行为,jaVa不许这样做,不过还是想一睹类在内存被链接后的尊容,无可请不动呢,待向神丐打探打探,纠结呀这话题…

2015-09-11 16:53:54 570

原创 java之十六篇:探测堆上对象的布局、深入理解对象

http://a4.qpic.cn/psb?/V12YsWw92GjibH/n0jOVP9BB5Izuga5MTB1fezAUBXtiHY2HVlyTFWc0B0!/b/dKMAAAAAAAAA&ek=1&kp=1&pt=0&bo=GwNcAgAAAAAFAGU!&su=011103393&sce=0-12-12&rf=2-9

2015-09-11 16:42:49 384

原创 java之十五篇:内核的东西java还真翻转不了

今天一早到办公室就静下心来,2分钟用工具探测到句柄泄漏的java进程,这些句柄看上去都是些系统底层级别的,试试工具能关闭这些句柄,上千的垃圾句柄;试试程序遍历,于是乎java调用操作系统Api,痛苦的翻译过程,结构体不样原因,必须对应过来,写好运行能拿到java进程里面的线程句柄,打印出来看是些正常的30多个java进程内线程,并不是想关闭的句柄,进步分析要用内核Api,坑了,未公开的内核AP

2015-09-11 16:41:07 460

原创 java之十四篇:java关于泄露

这两天工作中发现个异常现象一一资源转换服务进程的句柄数在攀升,这样持续增加可不是啥好事,初步断定存在句柄泄露,或许是调用第三方动态库所致,可咱又无第三方源码,哑巴吃黄连,就是个坑,明早需进一步分析验证下,思路已想好。老用操作系统层APi应对这些也不是啥好事。水来土淹。前两天担心转换服务进程有内存泄漏,通过昨晚一整夜运行观察可以排除了。剩下的就是句柄泄露,还需想法处理;如何关闭这些第三方

2015-09-11 16:40:09 451

原创 java之十三篇:java中多线程

java中关于多线程,这方面的文章很多,总体不错,的确要诠释这东东有点纠结,多线程让人敬畏、是把双刃剑,弄不好就伤元气,性能未提高还引出些莫名、原理上讲不通的bug;多线程涉及调度、同步;注意控制产生的对象数,防止过多对象引入线程池机制;再者防止过度竞争资源、防止访问紊乱不可预知的后果;总之使用多线程要步步留心,否则杀敌一千自损八百,得不偿失。

2015-09-11 16:35:45 281

原创 java之十二篇:java搞不定的改用动态库来扛

有些底层的东西的确java无法搞定,换思路java调用封装的动态库,windOws环境是DLL、Linux环境是SO库恰好这两天在忙文档转换、Office文档转Pdf,Pdf文档转SWf;开始想到Linux下的OPenOffice,但通过测试发现兼容性还是有问题,有些文档无法转换,那就选择WindOws环境的VBA了,这是上乘,不存在兼容性问题,但又牵出了其它问题转换慢可采取多开几个线程绕

2015-09-11 16:34:42 325

原创 java之十一篇:java中关于生命周期

java中关于生命周期网上java关于生命周期(容器、对象的生命周期)提的多、问的也多;鱼目混杂,回答的还是比较书本化的解释、空洞,不透彻,其实核心理解把控一两点就可以了;1)首先要理解生命周期,你得要清楚明白栈和堆;2)网上有人把堆评价得很高的、但我更觉得它是一个苦力工,没啥多提的;3)在我的文章中经常提到栈这个东东、比较崇尚、重视它;也许境界到了你也会认为所有的

2015-09-11 16:33:42 432

原创 java之十篇:关于Read time OUt

关于Read time OUt1)此类问题通常是socket参数设置不当所致,读写阻塞超过设置时间,通常调大sockettime参数即OK;2)到底是客户端、服务端所致 Read time out;可尝试netstat -an 看对应的端口tcp瞬时状态是否有time out,哪端有就是哪个引起的哈;关于端口状态可参考tcp方面的资料哈3)还有socket 、连接池混在一起的情

2015-09-11 16:28:55 10268

原创 java之九篇:外部类、内部类(匿名类)间形成的调用关系

外部类、内部类(或匿名类)间形成的调用关系 ?1)外部类编译器编译时,对于成员变量,自动对应产生形成静态方法,且方法名以access$0,access$1,....等顺序添加;且方法所带参数为外部类对象;2)内部类编译器编译时,自动产生成员变量this$0,且对应类型为外部类;3)内部类如何访问外部类呢,当然形成的这样的链条 ;A)、内部类构造时会构造成员变量this$

2015-09-11 16:27:55 741

原创 java之八篇:如何看待java中的接口

的确java中关于接口讨论文章太多,再者加之网上文章参差不齐,不少误导大家,让人费解难解;要的就是个透彻,需站到更高的高度来理解分析,别被规范性的东东绊住不前;ok,我们继续下文说开来1)java中同类class平级的就是接口interface,不同之点就是接口不能实例化,如感兴趣可反汇编看看2)java中接口的定义,只能定义方法且不能包含方法体,其次可包含静态常量,不能包含成员变量,大家

2015-09-11 16:26:30 386

原创 java之七篇:为何java可反编译

的确java的编译类文件可反编译,市面上可见到java的反编译具jad等;类似工具POwerbuider编译的也可被反编译。哎,编译成伪代码虚拟机解释执行的都有这个通病,这的确是个窘地。无可,为何?继续后文诠释一二…。1)解释执行的虚拟机运算执行基于栈、离不开栈,基于栈运行都会留下蛛丝马迹;java编译字节码是基于栈操的,啥入栈、出栈、操作数、操作码都孕育其中,如是表达式这些编译后肯定是后缀表

2015-09-11 16:24:59 1410

原创 java之六篇:放松一下聊聊构造方法(构造函数)

百度一下关于构造方法的话题或文章太多了,的确大多编程语言中都会提到它。芸芸众生或多或少的也有些许疑惑。权威的一句话就是完成实例成员变量的初始化。然后就是构造方法系列规范罗列细数登场,少了点为什么,有些唐突,为啥要那样。嗯,且看分解,哎呀我先睡一觉再来继续…有些java运行期的东西大师们没有公开;我们百度不到相关文章,那么核心的东西我们也只能猜想了,猜想那点引子。引子---早期动态库的出现是解决

2015-09-11 16:22:57 339

原创 java之五篇:戏说java中的强转

java中基本类型强转本篇不会提及,仅分析下对象的强转。1)、对象一经构造那么地址空间已确定,直到生命周期节束,即实例构造完成时堆上可访问乃至不可访问的实例成员均确位分布好、且成员先后顺序也是确定的,即使对象有继承关系堆上的布局同样如此。2)、实例对象能强转满足的条件,要么是同类型的实例、要么有继承关系实例,这句话是分析对象能否强转成功的关键。3)、继承关系间的强转存在风险可能成功,视

2015-09-11 16:07:37 1034

原创 java之四篇:jaVa的硬伤NullPointerException

NullPointerException满天飞,可能这是早期jaVa发明者始料未及的,的确比较蛋疼,象我这样重崇尚简单的人更是觉得愤然;NULL在其它语言中也存在,但不似jaVa中随处需判空,因此在Object.xxxx时需开发者步步留心,稍不注意就报空指针错误;java发明者不谈指针,但给我们开发者遗留的随处都是指针,对象引用就是指针;总之这是给开发人员留的个坑。NullPointerExcep

2015-09-11 16:06:16 285

原创 java之三篇:java的前世今生

jaVa最早的雏形开始于1991年,那也是个意气风发、思想碰撞的年代,Sun公司想进入电子消费领域,当然这方面的文章大有,不是我今天想说的,且从开发工具的历程上缀述。1)、八十年代末、九十年代中前期,面向对象发展的那几年,VB、PB、VC、BOrLand C++ 、deLPhi、PhP等等开发工具的出现,体现面向对象的思维,jaVa也是那个时代;其中相互间必有一定的借鉴、或者从最底层能看到点些

2015-09-11 16:04:38 2580

原创 java之二篇:java相对其它语言-栈更体现得淋漓尽致

java程序的编译是基于栈操作的1)压栈操作---〉数据来源常量值或从常量池区取常量压入操作数栈(一个字长的常量压入栈、两个字长的常量压入栈、将空(null)对象引用压入栈)。2)操作数栈和局部变量之间一直在往返传输值。3)有操作数、操作码,就能执行通用的栈操作了,当然这步是虚拟机解释执行的。4)栈内按顺序执行、当然也涉及到栈内跳转,即编译后有goto字节码。5)解释性语言

2015-09-11 15:53:20 304

原创 java之一篇:java的执行顺序表象

1.static{}(即static块),会在类被加载的时候执行,且仅会被执行一次,注意防止向前引用。编译后看汇编代码各static块合并为一个static {},因此这就能解释各静态块按编写的先后顺序执行,即先定义先执行。2.非静态只在实例化的时候执行,且每次实例化都执行。3.静态在非静态之前执行。4.属性在构造块之前初始化(静态块又称之为静态构造块)。5.构造块

2015-09-11 14:56:30 293

原创 侃侃底层rfc协议这个跳不出的东东

rfc,tcp/ip

2015-04-16 12:52:01 405

HashMap的二次封装

理解面向对象后的代码抽取,HashMap的二次封装,总之目的减少点代码工作量,见代码示例

2015-09-12

空空如也

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

TA关注的人

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