iT氪,IT人的社区

51dev.com 技术开发者社区

Java接口回调机制详解

Java接口回调机制详解

一、前言 最近在看android fragment与Activity进行数据传递的部分,看到了接口回调的内容,今天来总结一下。 二、回调的含义和用途 1、什么是回调? 一般来说,模块之间都存在一定的调用关系,从调用方式上看,可以分为三类同步调用、异步调用和回调。同步调用是一种阻塞式调用,即在函数A的函数体里通过书写函数B的函数名来调用之,使内存中对应函数B的代码得以执行。异步调用是一种类似消息或事件的机制解决了同步阻塞的问题,例如 A通知 B后,他们各走各的路,互不影响,不用像同步调用那样, A通知 B后,非得等到 B走...

Log4j日志体系结构解读

Log4j日志体系结构解读

摘要 我们在写日志的时候首先要获取logger,在每一个使用log4j的项目都有很多个地方要获取logger,这些logger是真实的被实例化的Logger对象,他们有可能被分散在无数不同的类中,日志体系结构讲的是这些logger对象是如何组织的,他们之间又有什么样的关系。 体系结构 我们举个具体的实例来看看,假设我的项目包结构如下: 项目结构 说明一下:com.flu.jdk包下面有两个类分别是LogTest1和LogTest2,然后在包com.flu包下面有一个LogTest3类,很显然,com.flu.jdk包是com.flu包的子包。假设我们在这三...

你需要理解的 Java 反射机制知识总结

你需要理解的 Java 反射机制知识总结

本篇将从以下几个方面讲述反射的知识: class 的使用 方法的反射 构造函数的反射 成员变量的反射 一、什么是class类 在面向对象的世界里,万物皆对象。类是对象,类是java.lang.Class类的实例对象。另外class类只有java虚拟机才能new出来。任何一个类都是Class 类的实例对象。这实例对象有三种表达方式: public class User{ } public class ClassTest{ User u=new User(); //方式1: Class c1=User.class; //方式2:...

在 Java 中运用动态挂载实现 Bug 的热修复

在 Java 中运用动态挂载实现 Bug 的热修复

大多数 JVM 具备 Java 的 HotSwap 特性,大部分开发者认为它仅仅是一个调试工具。利用这一特性,有可能在不重启 Java 进程条件下,改变 Java 方法的实现。典型的例子是使用 IDE 来编码。然而 HotSwap 可以在生产环境中实现这一功能。通过这种方式,不用停止运行程序,就可以扩展在线的应用程序,或者在运行的项目上修复小的错误。这篇文章中,我将演示动态绑定、应用运行期代码变化进行绑定、介绍一些工具 API 以及 Byte Buddy 库,这个库提供了一些 API 代码改变更方便。 假设有一个正在运行的应用程序,通过校验 HTTP 请求中的 X-P...

Java Class文件详解

Java Class文件详解

Java Class文件中包含以下信息:   ClassFile { u4 magic; //模数 u2 minor_version; //次版本号 u2 major_version; //主版本号 u2 constant_pool_count; //常量池大小 cp_info constant_pool[constant_pool_count-1]; /...

7款开源Java反编译工具

7款开源Java反编译工具

今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程。尤其是像.NET、Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码。当然,也有一些商业软件,对其程序进行了混淆加密,这样我们就很难用工具反编译了。 1、Java反编译插件 —— Jadclipse JadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到eclipse的plugins目录下,然后修改windo...

Java数组操作的10大方法

Java数组操作的10大方法

下面是精心整理的Java数组操作的10大方法,大部分代码都来自Stack Overflow。 0、定义一个Java数组   String[] aArray = new String[5]; String[] bArray = {"a","b","c", "d", "e"}; String[] cArray = new String[]{"a","b","c","d","e...

经典的Java基础面试题集锦

经典的Java基础面试题集锦

经典的Java基础面试题集锦,欢迎收藏和分享。 ...

Java 程序员不容错过的开发趋势

Java 程序员不容错过的开发趋势

当涉及到代码时,有很多热门话题,并且与时俱进总是潮流所向。如果你想知道如何分离糟粕和精华,那么我们已经准备就绪,只欠各位阅读下文的东风。 在接下来的内容中,我们将查看2016年的热点,以及今年会更热的热点。当然说的是Java方面的。好的,那就启航吧。 ...