浪人 浪人
4年前
深入不可变类 -- 谈谈Java String与包装类的底层实现
深入不可变类——谈谈String与包装类的底层实现一、走进不可变类不可变类是指在创建实例后该例变量不可以改变的类。比如String类和包装类。定义不可变类需要遵守:1.成员变量设置为priavte,final修饰2.提供带参构造器对成员变量进行初始化3.只提供getter,
Wesley13 Wesley13
3年前
JAVA获取所有接口的实现类或父类的所有子类
packagefind;importjava.io.File;importjava.io.IOException;importjava.net.URL;importjava.util.ArrayList;importjava.util.List;importfind.test.Intf;importfind.tes
Stella981 Stella981
3年前
JVM 类加载机制详解
一.类的生命周期           !(https://static.oschina.net/uploads/img/201803/29115109_9IwG.jpg)  分析:1)加载loading:查找和导入class文件    不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比
Wesley13 Wesley13
3年前
Excel导出工具类.
 Excel导出工具类.POIimport java.io.OutputStream;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.ArrayList;import java.uti
Stella981 Stella981
3年前
Jvm类的加载机制
1.概述虚拟机加载Class文件(二进制字节流)到内存,并对数据进行校验、转换解析和初始化,最终形成可被虚拟机直接使用的Java类型,这一系列过程就是类的加载机制。2.类的加载时机类从被虚拟机加载到内存开始,直到卸载出内存为止,整个生命周期包括:加载——验证——准备——解析——初始化——使用——卸载这7个阶段。其中验
Stella981 Stella981
3年前
Base64工具类
package com.locator.encryption;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStr
Stella981 Stella981
3年前
31、最简单的mvc框架tiny,增加Ioc,jdbc工具类(1个类),连接池(1个类)
Ioc按照mvc,我们需要把tiny分成3层,其中视图(Renderer抽象类)和Action我们已经在前面实现了,这次我们用最少的代码实现Model。    model沿用Action的想法,用户自定义类,类名必须以Model结尾,同Action一样在初始化时放入Container容器内。model就是数据模型,我们这里充血模型,model
Wesley13 Wesley13
3年前
Java增强的包装类
java语言是面向对对象的编程语言,但这八种基本数据类型不支持面向对对象的编程的机制,基本数据类型的数据不具备“对象”的特征:没有成员变量、方法可以调用。java提供这8中基本数据类型,主要是为了照顾程序员的传统的习惯。但这也带来了麻烦,因为所有的引用类型都继承来自Object的类,可当成object的类型使用,所以当一个方法的参数是object类型参数时候
Stella981 Stella981
3年前
Reflections框架,类扫描工具
Reflections是一个能提供一站式服务的对象。巧用Reflections库实现包扫描(扫描某个包中某个接口实现、注解等)它扫描工程的classpath,为元数据建索引,允许你运行时查询元数据信息。此外,他还能为你项目的lib库中所有的jar包保存和收集元数据。
小万哥 小万哥
1年前
C# 面向对象编程解析:优势、类和对象、类成员详解
C什么是面向对象编程?OOP代表面向对象编程。过程式编程涉及编写执行数据操作的过程或方法,而面向对象编程涉及创建包含数据和方法的对象。面向对象编程相对于过程式编程具有几个优势:OOP执行速度更快,更容易执行OOP为程序提供了清晰的结构OOP有助于保持C代码