java基础知识备忘
1.java内存分配
a.寄存器cup -- 暂不涉及
b.本地方法栈 -- 虚拟机调用windows功能用的,比如创建文件夹
c.方法区 -- 存放 .class文件,负责存放方法
d.栈 -- 负责运行方法(运行时从方法区拷贝一份到栈)
e.堆 -- 创建并存放对象(new出来的对象)
2.栈和堆的区别
a.存储内容 栈-方法 堆-对象
b.默认值 栈-无默认值 堆-有默认值 (所以成员变量不需初始化赋值,局部变量必须赋值 )
c.生命周期 栈-方法执行完毕弹出 堆-对象使用完毕,等待虚拟机回收 (堆>栈)
3.类和对象
a.类 - 类是具备某些共同特征的实体的集合,它是一种抽象的概念,比如人类
b.对象 - 所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。
类是对象的集合,对象是类的实例(人是类,张三就是具体的对象)
4.成员变量和局部变量的区别
a.定义位置不同 成员变量 - 类 局部变量 - 方法
b.默认值 成员变量 - 跟随类在堆中存储,有默认值; 局部变量 - 跟随方法进栈,无默认值,使用必须手动赋值
5.方法的重载与重写
重写 - 又称为覆盖,对于继承而言,子类对父类方法的重写或者扩展,方法名,返回值类型必须一致
重载 - 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型(构造方法为例)。
6.代码块
a.局部代码块 - 基本不用,限制局部变量生命周期的
b.静态代码块 - 类中 建立对象运行一次,以后不在运行,只要类进内存,就运行
c.构造代码块 - 类中 每new一次对象,就会运行
运行顺序 静态代码块 > 构造代码块 > 构造方法
7.继承
继承好处:
代码少了,减少编写量
子类可以扩展父类的功能
继承使类与类产生了关系,有了这个关系导致了面向对象第三个特征多态
注意事项:
单继承,多层继承;一个类只能继承一个父类(一个孩子只能有一个爹,一个爹可以有多个孩子)
只能继承父类非私有的成员变量和方法(如果父类加private,子类不知道)
继承后子父类成员变量的关系:
就近使用原则,如果子类有,使用自己的,没有找父类
总结子类父类构造方法的特点:
1. 子类所有构造方法第一行就是super(),调用父类空参数构造方法
2. 如果父类中没有空参数构造方法,子类构造方法必须手写super传递参数,否则编译失败
3. 子类构造方法写this或者super,选择一个,保证子类可以间接或者直接访问过父类空参数构造
子类所有构造方法,无论如何必须访问过父类构造方法,因为子类需要看到父类成员时怎样初始化的
8.多态
多态细节:
快速记忆办法: Fu f = new Zi();
除了非静态的成员方法以外,编译运行都看左边
只有非静态成员方法,编译看左边,运行看右边
为什么编译看左边
javac 编译工具,源文件编译成JVM识别的class文件
检查语法错误
Fu f = new Zi();
f.x 只能检查Fu这个类,检查不到 = 右边的对象 (对象建立是运行时期的事情)
为什么只有非静态的成员方法,运行是子类重写
其他的运行全是父类呢 -- 设计思想就是扩展子类
Fu f = new Zi();
f.XXXX
java基础知识备忘的更多相关文章
- React基础知识备忘
section-1 //react组件 export class Halo extends React.Component{ constructor(...args){ super(...args); ...
- Java基础知识总结(超级经典)
Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...
- 毕向东—Java基础知识总结(超级经典)
Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...
- 黑马毕向东Java基础知识总结
Java基础知识总结(超级经典) 转自:百度文库 黑马毕向东JAVA基础总结笔记 侵删! 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部 ...
- Java基础知识回顾之一 ----- 基本数据类型
前言 在开始工作至今,学习各种各样的技术之中发现自己的很多Java的基础知识都忘了⊙﹏⊙b汗... 而且越是学习越是发现Java基础的重要性,所以准备单独抽一下时间进行Java基础的重新学习.在重新学 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
- Java基础知识系列——String
最近晚上没有什么事(主要是不加班有单身),就复习了一下Java的基础知识.我复习Java基础知识主要是依据Java API和The Java™ Tutorials. 今天是第一篇,复习了一下Strin ...
- 学习android学习必备的java基础知识--四大内部类
学习android必备的java基础知识--四大内部类 今天学习android课程,因为我的主专业是JAVA,但是兴趣班却有这其他专业的同学,学习android 需要具备一些java的基础知识,因此就 ...
随机推荐
- 29 collection 集合体系结构
/*collection:采集 * ArrayList * 集合的体系结构: * 由于不同的数据结构(数据的组织,存储方式),所以Java为我们提供了不同的集合, * 但是不同的集合他们的功能都是相似 ...
- python3(二十一) pip
先确保安装了windows的Python的pip 出现上图说明安装了,命令未找到则没有安装 安装一个图形处理的第三方库 Anaconda安装第三方库 我们经常需要用到很多第三方库,如MySQL驱动程序 ...
- 15-场景中用到的资源监视器(perfmon metrics collector)
JMeter 无法提取除 Tomcat 之外的其他服务器的指标,因此PerfMon Metrics Collector可用来获取性能数据. PerfMon Metrics Collector使用的是S ...
- 在Sping的配置文件中,关于dataSource的配置,就我们常用的方法大致可以有三种:
在Sping的配置文件中,关于dataSource的配置,就我们常用的方法大致可以有三种: 1.一般的配置方法,直接在配置中指定其值.具体的例子我们参照Mysql的配置如下: <bean id= ...
- tomcat查看线程数
获取tomcat进程pid ps -ef|grep tomcat 统计该tomcat进程内的线程个数 ps -Lf 29295 |wc -l
- SpringCloud入门(十): Config 统一配置中心
SpringCloud Config 简介 在分布式系统中,由于服务组件过多,为了方便争对不通的环境下的服务配置文件统一管理,实时更新,所以出现了分布式配置中心组件.市面上开源的配置中心有很多,360 ...
- android学习笔记——计时器实现
根据android疯狂讲义来写写代码,在博客里面将这些写过的代码汇总一下.实现的功能很简单:就是一个简单的计时器,点击启动按钮会开始计时,当计时到20秒时会自动停止计时. 界面如下: 界面代码: &l ...
- LIMS产品 - Labvantage技术版本
最新版本的Labvantage8使用Java版本为Java7(Java8使用最广泛,最新版本为Java12),中间件使用JBoss(国内小型信息化系统(LIMS.QMS等)java体系一般使用Tomc ...
- ios 中使用 animation-play-state: paused 属性失效的问题
前言 因为要做一个播放器的播放图片旋转动画,像这样子 当音乐播放就转动,停止就暂停. 开始于是很自然地想到了使用Css3的 animation 动画属性CSS3 animation(动画) 属性 an ...
- B - Fadi and LCM CodeForces - 1285C 质因子
题目大意很简单,给你一个整数X,让你求a和b,使得max(a,b)尽可能的小,然后打印a,b 题解:想到了质因子分解,也考虑到了暴力,但是觉得暴力的话会TLE,所以打算用贪心做,然后就一直Wa.... ...