java 反射 string_java反射机制与String.equal方法等知识点强化

直接定义的类型的值 是存在常量区域中的

例如:

int a="1";

String str="hello"; 与 String str=new String("str");的区别:

前者的值hello是存在常量区域中的 后者会先去静态区域查看是否有"hello"这个变量

如果有则直接将hello拿到堆里来指向str 如果没有这个值 则会自己定义一个在常量区域中 然后再拿到

堆里面来再指向str

String.equals():

Object中的equals方法是比较两者的内存地址 但是 String类中重写了equals 方法 String 类中的

equals 方法 会将两个字符串变成 两个char类型的数组 然后再去对比两个char类型数组的值是否相等

所以说 Object中的equals方法等价于==,String的equals方法比较的是值是否相等

java反射机制主要功能:

1.在运行时判断任意一个对象所属的类

2.在运行时构造任意一个类的对象?

3.在运行时判断任意一个类所具有的成员变量和方法(通过反射甚至可以调用private方法)

4.在运行时调用任意一个对象的方法

获取Class类对象的方法 源码:

public classDemo1 {public static void main(String[] args) throwsClassNotFoundException {//获取Class类对象的四种方法//1、

Object obj=newString();

System.out.println("obj.getClass():"+obj.getClass());//2、

System.out.println("String.class:"+ String.class);//3、

System.out.println("Class.forName(\"java.lang.String\"):"+(Class.forName("java.lang.String")));//4、

System.out.println("ClassLoader.getSystemClassLoader():"+ClassLoader.getSystemClassLoader().loadClass("java.util.ArrayList"));

}

}

随意输入一个类 输出他的父类 源码:

BufferedReader br = new BufferedReader(newInputStreamReader(System.in));try{

System.out.print("输入任意类的名字:");

String className=br.readLine();

String xx=className.getClass().getName();

Class cls=Class.forName(xx);//循环打印父类信息,直到没有父类

while (cls != null) {

System.out.println(cls);

cls=cls.getSuperclass();

}

}catch(IOException e) {

e.printStackTrace();

}catch(ClassNotFoundException cnfe) {

cnfe.printStackTrace();

}

心得:三个小训练的痛苦远远没有失败的那一刻难受

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值