发表于: 2017-11-25 10:15:53

4 751


今天做的事:


今天突然讨论到.class这个问题,然后就查了一下,是和java的反射机制有关的,但是鉴于现在能力有限,所以反射机制说不出来。


不过还是可以通过别的方式来了解这个.class是干什么的。

首先看一下网友们是怎么说的:

其实java里面有一个class类,通过它可以实例一个对象,不用用new来创建对象,建议你去看看java反射机制。

好,涉及反射机制,跳过。

https://www.zhihu.com/question/55565290/answer/145355951

知乎的一篇文章,提到了一点.class,但是感觉不够啊


http://blog.csdn.net/u012453619/article/details/38638313

再看这个,好像我们离理解更近一步了,知道了java中的Class类这个概念。


再看一位网友说的

类名.class是获得这个类所对应的Class实例。
从面向对象的角度上来看,类也是对象,它们是类这个类对象,听起来有些抽象,但是在java中的实现就是所有的加载进来的类在虚拟机中都是一个java.lang.Class类的对象,而“类名.class”就是获得这个类的对象(在同一个ClassLoader中,类对象都是单例的)

然后,继续

有了Class这个对象,就可以知道这个类里的信息,
包括类中定义的方法。

但是我们不能调用通过Class去调用类中的方法,必须要实例化类,才能调用方法。


好,通过上面的了解,我们应该知道了一个大概


类名.class是获得该类的Class实例,而这个Class实例中包含了这个类中的信息,在jvm中编译运行的时候呢,使用的都是Class<XX>这种形式,所以jvm通过这些Class<XX>知道每个类的信息,包括包名,类名,定义方法等等,然后再进行相关实例化,最后在成功创建一个实例对象,然后调用到相关方法。


由于没有学习过java的反射机制,所以只能浅显的了解到这里了。


接下来,在学习shiro授权的时候,又可以了解一些新的概念,比如我们做权限管理的时候,会有一名词叫做:RBAC

基于角色的权限访问控制(Role-Based Access Control)


对于权限管理这里,有一篇文章讲的不错,贴出来分享一下:

http://blog.csdn.net/youni808/article/details/25612271


然后继续码代码了


又遇到一个新的Arrays.asList方法,该方法将数组作为列表。

不过我这里面用到的是这样的

Arrays.asList("role1","role2","role3")

这样,就可以把这个字符串数组转换为列表(猜的。。)




返回列表 返回列表
评论

    分享到