`
ruruhuang
  • 浏览: 197321 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

透视java读书笔记(一)

阅读更多
  1. 反编译字节码所生成的源代码几乎与原始的源代码一致.

使用反编译器能够把没有经过特殊处理的class文件还原成几乎和源码一样的java文件.因为在class文件中几乎包括了一切可以用于调试的信息,行号,成员变量,参数类型和参数名称etc, 但是应该不包括javadoc和注释,正应为这样你才能用现代的IDE方便的调试你的程序.定位行,单步执行,审查值etc. 如果我们在编译源码的时候加上-g:none选项,反编译的代码就会损失一些清晰度.例如方法参数名称和局部变量的名称等等.


2. java字节码中,混淆是保护知识产权的最佳途径,混淆执行如下一些或全部变换:去除调试信息,<fontface="宋体, simsun"="">名称的处理,编码字符串,改变控制流程,插入讹用的代码,删除未使用的代码和优化代码.混淆带来了维护的困难,这可以通过配置混淆程序将其减到最小.混淆的代码仍旧可读,除非使用了控制流程的混淆和字符串编码.


  1. 没有被声明为public的方法和变量仍然可以访问.

    1. 具有packageprotected可视属性的成员可以通过将助手类插入其包中或使用反射API访问

当变量或方法没有用可视性关键字(publicprotected private)声明时,就是packagevisible.假如一个包中的某个类有个packagevisible的属性,但是他又没有提供getter方法给你,你又想获得这个属性的值,那我们可以在这个包中加一个助手方法.为这个packagevisible的属性提供一个getter方法.不过当那个包是系统包时,可能会发生SecurityException.我们下面会讨论这个.

    1. 使用反射访问私有类成员或方法.

这里要注意的是,如果设置了安全管理器(大多数应用服务程序和中间产品通常都是这样),那么我们还需要多做一些工作,要不就会发生RumtimePermission发生.为了让我们的代码能和已安装的安全管理器协同工作,必须准予通过反射访问声明的成员以及禁止访问检查的许可,这通过添加准予codebase这两种许可java政策文件的方式来实现:

grant{

permissionjava.lang.RuntimePermission “accessDeclaredMembers”;

permissionjava.lang.reflect.ReflectPermission “suppressAccessChecks”;

};

javacommand中加上 -Djava.security.manager–Djava.security.policy=../conf/java.policy

分享到:
评论

相关推荐

    Java最全学习资料+面试题+DOS命令+设计模式+Excel技巧+java学习笔记

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能和丰富的类库而闻名。这份压缩包中的资源全面覆盖了Java的学习和应用,包括学习资料、面试题、DOS命令、设计模式以及Excel技巧和Java学习笔记。让我们...

    iReport 3.6.7 学习笔记

    在IT行业中,报表设计和生成是数据可视化的重要环节,而iReport作为一款强大的Java报告工具,因其易用性和灵活性深受开发者喜爱。本学习笔记主要围绕iReport 3.6.7版本展开,探讨其核心功能与使用技巧。 一、...

    金蝶EAS BOS开发学习笔记

    ### 金蝶EAS BOS开发学习笔记:制作第一个列表查询界面 #### 一、环境准备与基础配置 1. **透视图与视图的开启**:为了方便后续的开发工作,首先确保所需的透视图和视图处于打开状态。这包括但不限于BOS透视图下的...

    Eclipse插件开发笔记源码

    Eclipse插件开发是Java开发领域中的一个重要分支,它允许开发者通过扩展Eclipse IDE的功能来创建自定义的工作环境。这份“Eclipse插件开发笔记源码”提供了丰富的学习材料,帮助开发者深入理解并实践Eclipse插件开发...

    eclipse插件开发学习笔记15-24章

    Eclipse 插件开发是Java开发领域中的一个重要分支,它允许开发者通过扩展Eclipse平台来创建自定义功能,提升开发效率。本学习笔记涵盖了从第15章到第24章的内容,这部分主要包括了以下几个核心知识点: 1. **插件...

    小白到入门 Eclipse 的指南

    Eclipse 是一个广泛使用的开源集成开发环境(IDE),尤其在Java编程领域中占据重要地位。对于初学者来说,掌握Eclipse的基本操作是学习Java编程的第一步。本指南将帮助“小白”快速入门,了解如何安装、配置以及使用...

    OpenCV3编程入门_毛星云编著_电子工业出版(笔记版)

    OpenCV支持多种编程语言,如C++、Python、Java等,能运行在多种操作系统上,例如Windows、Linux、Android和Mac OS。 毛星云编著的《OpenCV3编程入门》是一本面向初学者的教程,旨在帮助读者快速入门OpenCV3,书中...

    Eclipse快捷键大全

    Eclipse是一款广泛使用的Java集成开发环境(IDE),它提供了丰富的快捷键以提高开发效率。这篇笔记主要汇总了Eclipse中的一些常用快捷键,这些快捷键可以帮助开发者更高效地编写、调试和管理代码。 1. **Ctrl+1**:...

Global site tag (gtag.js) - Google Analytics