Java程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。本文讨论如何在不修改原有程序的情况下,通过加密技术保护源代码。一、为什么要加密?对于传统的C或C 之类的语言来说,要在Web上保护源代码是很容易的,只要不发布它就可以。遗憾的是,Java程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。Java的灵活性使得源代码很容易被窃取,但与此同时
转载 2008-05-20 05:44:00
125阅读
java的集合中,List接口继承Collection接口,AbstractList类实现了List接口,在AbstractList中的内部类Itr实现了Iterator接口ArrayList实现List接口并继承AbstractList类,结构图如下:(图片出自网络)Iterator接口源码:public interface Iterator<E> { boolean ha
转载 2023-07-06 13:07:20
84阅读
Sun JDK中采用javac将Java源码编译为class文件,这个过程包含三个步骤:1.分析和输入到符号表(Parse and Enter)Parse过程所做的工作有词法和语法分析。词法分析要完成将代码字符串转变为Token序列。语法分析则是根据语法将Token序列生成抽象语法树。Enter过程将符号输入到符号表,通常包括确定类的超类型和接口、根据需要添加默认构造器、将类中出现的符号输入类自身
          从事Java源代码人都知道可以通过逆向工程反编译得到Java源代码源码这种反编译工具之一就JAD因此为保护我们劳动成果尽可能给反编译人员制造障碍我们可以解决Java Obfuscator(Java源代码混淆器)保护Java类文件Java源代码混淆器原理就将字节码转换为一个逻辑上对等物这种转
转载 11月前
0阅读
1.java源码编译机制Sun JDK 中实现 java 源码编译器的是 javac, javac 将 java 源码编译为 class 文件的步骤如下图。步骤介绍:1 分析和输入到符号表(Parse and Enter)    Parse过程所做的为词法和语法分析。   词法分析(com.sun.tools.javac.parse.Scanner)要完成的
转载 2023-07-19 14:01:31
30阅读
一、概述    Objects类是一Object类的个工具类,类似Collections类,提供一些静态的工具方法,着重于校验空指针以及获取hash值等,弥补我们在写代码时不小心忽略空指针等异常情况,从jdk1.7被加入进来, Objects类被final修饰不能被继承,拥有私有的构造函数。二、源码解析    1. 类的声明pu
字符串compareTo源码解析这个方法的源码需要参考三个java文件,即String.java ,StringUTF16.java ,StringLatin1.javaJDK9之后由byte类型的数组来存储String,维护了一个属性coder,它是一个编码格式的标识,使用LATIN1还是UTF-16,这个是在String生成的时候自动的,如果字符串中都是能用LATIN1就能表示的就是0,否则就
转载 2023-06-06 14:30:08
79阅读
一、本节目的:为了了解Object类源码实现。二、源码展示import jdk.internal.HotSpotIntrinsicCandidate; /** * Object 类是java所有类的父类。 */ public class Object { private static native void registerNatives(); static {
一、源码描述 这是新款的基于B/S和Web开发的JavaWeb的SSM(Spring+SpringMVC+MyBatis)源码,包含源码数据库论文答辩ppt等,开发工具Idea支持eclipse,MySQL功能也比较全面,比较适合作为毕业设计使用,感兴趣的朋友可以下载看看二、功能介绍本文以JSP为开发技术,实现了一个九宫格日志网站。九宫格日志网站的主要使用者分为管理员;个人中心、用户管理、日记信息
Enum的API规范出处JSR 161Enum的优点编译时的类型安全;性能与int常量可比;类型系统为每个Enum类型提供了一个命名空间,这样不必每个常量设置前缀;类型安全的常量不会编译进客户端,因此可以在不重新编译的前提下添加、重排序、甚至删除常量,因为导出常量的属性在枚举类型和它的客户端之前提供了一个隔离层:常量值并没有被编译到客户端代码中,而是在int枚举模式中;通过toString可以将枚
文章目录1、集合包1.1 ArrayList实现方式创建:ArrayList()插入对象:add(E)删除对象:remove(E)获取单个对象:get(int)遍历对象:iterator()判断对象是否存在:contains(E)注意要点1.2 LinkedList实现方式LinkedList()add(E)remove(E)get(int)iterator()contains(E)注意要
前几篇文章对AQS的独占资源模式和共享资源模式的源码进行了解析,本篇文章来分析AQS最后一个非常重要的知识点:Condition源码解析。此篇文章内容较长,我是一个字一个字敲出来的,请您也慢慢的品读,自己认识有一定的局限性,欢迎交流更正。大家还记得Java中怎样实现生产者和消费者模式吗?原理是非常的简单的,为了防止生产者和消费者不均衡的情况发生,在生产者/消费者模式中会提供一个缓冲区,而这个缓冲区
写在最前对于一个合格的后端程序员来说,现行的流行框架早已经能胜任基本的企业开发,Springboot 任何的框架都把重复的工作更佳简单/优化的解决掉,但是完全陷入在这样的温水里面,好比温水煮青蛙,越是舒服下去,越不行,还是那句话,万变不离其宗。真正能了解JAVA在多少年来经久不衰的秘密,以及最基础,也是最重要的,还是得从源码下手,了解JDK开发人员的编码规范以及实现JDK过程中的思路以及为了更加了
转载 2023-08-25 11:00:47
38阅读
下面详细讲解如何修改JVM源码解决RMI的有状态化问题。从JVM源码可以看到,client通过控制链得到对象ID后,走数据链发送到RMI Server,Server的查找过程如下:target = ObjectTable.getTarget(newObjectEndpoint(id, transport)); 那么getTarget函数执行了啥? /** * Returns the target
源码适用于windows环境下最近做了个小系统,用到了File相关的类,如下:<span style="font-size:14px;">InputStreamReader in = new InputStreamReader(new FileInputStream(new File(UrlUtil.getRootUrl() + "config/mango.properties"))
最近在学习JDk源码,借鉴别人,自己就总结了一下就先从包结构说起吧,以JDK8为例包含:resources.jar、rt.jar、jsse.jar、jce.jar、charsets.jar、jfr.jar、access-bridge.jar,cldrdata.jar,dnsns.jar,等共18个jar文件,其中像比较jdk6多了8个jar包各个包的解析:resource.jar为资源包(图片、p
文章目录0. 前言1. 两个二进制流基类:InputSteam与OutputSteamInputStream定义整体结构常量和变量构造方法类似工厂方法需要/期待子类重写的方法已提供的和比较基本的成员方法OutputStream定义整体结构构造方法工厂方法类方法&成员方法InputStream和OutputStream的总结2. InputStream的流家族2.1 FileInputSt
版本 JDK8(JDK1.8)Iterator接口源码重点 1.Iterator接口的扩展版是ListIterator接口,ListIterator接口继承Iterator接口,ListIterator允许沿着两个方向遍历列表(向后next()和向前previous()),同时比Iterator,多了set(.),add(.)方法用于在光标处替换和添加元素 ListIterator源码可以看我这篇
转载 2023-07-25 13:20:17
44阅读
package java.util.concurrent.locks; import java.util.concurrent.TimeUnit; import java.util.Date; /** * Condition将对象monitor方法(wait, notify,notifyAll)分解成不同的对象, * 通过将它们与任意的锁实现结合使用,从而产生每个对象拥有多个等待集的效果。
转载 2023-09-01 09:02:40
29阅读
  • 1
  • 2
  • 3
  • 4
  • 5