- 首页 > 生活 > >
java基础知识点,零基础可以学好java吗?( 二 )
继承性与封装性相互作用 。如果一个给定的类封装了一些属性,那么它的任何子类将具有同样的属性,而且还添加了子类自己特有的属性 。这是面向对象的程序在复杂性上呈线性而非几何性增长的一个关键概念 。新的子类继承它的所有祖先的所有属性 。它不与系统中其余的多数代码产生无法预料的相互作用 。多态性
- 多态性是允许一个接口被多个同类动作使用的特性,具体使用哪个动作与应用场合有关,下面我们以一个后进先出型堆栈为例进行说明 。假设你有一个程序,需要3种不同类型的堆栈 。一个堆栈用于整数值,一个用于浮点数值,一个用于字符 。尽管堆栈中存储的数据类型不同,但实现每个栈的算法是一样的 。如果用一种非面向对象的语言,你就要创建3个不同的堆栈程序,每个程序一个名字 。但是,如果使用Java,由于它具有多态性,你就可以创建一个通用的堆栈程序集,它们共享相同的名称 。多态性的概念经常被说成是“一个接口,多种方法” 。这意味着可以为一组相关的动作设计一个通用的接口 。多态性允许同一个接口被必于同一类的多个动作使用,这样就降低了程序的复杂性 。选择应用于每一种情形的特定的动作(specific action)(即方法)是编译器的任务,程序员无需手工进行选择 。你只需记住并且使用通用接口即可 。
三、 hashmap hashtable
- HashMap是一个散列表,它存储的内容是键值对(key-value)映射 。HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口 。
- HashMap 的实现不是同步的,这意味着它不是线程安全的 。它的key、value都可以为null 。此外,HashMap中的映射不是有序的 。HashMap的实例有两个参数影响其性能:“初始容量” 和 “加载因子” 。容量是哈希表中桶的数量,初始容量 只是哈希表在创建时的容量 。加载因子 是哈希表在其容量自动增加之前可以达到多满的一种尺度 。当哈希表中的条目数超出了加载因子与当前容量的乘积时,则要对该哈希表进行 rehash 操作(即重建内部数据结构),从而哈希表将具有大约两倍的桶数 。
四. jvm 内存模型1.程序计数器
- 每个线程有要有一个独立的程序计数器,记录下一条要运行的指令 。线程私有的内存区域 。如果执行的是JAVA方法,计数器记录正在执行的java字节码地址,如果执行的是native方法,则计数器为空
2.虚拟机栈
- 线程私有的,与线程在同一时间创建 。管理JAVA方法执行的内存模型 。
- 本地方法区
- 和虚拟机栈功能相似,但管理的不是JAVA方法,是本地方法
3.方法区
- 线程共享的,用于存放被虚拟机加载的类的元数据信息:如常量、静态变量、即时编译器编译后的代码 。也称为永久代 。
4.JAVA 堆
- 线程共享的,存放所有对象实例和数组 。垃圾回收的主要区域 。可以分为新生代和老年代(tenured) 。
五、 运行时类型信息(RTTI + 反射)
- 概念—RTTI:运行时类型信息使得你可以在程序运行时发现和使用类型信息 。
- 使用方式:Java是如何让我们在运行时识别对象和类的信息的,主要有两种方式(还有辅助的第三种方式,见下描述):
- 一种是“传统的”RTTI,它假定我们在编译时已经知道了所有的类型,比如Shape s = (Shape)s1;另一种是“反射”机制,它运行我们在运行时发现和使用类的信息,即使用Class.forName 。其实还有第三种形式,就是关键字instanceof,它返回一个bool值,它保持了类型的概念,它指的是“你是这个类吗?或者你是这个类的派生类吗?” 。而如果用==或equals比较实际的Class对象,就没有考虑继承—它或者是这个确切的类型,或者不是 。
经验总结扩展阅读
-
-
-
-
固态硬盘格式化选什么格式比较好 固态硬盘格式化选哪种格式比较好
-
-
-
-
2022年10月12日走亲访友黄道吉日 2022年农历九月十七宜走亲访友吗
-
-
-
-
一千多的女表什么牌子好点,能推荐一些适合女生的手表品牌吗?价格不超过1千的
-
女士高档手表品牌推荐,女士手表排行榜10强女士手表推荐
-
-
-
深零设计师姚工|合肥夫妇家中的高级场面,130平坚决沙发不靠墙,效果不是一般的实用
-
-
涂一层素颜也能美翻天,谁用谁爱上......这个防晒隔离太绝了
-
在恋爱关系中|男人不会珍惜的两种女人,你是其中之一吗?
-
广东珠海中考时间2022年具体时间 广东珠海中考时间及科目安排