java基础:基础类型和多态
- 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).当使用引用数据类型作为方法的形参时,若在方法体中修改形参变量的指向,此时不会
- * 对实参变量的数值产生影响,因此形参变量和实参变量分别指向不同的堆区;*
java基础:基础类型和多态相关推荐
- Java基础笔记(14)—— Java的基础类型和字节大小
Java基础笔记(14)-- Java的基础类型和字节大小 Java基础笔记(14)-- Java的基础类型和字节大小 Java语言提供了八种基本类型.六种数字类型(四个整数型(默认是int 型),两 ...
- Java基础入门笔记-多态
多态是设计上的一个术语.(polymorphism) 在Java里,多态是指以下语法现象: 重载OVerload:方法允许重名: 重写Override:允许子类重写父类方法: 泛型(模版):比如Arr ...
- Java基础——基本类型和包装类、基本类型和字符串之间的转换
基本类型和包装类之间的转换 基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦): 在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更 ...
- java的基础类型和字节大小_java的基础类型和字节大小
学习c语言的时候,这些个东西起码还是很明确的,因为上课的时候,老师经常问,现在时间久了,见的语言多了,也就有点乱了,也没怎么在意过. (武藏) 既然你诚心诚意的发问了, (小次郎) 我们就大发 ...
- JAVA基础6.52——多态的描述(2)
/* OPP三大特性:封装,继承,多态. 多态:可以理解为事物存在的多种体现形态 动物:猫,狗,猪 人:男人,女人 1.多态的体现父类引用指向子类对象 2.多态的前提(1)必须得类与类之间存在关系,可 ...
- JAVA基础6.51——多态的概述(1)
/* OPP三大特性:封装,继承,多态. 多态:可以理解为事物存在的多种体现形态 动物:猫,狗,猪 人:男人,女人 */ class Animal{void sing(){System.out.pri ...
- java基础知识整理——多态(二)
1.必要条件: 满足继承关系 父类引用指向子类对象. 2.多态的实现: 多态可由向上转型和动态绑定机制实现. 向上转型:子类对象向上转型为父类类型. 动态绑定:在程序运行期间,JVM根据对象的类型自动 ...
- java 多态判断非空_跳槽涨薪季面试题之java基础(一)
点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 为迎接金九银十跳槽涨薪季,小编汇总了java精编版面试题,大概从java基础.java8特性.多线程.spring.springboot. ...
- java继承和多态_Java基础继承与多态
Java基础第九天 继承概述 引入 首先我来写两个代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15//定义学生类 class Student { public void ...
最新文章
- memcached python客户端编写实践
- 第六次的服务端课程:JDBC,数据源配置
- 【物联网】QCA4010开发环境的搭建
- ARP的一次请求与应答
- 如何在 Asp.Net Core 实现 Excel 导出功能
- 分享MYSQL中的各种高可用技术
- windows下的Redis安装:
- 企业综合能效管理系统,工业能耗解决方案
- JS实现点击跳转登陆邮箱
- 海湾gst5000主机消防广播_海湾GST5000消防主机常见问题及解决!
- 类的成员函数作为函数指针
- 几种常见的提取关键词的算法(4)
- css3的弹性盒子模型,css3弹性盒子模型——回顾。
- 2022A特种设备相关管理(电梯)复训题库及模拟考试
- JS学习日记(二)字符与对象
- 芯科EFRBG22C112 empty工程创建
- 广西南宁商际网络淘宝天猫托管代运营/电商培训顾问外包服务商
- CNCC 2016 | 山世光:深度化的人脸检测与识别技术—进展与展望
- LORA技术---LoRa信号从数据流变为LoRa扩频信号,再从射频信号通过解调变为数据
- Ubuntu20.04.3 + opengrok1.7.25 + tomcat10.0.14安装