分类目录 : Java

浅谈Java中的四种引用

Java从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用Strong Reference、软引用SoftReference、弱引用WeakReference和虚引用PhantomReference。可能作为服务端开发人员,如果没有深入底层研究一些常用框架的源码,估计对上面的提及的四种引用可能基本没有什么概念。但是作为Andr [...]

javap查看class类文件结构

javap是JDK提供的一个命令行工具,使用javap可以对编译后的class文件进行反编译。这种反编译方式跟我们平常使用的如JD-GUI等一些Java反编译工具有所不同,开发中我们希望使用反编译工具是为了通过class文件获取Java源代码,而使用javap会为我们生成虚拟机字节码指令集。我们可以对照Java源代码和字节码,从而了解很多编译器内部的工作,并且可以根据JVM内存区域的划分,对局部变 [...]

浅谈JVM虚拟机内存区域

相信Java编程人员都或多或少了解变量在JVM内存中的分配情况,如基本数据类型、对象以及常量池。多数情况下可能我们比较关心的是堆内存和栈内存,某些开发人员比较常见的一种说法是基本数据类型一般存储在栈区,对象存储在堆区,常量分配在常量池。其实上面这种说法是很片面的,又如局部变量在多线程并发编程中是否需要使用同步锁等之类的问题。这些问题就是在接下来两篇博文中将要讨论介绍的,如果说你已经很明确知道上述描 [...]

Java代码实现加密算法实践

在平常开发中经常需要考虑到各种安全问题,所以常常会用到各种加密算法,包括对称加密算法和非对称加密算法,如MD5、SHA256、DES、3DES以及AES等。本文并不涉及到各种加密算法的详细介绍,仅仅是介绍如何使用Java语言实现加密的逻辑。 MD5和SHA算法都是单向的不可逆哈希加密算法,意味着使用明文加密后的密文是无法解密出明文的,当然了这并不表示密文就无法破解,仍然可以借助哈希碰撞的方式破解 [...]

Java中IO流操作

本文主要涉及到对Java中IO常用方法的使用介绍,如File、字节流、字符流、内存操作流以及RandomAccessFile。相比较而言虽然本文很是基础,但也确实是很受用的。缺少了对缓冲输入输出流部分的介绍,当时也是想单独记录一篇笔记的。其实是还没有毕业时记录的学习笔记,一直在移动硬盘中存着的,所以说是很基础的知识点。 1.File类 File类是整个IO包中唯一一个与文件本身有关的操作类,所 [...]

Java设计模式-策略模式

策略模式介绍 策略模式在23种设计模式中归类为对象行为模式。在平常开发过程中也是比较常见的一种设计模式 策略模式的主要意图是针对一系列算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 策略模式一般设计到三个角色: 环境(Context)角色:持有一个Strategy的引用。 抽象策略(Strategy)角色 [...]

Java远程方法调用RMI简单介绍

RMI介绍 RMI(Remote Method Invocation,远程方法调用)是用Java在JDK1.1中实现的。经过多个JDK版本迭代,目前RMI的实现方式跟最开始底层实现还是有很大差别的。远程方法调用允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象的方法。 这两个虚拟机可以是运行在相同计算机上的不同进程中,也可以是运行在网络上的不同计算机中。 RMI使用JRM [...]

Java设计模式-委托delegate模式

委托delegate模式虽然并没有被归类在23中常用的设计模式之中,但是在开发中确实也是比较常用的软件设计模式之一。在Android的support包中AppCompatActivity就可以看到delegate的身影;iOS终端开发使用delegate更是随处可见;而在J2EE开发中业务委托模式在已经作为了官方的一种设计模式。 委托模式介绍 下面是维基百科中对委托模式的定义。 委托模式是软 [...]

Java设计模式-适配器模式

适配器模式是23种设计模式中比较常用的模式之一,在创建型模式、结构性模式和行为型模式分类中,适配器模式归类为结构型模式。 将一个类的接口转换成客户希望的另外一个接口。 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器结构和使用场景 使用场景 系统需要使用现有的类,而这些类的接口不符合系统的需要。 想要建立一个可以重复使用的类,用于与一些彼此之间没 [...]

Java设计模式-桥接模式

桥接模式也是23种设计模式中比较常用的模式之一,在创建型模式、结构性模式和行为型模式分类中,桥接模式归类为结构型模式。 在正式介绍桥接模式之前,先简单的看一个例子,通过例子我们再介绍引入桥接模式。 假设要设计一个跨平台的图片浏览系统,该系统可以正常显示PNG、JPG、GIF等不同格式图片,而且在不同的操作系统上面也可以正常运行。系统会首先将文件解析为不同的像素矩阵(Matrix),然后将像素矩 [...]

Java设计模式-责任链模式

责任链模式又称为职责链模式,在23种设计模式中归类为行为型模式。行为型模式可以分为类行为型模式和对象行为型模式。 类行为型模式使用继承关系在几个类之间分配行为,类行为型模式主要通过多态等方式来分配父类与子类的职责。 对象行为型模式则使用对象的聚合关联关系来分配行为,对象行为型模式主要是通过对象复合等方式来分配两个或多个类的职责。根据“合成复用原则”,系统中要尽量使用组合关系来取代继承关系,因此 [...]

Java设计模式-单例模式

单例模式也是23种设计模式中最常用的模式之一,在创建型模式、结构性模式和行为型模式分类中,单例模式归类为创建型模式。 单例模式确保一个类只有一个实例,并提供一个全局访问点。这种方式可以防止创建多个对象消耗过多资源,或者某种类型的对象有且只能有一个。例如创建一个对象消耗过多资源,访问IO和数据库或者进行网络传输数据等等,这时候就应该使用单例模式。 从最开始接触单例模式,包括在大多数书籍中的介绍中 [...]

Java设计模式-工厂模式

工厂模式也是23种设计模式中比较常用的模式之一,而这23种设计模式的又可以分为:创建型模式、结构性模式和行为型模式,工厂模式归类为创建型模式。 一般情况下工厂模式又可以细分简单工厂模式、工厂方法模式以及抽象工厂模式3种,简单工厂模式严格来说并不是工厂模式的一种,而是一种编程习惯。在本文中为了对比理解所以将也简单工厂作为了一种模式 简单工厂模式 简单工厂(Simple Factory)模式是由 [...]

Java类加载器二

有关类加载的内容前面已经介绍了两篇博文,但是仍然没有介绍到类加载的在平常开发中的使用场景,包括如何自定义类加载器。本篇文章继续介绍类加载器的相关内容,包括如何自定义类加载器,并通过简单示例介绍一下类加载器的应用。最后在介绍一下线程上下文类加载器以及类加载器在Web容器和OSGi中的应用。 Class.forName Class.forName()是一个静态方法,同样可以加载类。Class.fo [...]

Java类加载器一

类加载器介绍 在前面已经有一篇笔记简单介绍了Java类加载机制,但是限于篇幅所以将类加载器单独新启一篇继续介绍。Java类加载器处于类加载机制的第一个阶段,如果在这个阶段对类文件做任何更改都将会对运行产生重大影响。由于类加载都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会给java应用程序提供高度的灵活性。 本文所有示例都是基于JDK1.8.0_111,虚拟机版本 [...]
共 3 页 1 2 3