摘要: 很早计划写篇研究JVM类加载源码的,忙于项目一直没时间深入研究,最近又要换工作,怕最近没时间研究了。之前一些粗浅的研究,主要是defineClass()和loadClass()方法在JVM源码中的几个相关位置,作个简单记录。1.defineClass由字节码加载自定义类,最终归结于java.lang.ClassLoader. defineClass0()这个native方法(关于java系统类层面的类加载机制,参见之前的两篇文章,本文只涉及JVM的c/c++层面源码)。该方法通过jni实现,对应的c代码位于:%openjdk-home%\jdk\src\share\native\java\la 阅读全文
posted @ 2013-04-02 14:40 编程趋势 阅读(1271) 评论(0) 推荐(0) 编辑
摘要: 周二面1号店Java工程师,果断挂掉。为纪念请假损失+路费约几百块钱,还是写个小面经~~面试地点还是在张江,一幢挺有气势的大楼(忘记数有几层了~)。进门先填信息表,很标准的那种,过会面试官就来了。面试官长得挺粗犷的,不过是双眼皮。领到四楼关进一小房间,拿出两张纸的笔试题,让半小时做完,然后扬长而去。一瞅那题,我去,在网上看到过,一模一样额(虽然我回来后死活也找不到那网页了,回忆起的内容写在本文最后没),看来1号店就是固定拿一套(至多是几套)笔试题了。对于做过电商或者科班培训的程序员,那套题目想必并不难,不过由于本人半路出家自己倒腾,很多基础知识不行,只能凭感觉和之前网上看到的印象做,估计达到点 阅读全文
posted @ 2013-03-29 16:41 编程趋势 阅读(3187) 评论(3) 推荐(1) 编辑
摘要: 12号在百度上海研发中心面商务搜索部的java,面完就感冒了orz(杀伤力啊......)。听同学说今年岗位紧,要是去年就进了,看来比较玄了。不过去了一趟总不能白去,写个面经给大家参考。张江这地方蛮有趣,路名都是XXX科学家,牛顿路,祖冲之路。路上居然还有有轨电车这种交通工具,怪瘆人的......百度在碧波路690号张江微电子信息港,应该是IT企业聚集的地方吧。面试约在两点,一点半去前台报到,没看到前台有特别PP的美女(失望啊~~)。报上一面面试官名字,很快面试官就捧着笔记本过来,带去一小房间。整个面试并没有涉及上机的,可能是职业习惯吧,不过感觉应该是可以带些项目的演示资料去,如果对方感兴趣, 阅读全文
posted @ 2013-03-17 13:57 编程趋势 阅读(2701) 评论(8) 推荐(1) 编辑
摘要: web发展这么好,html用的这么多,主要还是在于部署起来方便,更新也快。应用程序的缺点就是更新复杂。通过该文章,完全可以让应用程序和web一样,部署容易。使用方便。上篇提到Java程序运行只依赖于字节码,修改class文件读写方式可以实现代码加密。所谓“字节码”只是一个byte字节序列,并非一定是class文件。也可从远程获取字节码实现类加载,使代码在客户端“不存在”,不仅安全性更高,还有一些额外优势。下面先来看如何实现。本文中通信采用jboss的开源框架Netty。这是一个异步通信框架,严格说不很实现远程类加载,采用Netty只是因为个人比较熟悉,完全可以用其他通信方式替代(如Http方式 阅读全文
posted @ 2013-02-01 14:33 编程趋势 阅读(2243) 评论(4) 推荐(1) 编辑
摘要: 提到Java代码加密,常见方式是使用代码混淆工具,如proguard。混淆是一种逻辑层面的加密,被混淆的代码仍可以反编译,但由于命名与程序流程上的等效替换,使得程序的可读性变的很差,导致代码难以被理解和盗用。但若有方法使代码根本无法被反编译,效果显然优于逻辑上的加密,而一种可以实现的方式就是字节码加密。Java代码的实际运行与源代码(*.java)关系不大,只依赖于编译后的字节码文件(*.class)。class文件的内容有非常紧凑和严格的约定,使JVM可以识别和执行代码功能;反编译工具也是利用这种约定的结构将字节码反向解析成源码。只要破坏class文件的结构,就能使这个文件完全失效,变得不可 阅读全文
posted @ 2013-01-28 10:21 编程趋势 阅读(10032) 评论(9) 推荐(5) 编辑
摘要: 今天看csdn,发现我写的一篇文章被盗用http://blog.csdn.net/m13666368773/article/details/7951223,还被作为推荐到csdn首页。我在博客园的地址如下:http://www.cnblogs.com/codetrend/archive/2012/09/05/2672297.html。 这篇文章写的虽然不是太高深,但是对java泛型的编译进行一些学习,发布之后没有一个人进行评论。而我之后写了《我工作的六七年》,阅读评论远远大过一片技术文章。感 觉博客园技术社区,有点论坛化了,炒作扯蛋比较容易引起关注。比如之前的吉日同学,绝对是这方面的典范。.. 阅读全文
posted @ 2012-09-13 17:42 编程趋势 阅读(7102) 评论(93) 推荐(21) 编辑
摘要: 看到员友写的《工作六年总结》,有点小感觉。感觉自己也出来六七年了,也是时候写点总结啥的。05年 大学实习期间,当时啥也不会,学了两天java,看了几本书,就找开始找工作了。感觉那个时候技术比较虚,投了半月的java程序员,都没啥回音,所以随便在南京找了个公司,开始成为.net程序员。我们做产品都是用的.net服务器控件,比如手风琴效果、tree,也使用了当时一些流行的技术,比如masterpage。那个时候感觉服务器控件特别牛。随便拖拖就可以搞定任何需求。所以潜心收集服务器控件,没事学学微软的技术。06-07年 碰上一个变态的公司,每天工作到11点左右,一周工作六天,周末还要加班。做了三个月离 阅读全文
posted @ 2012-09-07 11:17 编程趋势 阅读(4416) 评论(24) 推荐(5) 编辑
摘要: Java的泛型在代码中引用时,形式上很类似于普通的类,可以用来声明对象、方法的参数与返回值类型,甚至还可以作强制类型转换。因此,容易误认为泛型是一个“类名的变量”,当泛型类被参数化引用的时候,这个“变量”就被“赋值”为实际类。事实上这种认识是一个误区。理论上说,Java中的类是由对应的.class文件的字节码来定义的,类在其编译时就会产生.class文件,与其如何被引用没有任何关系,当然更不可能与引用时的参数相关。编写泛型类时,也无从获取实际引用时的参数类,如Class clz=T.class这样的语句是无法通过编译的(考虑到引用时参数类可以是通配符,这点也就不奇怪了)。既然泛型不是类,也不能 阅读全文
posted @ 2012-09-05 17:54 编程趋势 阅读(3018) 评论(9) 推荐(3) 编辑
摘要: 作为初涉flex的程序员,我认为一个好的UI层,可以给人一种比较赏心悦目的感觉,好的UI层可以极大的勾起你继续开发的欲望,但是无核实现一个好的UI层,如何设计一个比较赏心悦目的界面呢?我想,这可能是所有初学flex所面临的问题了。 首先,一个好的UI层无非是一些控件和背景的堆砌,背景这块比较简单,但有时候会设计到平铺、背景框的圆角等等诸多问题,在这里,我先谈谈背景这块。在设计UI层的时候,背景的选择尤其重要,因为他是整个界面色调的基础,后面的所有界面设计的色调都是基于背景图片或者背景颜色所展开的,例如:这是我现在正在进行的一个ESPClient客户端项目,这个是该项目的登录界面,整体的项目.. 阅读全文
posted @ 2012-08-29 17:47 编程趋势 阅读(3320) 评论(0) 推荐(1) 编辑
摘要: Java方法调用在传参的时候遵循就近兼容原则:如果找不到实际参数类型与声明类型完全匹配的方法,Java会自动寻找其他可以兼容实际参数类型的方法。所谓“兼容”指实际参数类型从声明类型继承而来,或者如声明类型是接口,实际参数类型实现该接口(注:本文仅针对引用类型,暂不考虑基本类型之间的兼容性)最简单的例子如下(以构造函数为例):public class Test {public Test(List<?> arg1) {System.out.println("Instance Newed as List: "+arg1.getClass());}public stat 阅读全文
posted @ 2012-08-27 09:58 编程趋势 阅读(2737) 评论(0) 推荐(3) 编辑