day06_ekt_简单介绍

简单介绍

.EKT Java企业级关键技术强化 Enterprise Edition

代码展示:

package demo1;

public class Demo1 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String s = new String("hello");
        
        //1. getClass()
        Class clz = s.getClass();
        System.out.println("类名:" + clz.getName());
        System.out.println("包名:" + clz.getPackage());
        System.out.println("是否为接口:" + clz.isInterface());
        System.out.println("是否为基本类型:" + clz.isPrimitive());
        System.out.println("是否为数组:" + clz.isArray());
        System.out.println("String类的父类:" + clz.getSuperclass());
        
        //2. class
        Class clz1 = String.class;
        System.out.println("类名:" + clz1.getName());
        System.out.println("包名:" + clz1.getPackage());
        System.out.println("是否为接口:" + clz1.isInterface());
        System.out.println("是否为基本类型:" + clz1.isPrimitive());
        System.out.println("是否为数组:" + clz1.isArray());
        System.out.println("String类的父类:" + clz1.getSuperclass());
        
        
        System.out.println(clz == clz1);
        //得出结论:
        //a.一个类的类对象是唯一的
        //b.如果已知对象的实例可以通过getClass()得到类对象
        //c.如果已知类型,可以通过class得到类对象
        
        
        int a = 100;
        System.out.println(int.class);
    }

}

 

package work2;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Work2 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        try {
            System.out.print("输入任意类的名字:");
            String className = br.readLine();
            Class cls = Class.forName(className);
            // 循环打印父类信息,直到没有父类
            while (cls != null) {
                System.out.println(cls);
                cls = cls.getSuperclass();
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException cnfe) {
            cnfe.printStackTrace();
        }

    }

}

有6种情况,JVM会加载Class对象

一、使用new关键字创建对象时。

二、通过反射创建对象时。

三、调用某个类的static方法时。

四、调用某个类的static属性时。

五、当初始化某个类的子类时。

六、某个类标明为main() 函数类(启动类) 。

类加载器

顾名思义,它就是用来加载Class文件到JVM,以供程序使用的。 JAVA的类加载,都是通过类加载器完成的。

类加载器的创建:

当java运行class文件时,java运行程序会尝试找到JRE安装的所在目录,

然后寻找jvm.dll(默认安装在bin\client目录中) 接着启动JVM 并进行初始化的工作,

产生Bootstrap Loader,Bootstrap Loader会加载Extended Loader和AppClass Loader。

注意:

创建这个项目的时候目录这件千万不要有中文 不然会报错,血一样的教训!!

posted @ 2020-08-20 19:18  二零二零  阅读(155)  评论(0编辑  收藏  举报