忘羡的Day7!

今天所学!!!
获得类的基本信息的常用方法:
getName() 获得类名
getPackage() 获得包名
isInterface() 是否为接口
isPrimitive() 是否为基本类型
isArray() 是否为数组
getSuperclass() 获得父类的Class对象
代码如下:
`package ekt;

public class Demo1 {
public static void main(String[] args) {
String s = new String("hello");
Class xjy=s.getClass();
/* System.out.println("类名:"+xjy.getName());
System.out.println("包名:" + xjy.getPackage());
System.out.println("是否为接口:" + xjy.isInterface());
System.out.println("是否为基本类型:" + xjy.isPrimitive());
System.out.println("是否为数组:" + xjy.isArray());
System.out.println("String类的父类:" + xjy.getSuperclass());

    Class xjy2=String.class;
    System.out.println("类名:" + xjy2.getName());
    System.out.println("包名:" + xjy2.getPackage());
    System.out.println("是否为接口:" + xjy2.isInterface());
    System.out.println("是否为基本类型:" + xjy2.isPrimitive());
    System.out.println("是否为数组:" + xjy2.isArray());
    System.out.println("String类的父类:" + xjy2.getSuperclass());


    System.out.println(xjy == xjy2);

    int a = 100;
    System.out.println(int.class);*/
}

}

`package ekt;

public class Demo4 {
public static void main(String[] args) {
Class xjy;
ClassLoader xj,xj1;
xjy=String.class;
xj=xjy.getClassLoader();
System.out.println("加载String类对象的加载器:" +xj);
System.out.println("&&&&&&&&&&&&&&&&&");
xjy=Demo4.class;
xj=xjy.getClassLoader();
System.out.println("加载Demo4类对象的类加载器:" + xj);
while(xj!=null) {
xj1 = xj;
xj = xj1.getParent();//得到父加载器
System.out.println(xj1+"的父加载器是:" + xj);
}
}
}`

预习!!!
回顾:
什么时候会加载一个类的Class对象?它有什么用?
Class对象中的信息从何而来?
数组是否也有Class对象?
ClassLoader有什么用?
ClassLoader分类?
详细分析类的运行流程。
一个类在内存中有几个Class对象?
预习:
1.理解JAVA反射原理
2.运用反射API完成如下操作
1.动态查看类的信息
2.动态新建类的对象
3.运行时调用methods
4.运行时变更fields内容
5.动态创建数组

技术总结:以下情况,会加载Class对象:
1.使用new关键字创建对象时

2.通过反射创建对象是

3.调用某个类的static方法时

4.调用某个类的static属性时

5.初始化某个类的子类时候

6.某个类标明为main()函数类(启动类)

技术总结
一个类的类对象是唯一的
已知对象的实例可以通过getClass()的到类对象
已知基本类型可以通过class的到类对象
加载子类的时候,它会去查父类有没有加载,它会先去加载父类然后加载子类

心得
第一点:工欲善其事必先利其器,先把基础学扎实才是王道;欲速则不达。像今天的东西很简单 但也还有点听不懂!所有要把基础学好

第二点:百丈大楼平地起,就因为是打了很好的地基才能撑起这百丈大楼;所以切勿好逸恶劳想着一步登天;扎扎实实,一步一个脚印,才是硬道理。给自己定一个学习计划(不会可以百度,可以问老师),按照学习计划进行学习。

第三点:好记性不如烂笔头,记性再好不常看加深记忆总会有遗忘的,所以记录下来是一个很好的方式;实践出真理,书看得再多而不去敲代码是学不全编程的,要多实实际操作,有种记忆叫做肌肉记忆;学习编程最好的方法就是记不如写,写不如做;学习的过程中不能只背不记,不能只记不做,一定要把书上的例子亲手敲到电脑上实践,千万不要照抄,更不要复制粘贴;还有就是一遍不行就敲两遍熟悉为止,熟能生巧;看得懂代码,不代表会写代码。
这也是我们老邓所说的!千万不要复制 要不然没点作用!

第四点:精益求精,当你用代码敲打到一半却发现自己还可以有更好或者改进的方法时,请不要马上停手;尽快将余下的部分完成以保证这个代码的完整性!

第五点:勤学好问,不是说一有问题就问,而是遇到问题,先自己想办法解决,查查文档,百度等;然后在问你可以问的人,或者百度发帖问什么的。

以为五点 老邓也都说过 自己总结了以上五点 虽然每个人都知道 但是每个人都能做到嘛?我希望自己和你们都能做到

原文地址:https://www.cnblogs.com/xjyboke/p/13540284.html