Fork me on GitHub


在不重新编译的情况下直接修改Java Class文件中的内容

Java程序实际上执行的是Java文件编译后的Class文件,这是任何一个Java开发人员都了解的基本知识。若Java程序执行的结果不符合要求,通常的解决方法是先修改Java文件,重新编译成Class文件后再次执行。但有时候我们不能直接修改Java文件(如只有包含class文件的jar包),此时我们就只能直接修改Class文件,本文将展示在基于不同的需求通过可视化工具和Javassist库来直接对Class文件进行修改的方法。

解决EasyUI DataGrid中的行在列冻结时无法对齐的问题

相对于传统的用HTML中TABLE实现的表格,利用 EasyUI 中的 DataGrid 实现的表格具有很多优点,如可以 对列宽进行拖动调整、列冻结、行冻结、自定义格式化 等功能,故而在Web开发中得到了广泛的应用。最近自己在使用DataGrid的列冻结功能时遇到了由于某些单元格中的内容较多导致该行无法对齐的问题,由于当前在EasyUI官网中无法找到该问题的解决方案,自己研究DataGrid的实现原理后,找到了变通的解决方案,故先记录下。

4. [译]并发的模型

本文翻译自Java Concurrency / Concurrency Models

并发系统可以使用不同的并发模型来实现,并发模型是指线程在系统中如何写作来完成给定的任务。不同的并发模型以不同的方式拆分任务,线程间以不同的方式协作和通信,本文将深入研究在撰写本文时最流行并发模型(2015年)。

在MyEclipse项目中不能打开birt报表的解决方法

由于业务要求,需要在利用MyEclipse中开发的Web项目中添加Birt报表统计功能,新建完一个 report.rptdesign 文件后双击该文件出现如下错误:

3. [译]多线程的成本

本文翻译自Java Concurrency / Multithreading Costs

从一个单线程程序切换为多线程程序在给我们带来好处的同时也会产生一些额外的成本,不要因为会使用多线程就将一个程序变为多线程实现。在准备使用多线程时,我们应该有一个清楚的认识:使用多线程带来的好处大于其成本,当有不确定时,我们应该尝试度量应用程序的性能和响应性来决定是否采用多线程,而不是靠猜来决定。

2. [译]多线程的优点

本文翻译自Java Concurrency / Multithreading Benefits

尽管多线程给程序实现带来了挑战,但由于多线程的一些优点我们仍然在使用它,其中的一些优点如下:

  • 更好的资源利用
  • 在某些场景可以简化程序设计
  • 提高程序响应

1. [译]Java多线程与并发教程

本文翻译自Java Concurrency / Multithreading Tutorial

最开始一台电脑只有单个CPU,只能一次运行一个任务,之后出现的多任务处理则意味着计算机在同一时间可以处理多个程序(也可以称之为任务或进程),虽然它们并不是真正的并发。由于单个CPU被不同的程序共用,操作系统需要在程序运行过程中不停地切换CPU,在短暂的执行一个程序后就立即切换到下一个程序。

多任务处理给软件开发人员提出了新的挑战,程序不能再假定拥有CPU所有的可用时间、内存和其它计算机资源,一个好的程序应该及时释放所有不需要使用的资源,以便其它程序可以使用它们。 之后出现的多线程则意味着可以在同一个程序里面执行多个线程,每一个执行的线程可以被认为是CPU在执行当前程序,当在同一个程序里面执行多个线程时,看起来像是拥有多个CPU在执行该程序。

在Intellij IDEA中引用Golang本地包

在学习Golang时,自己最开始用的是eclpse中的goclipse插件来进行Golang编程,但其对Golang的支持不是太好,如代码格式化、自动导入引用包等都无法直接在eclipse中使用,并且其自动提示功能也没有像Java那么强,于是转用Intellij IDEA安装Golang插件来替代使用,安装完插件后的Intellij IDEAGolang的支持在各方面都很令人满意,唯独引入本地包的支持不太好用。经过一阵摸索自己找出了解决方案,先记录下。

计算两个平行于坐标轴的矩形相交的面积

之前面试时遇到一个算法题: 假定两个矩形各条边都是平行于坐标轴,已知k、l、m、n分别为其中一个矩形左下角和右上角x轴、y轴坐标,p、q、r、s分别为另一个矩形的左下角和右上角x轴、y轴坐标,求这两个矩形的总面积,当矩形相交时要减去相交的面积。 此题利用常规的枚举法很复杂,但利用排除法和归纳法却能很快解决,故先记录下。

在iframe嵌套的html5中播放视频时全屏显示和取消音量调整

由于项目需要,最近使用了在html5中播放视频的功能,期间遇到了几个坑,先简单记录下。