设为首页 收藏本站
开启辅助访问 快捷导航
菜单
猿人部落 主页 资讯 查看内容

java基础:基础类型和多态

2019-7-26 17:55 发布者: J_Kira_Y 评论 0 查看 982
java的8种根本数据范例:short char int double float long boolean byte byte boolean 1字节(b) short char 2字节 int double 4字节 long double 8字节 1b=8bit 主动拆箱和主动装箱:根本数据范例和
  • java的8种根本数据范例:short char int double float long boolean byte
    • byte boolean 1字节(b)
    • short char 2字节
    • int double 4字节
    • long double 8字节
    • 1b=8bit
  • 主动拆箱和主动装箱:根本数据范例和包装范例之间的相互调用;根本数据范例不具备面向对象的特性
    • 在装箱时 Integer i= 100 ——》Integer i = Integer.getvalue(100);在主动装箱时,会直接哀求Integer的缓存区,默认时-128-127,超出此范围回直接创建新的对象
    • 在拆箱时 int i = int.valueOf(100)。
    • 在比力的时间,int范例的==,存放在栈内存种,比力的就是数值的巨细,而Integer在缓冲区内的话,它调用的是体系默认创建出来的对象,存放在堆内存中,比力的是内存地点,以是为true。而如果超出缓冲范围,创建新的对象,在比力时比力内存地点为false;
  • ==和equals方法
    • ==判断2个变量值(根本范例和引用范例)是否相称,根本范例就是比力数值巨细,而引用变量会比力内存地点值的首地点;
    • equals方法比力,对象在比力时实际上是调用equal方法作比力,一样平常没有重写,就是比力内存值地点,如果重写比力内容是否雷同
  • 整数运算:
    • 1、如果两个操纵数中有一个是double范例,另一个就会转换为double范例;
    • 2、否则,如果有一个操纵数是float,另一个就会转化为float;
    • 3、否则,如果有一个操纵数是long,另一个就会转换为long;
    • 4、否则,两个操纵数都将转换为int范例。
    • 如果两个操纵数有一个为long, 则效果也为long
    • 没有long时,效果为int。纵然操纵数全为shot、byte效果也是int.
  • short s1 = 1; s1 = s1 + 1; 有 什 么 错 ? short s1 = 1; s1+=1;有什么错?
    • 1) 对于 short s1=1;s1=s1+1 来说,在s1+1 运算时会主动提拔表达式的范例为 int,那么将 int 赋予给 short 范例的变量 s1 会出现范例转换错误。
    • 2) 对于 short s1=1;s1+=1 来说 +=是 java 语言规定的运算符,java 编译器会对它举行特别处理处罚,因此可以正确编译。short s1 = (short)(s2 + (short)1);
  • int 和 Integer
    • 1、Integer是int的包装类,int则是java的一种根本数据范例
    • 2、Integer变量必须实例化后才华利用,而int变量不须要
    • 3、Integer实际是对象的引用,当new一个Integer时,实际上是天生一个指针指向此对象;而int则是直接存储数据值
    • 4、Integer的默认值是null,int的默认值是0
    • 5、引申
  • 重写(override)又名覆盖:
    • 1.不能存在同一个类中,在继续或实现关系的类中;
    • 2. 名雷同,参数列表雷同,方法返回值雷同,
    • 3.子类方法的访问修饰符要大于父类的。
    • 4.子类的查抄非常范例要小于父类的查抄非常。
  • 重载(overload)
    • 1.可以在一个类中也可以在继续关系的类中;
    • 2.名雷同;
    • 3.参数列表差异(个数,次序,范例) 和方法的返回值范例无关。 
  • 成员变量
    • 编译看左边(父类),运行看左边(父类)。

  • 成员方法
    • 编译看左边(父类),运行看右边(子类)。
  • 静态方法
    • 编译看左边(父类),运行看左边(父类)。
    • 静态和类干系,算不上重写,以是,访问照旧左边的
    • 只有非静态的成员方法,编译看左边,运行看右边
  • 方法参数通报时(根本范例+String和引用范例的区别)
    • 在利用根本范例作为方法的参数举行通报时,main进栈,然后方法进栈,main中的界说变量传入方法中,改变方法中的变量,然后方法出栈不会影响main中的变量值。

    • 在利用引用范例举行参数通报的时间,实际上会改变堆内存中对象的数值
    • 根本数据范例和引用数据范例作为参数的区别
      • 根本数据范例的变量中直接存放数据值本身,以是改的时间改的是数据值本身;
      • 但是引用范例差异的地方在于真正的数据并没有在栈区的变量中生存,而是在堆区内里生存着,以是固然也拷贝了一份,也是副本,但是二者指向的是同一块堆区。
      • 引用数据范例就好比如说,两位同砚利用的是同一份复习资料,此中一人把资料撕毁了,另一人固然也会受到影响。
      • 而根本数据范例就好比复印了一份,此中一人将本身的资料撕了,并不影响别人。
    • 总结:
      • 1).当利用根本数据范例作为方法的形参时,在方法体中对形参的修改不会影响到实参的数值
      • 2).当利用引用数据范例作为方法的形参时,若在方法体中修改形参指向的数据内容,则会
        • * 对实参变量的数值产生影响,由于形参变量和实参变量共享同一块堆区;*
      • 3).当利用引用数据范例作为方法的形参时,若在方法体中修改形参变量的指向,此时不会
        • * 对实参变量的数值产生影响,因此形参变量和实参变量分别指向差异的堆区;*


路过

雷人

握手

鲜花

鸡蛋
收藏 邀请
上一篇:干货分享:Totoro 在自动化测试领域的深耕与收获下一篇:环境变量基本操作及path环境变量

相关阅读

一周热门

头条攻略!

日排行榜

相关分类