精华内容
下载资源
问答
  • getClass方法

    千次阅读 2014-07-31 17:01:16
    第二:Object的getClass()方法的释义是:返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。  /**  * Returns the runtime class 

    下面程序的输出结果是多少?
    import java.util.Date;
    public  class Test extends Date{
    public static void main(String[] args) {
    new Test().test();
    }

    public void test(){
    System.out.println(super.getClass().getName());
    }
    }

    很奇怪,结果是Test

    第一:不管是T1的getClass()还是Date的getClass(),他们都是非覆盖式的从Object继承来的。


    第二:Object的getClass()方法的释义是:返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。

        /**
         * Returns the runtime class of this {@code Object}. The returned
         * {@code Class} object is the object that is locked by {@code
         * static synchronized} methods of the represented class.
         **/

        释义指出,要返回此Object运行时类,这外当然不可能指Object自己了,否则所有类调用getClass()方法都返回Object.class了。

        那到底谁是Object的运行时类呢,不是Object自己,当然就只能是他的儿子、或各种孙子了,到底是谁呢,举个例子:
        Date作为直接继承Object的类,作为Object的儿子,如果调用Date.getClass(),返回的是什么呢?在Date中,无论是this.getClass()还是super.getClass(),毫无疑问都指向了Object.getClass()。根据上一段解释,Object.getClass()返回不可能是Object.class,那没得说,只能是Date.class了。

        根据上段:new Date()时,Date是Object的运行时类。

        同理:根据LZ的例子,new T1()时,运行是类不可能是T1他老子Date,更不会他各种老老子(如Object),只能是自己。

        再回到Object.getClass()释义,返回的只能是T1.class

    第三:如果想要从T1中得到Date.class,可以用T1.getClass().getSuperClass();
    展开全文
  • getClass方法 getClass方法返回当前对象的运行时类(Class)对象 Class empClass =emp0.getClass(); //使用Class对象获取当前对象的类的完全限定名称 System.out.println("类名称是: "+empClass.getName()); ...

    getClass方法

    getClass方法返回当前对象的运行时类(Class)对象

    Class empClass =emp0.getClass();
    			//使用Class对象获取当前对象的类的完全限定名称
    			System.out.println("类名称是: "+empClass.getName());
    

    hashCode方法

    hashCode方法返回该对象的int类型哈希码值
    public native int hashCode();
    此方法为提高哈希表的性能而支持,通常在非特殊情况下不必重写此方法

    Users u0 = new Users("NO999","东方不败",35);
    		Users u2 = u0;
    		System.out.println(u0.equals(u2));
    		System.out.println(u0.hashCode());
    		System.out.println(u2.hashCode());
    		System.out.println(new Users().hashCode());
    

    clone方法

    clone方法返回当前对象的一个副本
    被克隆的对象和当前对象不具有同一个引用,但是具有完全相同的对象属性,欲克隆当前对象则当前对象所属类应实现Cloneable接口

    Integer包装类

    Interger类的作用

    Integer类对基本类型int的进行包装,它包含一个int值
    Integer类提供了多个方法,能在int类型和String类型之间互相转换,还提供了处理int类型时非常有用的其他一些常量和方法
    定义类成员属性经常使用Integer代替int从而可以应用更多Integer的功能

    Integer对象的创建

    public Integer(int value);
    public Integer(String str);
    str参数必须是若干数字组成的字符串

    Employee emp = new Employee();
    		Employee emp2 = new Employee();
    		
    		Integer intObj =new Integer(24);
    		
    		emp.setId(intObj);
    		System.out.println(emp.getId());
    		emp2.setId(new Integer("45"));
    		System.out.println(emp2.getId());
    

    Integer字段常量

    //integer常量属性
    		System.out.println(Integer.MAX_VALUE);//int类型能够表示的最大值
    		System.out.println(Integer.MIN_VALUE);//int类型能够表示的最小值
    		System.out.println(Integer.SIZE);//二进制补码形式表示int值得比特位数
    		System.out.println(Integer.BYTES);//int类型在jvm中占有看见的字节数
    		
    

    comparaTo方法

    如果当前Integer对象所包含的int值大于target包含的值则返回1,如果小于返回-1,如果相等则返回0

    //比较大小的方法
    		System.out.println(emp.getId().compareTo(emp2.getId()));
    		System.out.println(emp2.getId().compareTo(emp.getId()));
    		System.out.println(emp.getId().compareTo(emp.getId()));
    

    intValue方法

    以int类型返回该Integer的值。实现对从对象类型转换为值类型,其他类似方法:
    byteValue();shortValue();longValue();floatValue();doubleValue()

    //intValue()所有short byte long float double 对应的包装类都有类似于intValue的方法功能
    		int empId =emp.getId().intValue();
    		Double douObj = new Double("26.15");
    		System.out.println(douObj);
    

    parselnt方法

    将给定的字符串s转换为10进制int类型返回,s字符串除了第一个字符可以使用-表示有符号的负数以外,其他字符都必须保证是0~9的数字,否则转换出现NumberFormatException异常

    //parseInt静态转换方法,将字符串转化为值类型,所有包装类都具备此类似的方法
    		String pwd ="452646";
    		int pwdInt = Integer.parseInt(pwd);
    		System.out.println(pwd+9);
    		System.out.println(pwdInt+9);
    

    重载方法:将给定的字符串s转换为以参数radix标识,10进制int值类型返回。radix的取值通常为2,8,10,16,27
    任何不符合格式的s都将出现NumberFormatException异常

    // parseInt重载方法
    		System.out.println("二进制"+Integer.parseInt("10111", 2));
    		System.out.println("八进制"+Integer.parseInt("5165", 8));
    		System.out.println("十六进制"+Integer.parseInt("0ABCD", 16));
    

    toBinaryString方法

    将给定的int类型参数i转换为二进制字符串形式返回。返回的字符串形式省略前导0。类似方法:
    toOctalString 转换为8进制字符串
    toHexString 转换为16进制字符串

    /**
    	 * 
    	 * @param target目标转换数据
    	 * @param tag转换标识2.8.16
    	 * @return String
    	 */
    	public static String fromIntegerToStringByArg(int target,int tag) {
    		if(tag == 2)
    			return Integer.toBinaryString(target);
    		else if(tag == 8)
    			return Integer.toOctalString(target);
    		else if(tag == 16)
    			return Integer.toHexString(target);
    		else
    			return Integer.toBinaryString(target);
    
    int num = 2390;
    		System.out.println(IntegerParseManagement.fromIntegerToStringByArg(num, 2));
    		System.out.println(IntegerParseManagement.fromIntegerToStringByArg(num, 8));
    		System.out.println(IntegerParseManagement.fromIntegerToStringByArg(num, 16));
    		System.out.println(IntegerParseManagement.fromIntegerToStringByArg(num, 5));
    

    valueOf方法
    返回一个表示指定的int值的Integer实例。如果不需要新的Integer实例,则通常应优先使用该方法从而提供jvm效率及节省资源。类似方法:
    public static Integer valueOf(String s)
    public static Integer valueOf(String s,int radix)

    int num = 1234;
    		Integer intObj = Integer.valueOf(num);
    		System.out.println(intObj.intValue());
    		
    		System.out.println(Integer.valueOf("345").intValue());
    		
    		String str = "1010010";
    		Integer intObj2 = Integer.valueOf(str,2);
    		System.out.println("以2进制处理"+intObj2);
    		Integer intObj3 = Integer.valueOf(str,8);
    		System.out.println("以8进制处理"+intObj3);
    		Integer intObj4 = Integer.valueOf(str,16);
    		System.out.println("以16进制处理"+intObj4);
    
    
    展开全文
  • getClass方法得到的是Class[A]某个子类 而classOf[A]得到是正确的Class[A] .class和getClass方法一致 但是去比较的话,这两个类型是equals为true的

    getClass 方法得到的是 Class[A]某个子类

    而 classOf[A] 得到是正确的 Class[A]

    .class和getClass 方法一致

    但是去比较的话,这两个类型是equals为true的

    展开全文
  • Object类九大方法之getClass方法 https://www.cnblogs.com/wsw-bk/p/8026266.html 获取此Object的运行时类. 什么是运行时类? 在创建对象前先要有class文件,这是字节码文件,首先要加载class(字节码)文件,后面才能接着...

    Object类九大方法之getClass方法

    https://www.cnblogs.com/wsw-bk/p/8026266.html

    获取此Object的运行时类.

    什么是运行时类?

    在创建对象前先要有class文件,这是字节码文件,首先要加载class(字节码)文件,后面才能接着运算.

    eg:
    在这里插入图片描述
    Demo类和Class类,对他们的共性进行抽取,类文件都有一个共性特点就是他里面都是源文件描述的那些成员,只不过类文件将他们变成了字节码,变成另一种符号形式而已.

    他们既然有共性那就可以进行抽取(但这个共性抽取起来比较麻烦,被抽取的内容不是很具体),抽完以后就形成了类,接着我们用java语言对这个字节码文件进行描述.

    能描述字节码文件的类就不需要定义了,他里面有,注意大写的C,小写是关键字,大写是类名.
    在这里插入图片描述
    他是专门用来描述字节码文件的类,无论什么样的字节码文件里面都有字段field,就是属性,也是成员变量,无论什么样的字节码文件,里面都有constructor构造器,无论还什么样的类文件里面都有方法.

    上述这些都是类文件的组成部分,因此用这个类描述完了类文件这个事物以后,就可以产生类的对象

    java的getClass()方法利用的就是反射机制

    所谓的反射可以理解为在运行时期获取对象类型信息的操作,传统的变成方法要求程序员在编译阶段决定使用的类型,但是在反射的帮助下,编程人员可以动态的获取这些信息,从而编写更加具有可移植性的代码,严格地说,反射并编程语言的特性,因为在任何一种语言都可以实现反射机制,但是如果编程语言本身支持反射,那么反射的实现就会方便很多.

    如果有一个实例那么就可以通过实例的getClass()方法获取该对象的类型类,如果你知道一个类型,那么你可以使用.class()的方法获得该类型的类型类.

    eg:

    getName():获得该类型的全称名称

    getSuperClass():获得该类型的直接父类,如果该类型没有父类,那么返回null

    getInterfaces():获取该类型实现的所有接口

    getCompanentType():如果该类型是一个数组,那么返回该数组的组件类型.

    展开全文
  • import java.security.spec.... //导入方法依赖的package包/类private boolean impliesParameterSpec(boolean checkParam,AlgorithmParameterSpec algParamSpec) {if ((this.checkParam) && chec...
  • API中的Object之hashCode方法和getClass方法1、java.lang 类 Objectjava.lang.Objectpublic class Object类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。...
  • Object类的getClass的用法:Object类中有一个getClass方法,m a r k- t o- w i n:它会返回一个你的对象所对应的一个Class的对象,这个返回来的对象保存着你的原对象的类信息,比如你的原对象的类名叫什么,类里有...
  • scala类型系统:2) classOf与getClass方法的差异 11条回复 前一篇在提到获取Class时的两个方法:classOf 和 getClass scala> class A scala> val a = new A scala> a.getClass res2: Class[_ ] = class A scala...
  • Java面试题之super.getClass方法调用

    千次阅读 2013-10-14 09:19:27
    Java面试题之super.getClass方法调用  今天从网上看了一道Java的面试题,结果不小心就掉在陷阱里了,我觉的这个面试题挺好的,所以分享给大家! 先看一下程序的代码,看看最后的输出结果是多少? import java....
  • 人抽取出 Person 对象  class 抽取出 Class(自解码文件类名) ...getClass方法 返回 自解码Class文件 Class clazz1=p1.getClass(); Class clazz2=p2.getClass(); System.out.println(clazz2==clazz1); Sys
  • Object类中有一个getClass方法,m a r k- t o- w i n:它会返回一个你的对象所对应的一个Class的对象,这个返回来的对象保存着你的原对象的类信息,比如你的原对象的类名叫什么,类里有什么方法,字段等。...
  • Object 类的 getClass方法

    千次阅读 2016-08-16 23:49:53
    在看一个开源框架的源代码,发现代码里有一个getClass()方法,不知道哪里来的,看代码提示说是object类的一个方法,Class<? extends Hello> java.lang.Object.getClass() Note: This element neither has attached ...
  • 由 Object 类定义的 hoshCode 方法确实会针对不同的对象返回不同的整数 特点: 1.该值可以理解为地址值,但是本质是地址值的一个转换值,该值相同不能说明两个对象相等,但是可以作为参考,该值不相等那么两个对象...
  • 在比较一个类是否和另一个类属于同一个类实例的时候,我们通常可以采用instanceof和getClass两种方法通过两者是否相等来判断,但是两者在判断上面是有差别的,下面写个测试类。 public class Test5 { public static...
  • /* Object:所有类的根类。 Object是不断抽取而来,具备着所有对象都具备的共性内容。 常用的共性功能: */ /* class Fu // extends Object { Fu() { super(); } } class Zi extends Fu ... this.age
  • JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。...
  • * public final Class getClass() * a:返回此 Object 的运行时类。 * b:可以通过Class类中的一个方法,获取对象的真实类的全名称。 以下代码: package com.heima.object; import com.heima.bean.Student; ...
  • super.getClass方法调用

    2015-04-26 12:58:42
    package test.classtest; import java.util.Date; public class Test extends Date { public static void main(String[] args) { new Test().test(); ... //getClass在Object中被定义成了f
  • /** * 面试题 */ public class Test extends Base { public static void main(String[] ... System.err.println(super.getClass().getName()); System.err.println(this.getClass().getSuperclass()); } } class
  • 一、概述 如上图: 1.内存创建一个instance实例对象(Person *per),同时会创建一个与之对应的类对象(Class perClass)和元类对象(Class perMeta); 注:实例对象通过calloc可创建多个,但类对象和元类对象在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,072
精华内容 2,828
关键字:

getclass方法