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

Stella981
• 阅读 311

EKT enterprise key techlology 企业关键技术

本章目标:

1.理解Class类

2.理解JAVA类加载体系结构

3.理解类的加载过程

Class对象由JVM自动产生,每当一个类被加载时,JVM就自动为其生成一个Class对象,通过Class对象可以获得类的相关信息。
将类信息读到内存中过程,称为类加载

获得类的基本信息的常用方法:

getName() 获得类名
getPackage() 获得包名
isInterface() 是否为接口
isPrimitive() 是否为基本类型
isArray() 是否为数组
getSuperclass() 获得父类的Class对象

class与类加载:

Java在需要使用某个类时,才会将该类进行加载,而不是在程序启动时就加载所有的类。

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

一、使用new关键字创建对象时。
二、通过反射创建对象时。
三、调用某个类的static方法时。
四、调用某个类的static属性时。
五、当初始化某个类的子类时。
六、某个类标明为main() 函数类(启动类) 。

部分代码展示:

public class Demo1 {
    public static void main(String[] args) {
        String str=new String("Hello tty!");

        //1.getClass();
        Class c1=str.getClass();

//        getName() 获得类名
        System.out.println("1.获得类名:"+c1.getName());

        System.out.println("*******************");

//        getPackage() 获得包名
        System.out.println("2.获得包名:"+c1.getPackage());

        System.out.println("*******************");

//        isInterface() 是否为接口
        System.out.println("3.是否为接口:"+c1.isInterface());

        System.out.println("*******************");

//        isPrimitive() 是否为基本类型
        System.out.println("4.是否为基本类型:"+c1.isPrimitive());

        System.out.println("*******************");

//        isArray() 是否为数组
        System.out.println("5.是否为数组:"+c1.isArray());

        System.out.println("*******************");

//        getSuperclass() 获得父类的Class对象
        System.out.println("6.获得父类的Class对象:"+c1.getSuperclass());

        System.out.println("*******************");

        //2. class
        Class c2=String.class;

//        getName() 获得类名
        System.out.println("1.获得类名:"+c2.getName());

        System.out.println("*******************");

//        getPackage() 获得包名
        System.out.println("2.获得包名:"+c2.getPackage());

        System.out.println("*******************");

//        isInterface() 是否为接口
        System.out.println("3.是否为接口:"+c2.isInterface());

        System.out.println("*******************");

//        isPrimitive() 是否为基本类型
        System.out.println("4.是否为基本类型:"+c2.isPrimitive());

        System.out.println("*******************");

//        isArray() 是否为数组
        System.out.println("5.是否为数组:"+c2.isArray());

        System.out.println("*******************");

//        getSuperclass() 获得父类的Class对象
        System.out.println("6.获得父类的Class对象:"+c2.getSuperclass());


        System.out.println(c1==c2);
        //得出结论:
        //a.一个类的类对象是唯一的
        //b.如果已知对象的实例可以通过getClass()得到类对象
        //c.如果已知类型,可以通过class得到类对象


    }

}

效果图展示:

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

心得与感悟:

学习的过程解决自己的解惑,让自己不断地进步,学习是痛苦并快乐着的,每天的日子都感觉很充实,我相信未来的我一定会感谢现在拼搏的自己。
点赞
收藏
评论区
推荐文章
灯灯灯灯 灯灯灯灯
1年前
图文详解,史上最全【类加载子系统】解说!!
内存结构概述简图详细图英文版中文版注意:方法区只有HotSpot虚拟机有,J9,JRockit都没有如果自己想手写一个Java虚拟机的话,主要考虑哪些结构呢?1.类加载器2.执行引擎类加载器子系统类加载器子系统作用:1.类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。2.ClassLo
刚刚好 刚刚好
5个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
晴空闲云 晴空闲云
5个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
艾木酱 艾木酱
5个月前
快速入门|使用MemFire Cloud构建React Native应用程序
MemFireCloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
Wesley13 Wesley13
1年前
Java高级篇——深入浅出Java类加载机制
类加载器简单讲,类加载器ClassLoader的功能就是负责将class文件加载到jvm内存。类加载器分类从虚拟机层面讲分为两大类型的类加载器,一是BootstrapClassloader即启动类加载器(C实现),它是虚拟机的一部分,二是其他类型类加载器(JAVA实现),在虚拟机外部,并全部继
Wesley13 Wesley13
1年前
java锁学习(二)
类锁类锁!!!!java类有很多对象,但是只有一个class对象!!!!所以,类锁,就是针对当前类的Class对象的锁类锁同一时刻只能被一个对象获取1.synchronized放在static方法上(静态锁)2.synchronized放在class对象上静态锁classSyncClassSt
Wesley13 Wesley13
1年前
java类的加载与加载器
java代码在计算机中经历的三个阶段:1.Source源代码阶段(代码还是在硬盘上,并没有进入内存)  Student.java通过javac编译Student.class字节码文件2.类加载器ClassLoader将字节码文件加载进入内存,成为Class类对象(成员变量Field\\fields、构造方法Const
Wesley13 Wesley13
1年前
Java类加载机制的理解
算上大学,尽管接触Java已经有4年时间并对基本的API算得上熟练应用,但是依旧觉得自己对于Java的特性依然是一知半解。要成为优秀的Java开发人员,需要深入了解Java平台的工作方式,其中类加载机制和JVM字节码这样的核心特性。今天我将记录一下我在新的学习路程中对Java类加载机制的理解。1.类加载机制类加载是一个将类合并到正在运
Wesley13 Wesley13
1年前
Java虚拟机(五):JVM 类加载机制
一、JVM类加载机制JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。!(https://oscimg.oschina.net/oscnet/0a45369b8a27e5e50b5f57d200ec45dcbdf.png)1\.加载:  加载是类加载过程中
helloworld_28799839 helloworld_28799839
5个月前
常用知识整理
Javascript判断对象是否为空jsObject.keys(myObject).length0经常使用的三元运算我们经常遇到处理表格列状态字段如status的时候可以用到vue