自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java中类的卸载机制

类的卸载:由JVM自带的类加载器所加载的类,在JVM的生命周期中,始终不会被卸载。JVM本身会始终引用这些类加载器,而这些类加载器始终引用它们所加载的类的Class对象。所以说,这些Class对象始终是可触及的。 由用户自定义的类加载器所加载的类是可以被卸载的。对于每一个Class对象,可以通过其getClassLoader()方法获得其类加载器的引用,所以Class对象内部有指向其类

2018-01-31 17:57:01 1834 1

原创 Java的自定义类加载器及JVM自带的类加载器之间的交互关系

JVM自带的类加载器: 其关系如下: 其中,类加载器在加载类的时候是使用了所谓的“父委托”机制。其中,除了根类加载器以外,其他的类加载器都有且只有一个父类加载器。 关于父委托机制的说明: 当生成 一个自定义的类加载器实例时,如果没有指定它的父加载器,那么系统类加载器将成为该类加载器的父类加载器 下面,自定义类加载器。自定义的类加载器必须继承java.lang.ClassLoa

2018-01-31 14:00:00 2710 3

原创 Java网络编程(基于TCP和UDP的通信实现)

简单说一些常见的协议所属的OIS层: 应用层:远程登录协议Telnet、文件传输协议FTP,超文本传输协议HTTP,域名服务DNS,简单邮件传输协议SMTP,邮局协议POP3等 传输层:传输控制协议TCP—-面向连接的可靠传输协议,用户数据报协议UDP—–是无连接的,不可靠的传输协议 网络层:网际协议IP,Internet互联网控制报文协议ICMP、Internet组管理协议IGMP

2018-01-23 11:00:41 901

原创 设计模式之单例模式

单例模式:顾名思义,就是一个类只能有一个该类的实例。所以,构造方法肯定不能是Public,只能是Private/** * 单例模式:静态成员变量在该类被加载时就生成对象,不会产生线程不安全问题 * 缺点:用户没有该类对象就生成对象,也是空间的浪费,应该在用户请求该对象的时候生成比较合适 */public class Singleton { private static Sin

2018-01-22 11:29:34 202

原创 深拷贝(Deep Clone)与浅拷贝(Shadow Clone)

浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。 深复制:被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不在是原有的那些被引用的对象。换言之,深复制吧要复制的对象的所引用的对象都复制了一遍。Java

2018-01-20 20:09:54 1098

原创 Object的wait()方法和notify()方法

JDK中关于wait()方法和notify()方法说明英文版翻译,渣渣英语,如有不妥,望提出宝贵意见~public final void wait() throws InterruptedExceptionCauses the current thread to wait until another thread invokes the notify() method or the n

2018-01-19 23:03:34 460

原创 Java中的线程Thread

线程就是程序中单独顺序的流控制。线程本身不能运行,它只能用于程序中。只能使用分配给程序的资源和环境。 有关线程的一些特性:1.Java中如果我们没有自己产生线程,那么系统就会给我们产生一个线程(主线程,main方法就在主线程上运行),我们的程序都是由线程来运行的。 2.线程一旦运行起来,就无法控制它了。 2.进程就是执行中的程序(程序是静态的概念,进程是动态的概念);一个进

2018-01-19 20:15:27 253

原创 对象的序列化和反序列化

当程序运行的时候,对象在内存中是存在的,一旦程序结束,那么该对象便从内存中“消失”,如果想实现对象的“持久化存储”,即保存在硬盘中呢?那么就需要通过对象的序列化来实现了;同理,如果想从硬盘中获得对象,那么就是对象的反序列化。反序列化不会调用对象的任何构造方法,仅仅根据所保存对象状态的信息,在内存中重新构建对象 序列化(Serialization)是一个把对象的状态写入字节流的过程

2018-01-19 11:41:15 271

原创 设计模式之装饰模式

Java中的I/O系统,看似负责混乱,其实也是有规律可循的,其中最主要的就是应用了一种设计模式——装饰模式,否则可能会更复杂….. Java中将输入输出抽象出“数据流”的概念,以程序作为参照物,可划分为输入数据流和输出数据流。 根据是否直接与目标进行交互,可分为过滤流和节点流。就比如,文件输入输出字节流是直接和目标——文件进行交互的,可视为节点流;而缓冲输入输出字节流则需要传入节点字节输出流或

2018-01-16 16:43:56 238

原创 设计模式之观察者模式

在学习java AWT或者Swing的时候,我们知道,如果为按钮添加了监听器,那么在我们点击按钮的时候,就可以触发一定的事件。大致过程如下:当点击一个按钮的时候就会产生一个事件,然后检查是否有与该按钮关联的事件处理器(实际上就是一个方法),如果没有,那么什么都不执行;如果有,就会将该事件传递给与该按钮相关联的处理器方法,作为该方法的参数,之后该事件处理器方法就会“自动”得到调用,并且该方法可以使用

2018-01-13 17:20:31 217

原创 设计模式之策略模式Strategy

在实际开发中,我们可能会根据环境或者条件的不同选择不同的算法或者策略去实现该功能。 比如排序、查找。一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的方法中,通过if…else…或者case等条件判断语句来进行选择。这两种实现方法我们都可以

2018-01-09 09:22:57 227

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除