`
hatedance
  • 浏览: 59514 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论
文章列表
上篇解决了在netbeans下编译调试openjdk的问题。毕竟用惯了eclipse,我想着尝试用eclipse CDT来替代Netbeans.结果成功了。 过程如下: 在eclipse里Import项目,选择Exsiting code as makefile project,选择项目目录:icedtea6/openjdk-ecj/hotspot 配置项目,首先是build,在 Builder Setting里,Build directory=${workspace_loc:/hotspot}/../.. Behavior里,Build(Incremental build)=hotsp ...
工作找到了,没事玩玩android。看到文档里这样写: Once installed on a device, each Android application lives in its own security sandbox: The Android operating system is a multi-user Linux system in which each application is a different user. By default, the system assigns each application a unique Linux user ...
上次我成功用netbeans编译并调试openjdk7以后,发现call stack里有一部分居然是汇编,后来了解到openjdk为了优化性能,把核心解释器全部用汇编写的,叫做template interpreter。结构如下图左侧: 汇编这个东西我是看不懂了,所以我必 ...
我打算认真学习一下JVM,在网上搜索了一番,发现有人配置从成功用NetBeans调试Hotspot JVM. 重点参考文章: http://weblogs.java.net/blog/simonis/archive/2008/01/hotspot_develop_1.html http://blog.csdn.net/fancyerii/article/details/7007503 其中后者参考了前者,由于这2篇文章都有些过时,好多bug都已修正,现在再去搞起来方便多了。   安装一个linux环境,我装了ubuntu11.04 确保安装openjdk6 下载openj ...
有一次被问到HashMap的实现原理,没回答出来。今天看了一下源码,记录如下:   首先看get方法,看其如何找到值对象。 得到key的哈希值 根据哈希值计算得到索引 从数组里取得一个Entry,并且该entry是一个链表。   public V ...
准备找工作了,过年要恶补一些知识应对面试。其实这些都是平时工作不太用得到的,但是面试必须用到的。就像过年送礼就得送些平时舍不得买的华而不实的礼品。   并发 数据结构 gc(基本的要能忽悠,最好能看看源码深入理解) Spring原理(agecij) 设计模式(光会用不行,还要会说)
在开发中,其实经常要对输入参数进行检验。比如对于login(userid,password)要检查 if(userid.length<4 || password.length<6) throw runtimeexception. 如果接收的是一个对象参数,save(User user),也要进行检验,一般的土办法是如下: if(user.getName().isEmpty()) return false; .... 当然,对参数进行检验是一件很烦人的事情。大多数情况下,只在系统的前端进行检验。以一般SSH web系统为例,MVC层是需要参数检验的,到了service和d ...
终于又做回Coder了。 新项目是用Maven的,而我以前只用过Ant。所以,我必须尽快学会Maven。 先上Maven官网,按照quick start做了一遍。基本理解了maven与ant的不同之处。 ant基本上就是一种批命令的方式,copy,compile,move,delete之类,用过程化的思路完成每个目标。 而maven这更加专注于项目管理,最重要的一点是解决了库的依赖问题。不必一个一个去下载。 maven是用插件来实现各种功能。 基本的目标包括生成项目目录,单元测试,编译,打包,发布等。所以说maven是专注于项目管理的。 maven支持一个tomcat插件,使得可以 ...
维护一个老系统,.net写的,功能是查询并导出为excel。 用户发现数据超过10000行的时候,系统报错。 经过分析,应该是viewstate大小超限了,查询结果首先是用datagrid展示的,而且其viewstate是enabled。iis6以后,可以调整web服务器能接受的post数据的最大值,但ii5不行。tomcat也有类似的参数。 没办法,只好禁用datagrid的viewstate。而是把查询结果保存在session了,或者导出的时候,再查询一次。 接下来还有一个问题,导出1万条数据到excel时,效率极低,需要好几分钟。 google了一下,发现这是excel inte ...
最近许多公司面试喜欢问垃圾回收的问题了,仅仅回答当引用为0时,可以回收已经不能满足面试官的要求了。 sun的jvm的垃圾回收策略是按对象的年龄分3代,新生代,旧生代,永生代。 英文分别是young generation,tenured generation, perment generation. 其中对象创建之初,自然是新生代。 后代垃圾回收线程不断的对新生代对象进行扫描,发现引用为0时自然将其回收,否则记下回收失败的次数。 经过N次扫描以后仍然存活的对象将被归类为旧生代。 对旧生代的扫描频率可以减小。 新生代和旧生代是存放在heap里的,而永久代是存放在单独的一个内存区域里的。 ...
既上次搞了一个山寨的脚本语言以后(参考:闭门造脚本语言解释器的一点感想 ), 今天看见新闻说google为go语言做了一个简单易用的 go playground .还真不知道怎么翻译这个单词:操场,游乐场?anyway,反正就是一个试验平台,你可以随便写一个很简单的小程序,然后点击运行,最后运行结果就由网页返回了。 我想到我上次diy的 ...
听闻阿里巴巴为了省钱,用大量跑着mysql的pc服务器替换了运行在小型机上的oracle。 我私下考虑,如果让我来解决这个问题,该如何设计呢? 首先,我觉得过程是这样的, 起初是一台数据库服务器,里面存放所有的表和数据 然后分解成n台数据库服务器(简称节点),各存放一部分数据。(未必是1/n的数据,应该有冗余才对。) 但是,对于应用开发者来说,应该有一个封装,让他们仍然觉得仿佛在访问一个数据库服务器。 具体的说,可能要自定义一个jdbc驱动,内部进行路由分派。 (理论上也未必非要做jdbc驱动,只要做一个统一的数据库访问接口即可,比如: interface DistributedDB{ ...
我动手做解释器的原因是多方面的。 0 平时工作搞SSH,没机会接触cool的东西。 1 我不懂汇编,也不懂java字节码,所以只好做解释型的语言,不能做编译型的语言。 2 我工作中遇到的工作流引擎,我越发觉得那个流程图其实也是 ...
自上次发贴“我想搞一个类似ASP.net的Web Form for Java,大家给点意见”http://hatedance.iteye.com/blog/650653以后,我就开始动手做这个我理想中的框架。至今已有1月余,基本的需求都已完成。 demo就放在我的主页上,appengine有点慢:http://www.dingjianghao.com/Demo.jwf 可惜我没有美术细胞,组件都很难看,css不太会搞。 主要是一个Tabs组件,然后每个tab分别演示了一些常见的组件,包括支持分页的列表,树,模式对话框等。 我想说的是,用传统的无状态MVC框架是很难做出这种c/s风格的界面的, ...
我是从asp.net转java的,虽然多年来一直在搞java,但仍然怀念webform的易用性。而java平台上似乎一直没有webform的替代品。用得最多的还是MVC框架。 但我就是喜欢事件驱动的组件界面模型。 事件模型的技术有很多,flex,EXT,ajax,但它们都是用js的,不是server端的,不是java的。 有2个东西是server端又是java编程的,那就是JSF和GWT。但是仔细看来,都不是Webform的替代品。 gwt自动把java代码转化为js代码,于是在写java代码的时候,有诸多限制,不是任何java代码都能顺利转化为js代码的。而JSF的问题我也讲不清,反正用起来还 ...
Global site tag (gtag.js) - Google Analytics