Class.forName(xxx.xx.xx) 返回的是一个类 首先你要明白在java里面任何class都要装载在虚拟机上才能运行.这句话就是装载类用的(和new 不一样,要分清楚). 至于什么时候用,你可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?只有你提到的这个方法了,不过要再加一点. A a = (A)Class.forName("pacage.A").newInstance(); 这和你 A a = new A(): 是一样的效果. 关于…
Forname可以获得类名对应的class对象: String classname=“java.util.Date” Class cl=Class.forName(className); newInstance()可以用来快速地创建一个类的实例: Employee e=new employee(): e.getClass().newInstance(): Forname和newInstance配合使用: String s=“java.util.Date”: Object m= Class.for…
引发问题的来源:最近在看比较深入的JVM相关的书,不得不感慨,JVM确实是比较深奥,很多地方难以理解不说,在网上还找不到什么资料,发现一个左思右想都想不明白的问题上网来搜索,结果基本上都是从书上copy下来的东西,还是不能理解. 问题的出现:今天突然想到一个这样的问题,就是类变量也就是静态变量的初始化问题.以前的范范理解是静态变量在类加载的时候就会初始化,反正是在初始化堆内存的之前会初始化静态变量,知道是这么一回事,但是不知其所以然.因为类加载其实也是有很多个步骤的,比如加载-连接-初始化.以前…
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.Date; public class NewInstanceExample { public static void main(String[] args) throws Exception { //Class.forName()要求JVM…
一.正文: 有去看开源框架的童鞋,应该会经常看到如下代码:Thread.currentThread().getContextClassLoader().loadClass(className),那这个和Class.forName(className)有什么区别? 带着这个问题,笔者查了一些资料,现整理分享如下,如果不当之处还望斧正: 通常情况下,一个JVM中的所有类加载器被组织成一个层次结构,使得每一个类加载器(除了启动整个JVM的原始类加载器)都有一个父加载器.当被要求加载一个类时,每一个类加…
终于明白为什么加载数据库驱动只用Class.forName()了!!困扰了我2个小时!!希望我写的这个东西对各位有所帮助.      在Java开发特别是数据库开发中,经常会用到Class.forName( )这个方法.通过查询Java Documentation我们会发现使用Class.forName( )静态方法的目的是为了动态加载类.在加载完成后,一般还要调用Class下的newInstance( )静态方法来实例化对象以便操作.因此,单单使用Class.forName( )是动态加载类是…
原文见:http://www.jb51.net/article/62068.htm 这篇文章主要介绍了Java设计模式之工厂模式(Factory模式)介绍,本文讲解了为何使用工厂模式.工厂方法.抽象工厂.Java工厂模式举例等内容,需要的朋友可以参考下   工厂模式定义:提供创建对象的接口. 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我…
在上一篇文章中说说java反射(1)我们已经了解了反射的基本概念以及它的原理,但是我们知道反射只能能用它来做些什么呢? 其实在我们很多已经很熟的框架中都有它的身影,例如Hibernate框架中的关联映射,Spring框架:IOC(控制反转).反射可以实现各种框架功能,接下来我们通过一个实例来写一个很小很小的框架,通过此例子来理解反射真正的价值所在. 接下来的例子主要功能是通过java反射来获取配置文件中的信息.通过配置文件,在程序运行的时候实例化所需要的类型的实例. 首先先建立一个资源文件,这里…
转载:http://blog.csdn.net/iloveyin/article/details/7965183 1.类的加载方式不同    在执行Class.forName("a.class.Name")时,JVM会在classapth中去找对应的类并加载,这时JVM会执行该类的静态代码段.在使用newInstance()方法的时候,必须保证这个类已经加载并且已经连接了,而这可以通过Class的静态方法forName()来完成的.    使用关键字new创建一个类的时候,这个类可以没…
耦合性是软件工程中的一个重要概念.对象之间的耦合性就是对象之间的依赖性.对象之间的耦合越高,维护成本越高.因此对象的设计应使类和构件之间的耦合最小. spring Ioc思想 控制翻转也就是spring所推出的依赖注入 传统的方法假设我们前端用的struts,那么action中我们对业务逻辑的编写一般是这样的 这里是一段伪代码: publicclass CustomerDao {  publicboolean getCustomerByAccount() {/* 代码 */ }      } …
Netty是什么: 异步事件驱动框架,用于快速开发高i性能服务端和客户端 封装了JDK底层BIO和NIO模型,提供高度可用的API 自带编码解码器解决拆包粘包问题,用户只用关心业务逻辑 精心设计的Reactor线程模型支持高并发海量连接 自带协议栈,无需用户关心 Netty 是一款提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序.也就是说,Netty 是一个基于 NIO 的客户.服务器端编程框架,使用 Netty 可以确保你快速和简单地开发出一个…
class.forname(className) class.forname(classname).newInstance class.forname(classname,true,Thread.XXX) class.forname(classname).newInstance.getclass…
动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化.比如众所周知的ECMAScript(JavaScript)便是一个动态语言.除此之外如Ruby.Python等也都属于动态语言,而C.C++等语言则不属于动态语言.(引自: 百度百科) var execString = "alert(Math.floor(Math.random()*10));"; eval(execString); Class反射机制 指的是可以于运行时加载,…
学过Spring的小伙伴对于IOC一定不陌生,IOC:控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心. 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup).依赖注入应用比较广泛.本篇我们通过一个实例和大家简单分析一下Spring中IOC的原理,以便我们可以更好的理解Spring. 简单描述一下我们…
最近因为一些琐碎的事情,导致一直没时间写博客,正好今天需求开发完的早,所以趁早写下本文,本文主要学习的是Hashtable的分析,因为上面一篇文章研究的是HashMap,而Hashtable和HashMap之间存在相似处,是面试中经常会问到的一个问题,因此进行下分析:而之所以加上Properties,是因为Hashtable 在实际生活中我们用的并不多,但是它的子类Properties 使用的频率相对还是不低的,因此也一起介绍下.好了,言归正传,接下来开始分析. 一.Hashtable 的定义…
在JavaEE中的MVC(三)中,我在Servlet中引入了命令模式的使用,采用Xml配置的方式,实现了一个Servlet调用多个不同的Action类,但是还不能实现页面地跳转,这一篇博客从之前的代码上,进一步地封装,实现Action跳转Jsp的功能,并且介绍一下如何将我们客户端的参数,传给我们的Action. 注:本文并不讲解Struts框架,只研究这种思想,研究如何实现Struts框架的封装 JavaEE中的MVC(三)定制Struts--命令模式 改进思路 我们要想办法解决这些问题: Ac…
1. 一般问题 1.1. 不同版本的 Spring Framework 有哪些主要功能? Version Feature Spring 2.5 发布于 2007 年.这是第一个支持注解的版本. Spring 3.0 发布于 2009 年.它完全利用了 Java5 中的改进,并为 JEE6 提供了支持. Spring 4.0 发布于 2013 年.这是第一个完全支持 JAVA8 的版本. 1.2. 什么是 Spring Framework? Spring 是一个开源应用框架,旨在降低应用程序开发的…
一.Java基础 1.Java面向对象的三个特征与含义 三大特征是:封装.继承和多态. 封装是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象.在Java中能使用private.protected.public三种修饰符或不用(即默认defalut)对外部对象访问该对象的属性和行为进行限制. 继承是子对象可以继承父对象的属性和行为,亦即父对象拥有的属性和行为,其子对象也就拥有了这些属性和行为.这非常类似大自然中的物种遗传. 多…
1.概述 在<Hadoop2源码分析-RPC机制初识>博客中,我们对RPC机制有了初步的认识和了解,下面我们对Hadoop V2的RPC机制做进一步探索,在研究Hadoop V2的RPC机制,我们需要掌握相关的Java基础知识,如:Java NIO.动态代理与反射等.本篇博客介绍的内容目录如下所示: Java NIO简述 Java NIO实例演示 动态代理与反射简述 动态代理与反射实例演示 Hadoop V2 RPC框架使用实例 下面开始今天的博客介绍. 2.Java NIO简述 Java N…
Spring 面试问题 TOP 50 Spring Framework 现在几乎已成为 Java Web 开发的标配框架.那么,作为 Java 程序员,你对 Spring 的主要技术点又掌握了多少呢?不妨用本文的问题来检测一下. 本文内容主要翻译自 Top 50 Spring Interview Questions You Must Prepare In 2018 1. 一般问题 1.1. 不同版本的 Spring Framework 有哪些主要功能? Version Feature Sprin…
在做项目时,遇到需要创建DAO.Service等类的实例的时候,想到用工厂方法来运作,而简单工厂方法又有明显的缺点: ①由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中: ②它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了. ③当系统中的具体产品类不断增多时候,可能会出现要求工厂类根据不同条件创建不同实例的需求.这种对条件的判断和对具体产品类型的判断交错在一起,很难避免模块功能的蔓延,对系统的维护和扩展非常不利: 所以考虑…
原文地址:http://www.importnew.com/17616.html 动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化.比如众所周知的ECMAScript(JavaScript)便是一个动态语言.除此之外如Ruby.Python等也都属于动态语言,而C.C++等语言则不属于动态语言.(引自: 百度百科) 1 2 var execString = "alert(Math.floor(Math.random()*10));&qu…
主要介绍以下几方面内容 理解 Class 类 理解 Java 的类加载机制 学会使用 ClassLoader 进行类加载 理解反射的机制 掌握 Constructor.Method.Field 类的用法 理解并掌握动态代理 1.理解Class类 –对象照镜子后可以得到的信息:某个类的数据成员名.方法和构造器.某个类到底实现了哪些接口.对于每个类而言,JRE 都为其保留一个不变的 Class 类型的对象.一个 Class 对象包含了特定某个类的有关信息. –Class 对象只能由系统建立对象 –一…
具体的关于反射的介绍可以参考我的另外一篇博文<深入解析java反射>. 反射的意义是什么,其实就是为了代码简洁,提高代码的复用率,外部调用方便,源代码,反编译都能看到. 某些情况下解耦用反射要清晰很多,下面是简单的测试 package cn.yonyong.reflection.testdemo; interface Fruit { //水果接口 4 public void eat() ; //吃水果 } class Apple implements Fruit{ //定义苹果 public…
1. 一般问题 1.1. 不同版本的 Spring Framework 有哪些主要功能? Version Feature Spring 2.5 发布于 2007 年.这是第一个支持注解的版本. Spring 3.0 发布于 2009 年.它完全利用了 Java5 中的改进,并为 JEE6 提供了支持. Spring 4.0 发布于 2013 年.这是第一个完全支持 JAVA8 的版本. 1.2. 什么是 Spring Framework? Spring 是一个开源应用框架,旨在降低应用程序开发的…
主要介绍以下几方面内容 理解 Class 类 理解 Java 的类加载机制 学会使用 ClassLoader 进行类加载 理解反射的机制 掌握 Constructor.Method.Field 类的用法 理解并掌握动态代理 1.理解Class类 –对象照镜子后可以得到的信息:某个类的数据成员名.方法和构造器.某个类到底实现了哪些接口.对于每个类而言,JRE 都为其保留一个不变的 Class 类型的对象.一个 Class 对象包含了特定某个类的有关信息. –Class 对象只能由系统建立对象 –一…
        先从IOC说起,这个概念其实是从我们平常new一个对象的对立面来说的,我们平常使用对象的时候,一般都是直接使用关键字类new一个对象,那这样有什么坏处呢?其实很显然的,使用new那么就表示当前模块已经不知不觉的和new的对象耦合了,而我们通常都是更高层次的抽象模块调用底层的实现模块,这样也就产生了模块依赖于具体的实现,这样与我们JAVA中提倡的面向接口面向抽象编程是相冲突的,而且这样做也带来系统的模块架构问题.很简单的例子,我们在进行数据库操作的时候,总是业务层调用DAO层,当然…
从虚拟机视角谈 Java 应用性能优化 周 祥, 软件工程师, IBM 简介:Java 的普及和广泛应用,以及其基于虚拟机运行的机制,使得性能问题越来越重要.本文从 Java 虚拟机的角度,特别是垃圾回收机制来剖析了 Java 应用程序设计需要注意的方面,并总结出了几条非常容易被忽视的设计.编写代码的原则和习惯.最后通过实例来介绍几种主要的 Java Profiler 工具对我们进行开发和分析的帮助.本文要求读者具有一定的 Java 虚拟机的基础知识,一定的 Java 设计模式和开发经验.通过阅…
Spring的IoC容器 Spring读书笔记-----Spring的Bean之Bean的基本概念 加菲猫 Just have a little faith. Spring的IoC容器 (用户持久化类)重构第一步——面向接口编程 1.  设计用户持久化类的接口UserDao,代码如下: public interface UserDao { public void save(User user); public User load(String name); } 2.  具体的持久化来必须要继承U…
前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 今天来简单写一下Java的反射.本来没打算写反射这个知识点的,只是不少的读者都问过我:"你的知识点好像缺了反射阿.能不能补一下?" 这周末也有点空了,所以来写写我对反射的简单理解.这篇是入门文章,没有高深的知识点,希望能对新人有帮助.如果文章有错的地方,麻烦在评论区友善评论指出~ Java常用和重要的知识点我都写过(现在已有200+篇技…