第五章:初始化与清理

  前几章怎么看都没发现有什么逻辑顺序,感觉都是相互独立的,在讲述java语言构成的基本单位和规则。这个先放置一边。

  • java中初始化有两层含义,其一是创建,二是赋值。 其本质也就是在内存中开辟一个新的区间,存储数据然后再建立一些引用关系。其中的原理就不能继续猜测了,因为这可能涉及数据结构和IO过程,真的不晓得,但是大致猜测一下这种开辟内存空间的方式可能就一种方式或者说就一个指令,为数不多,所以初始化一个对象的方式就只能调用构造器。起初我以为new关键字才是触发内存分配的关键,可是在一些逻辑上有些不通,比如说映射的方式构建对象并没有new,而且如果new可以分配空间,完全没有必要再创建构造器的概念。唯一说的通的就是构造器有开辟空间的作用,这部分读jvm的时候应该就能确定了。目前先认定构造器创建对象,但还有赋值部分没有做,这就需要后续的添加。先创建对象型,也就是都有哪些成员变量和方法,方法部分应该是完全的,因为存储的代码逻辑都是固定的。重点在成员变量,赋值,便是对成员变量赋值。

     但现实中有一些情况对象在创建的时候就顺带要赋值,比如说学生,不管叫什么名字,他的身份就是学生,这部分应该创建的时候就被赋值。这时候就需要构造器不仅创建对象,还有兼具一些赋值的操作。于是构造器的重载出现的还是顺利成章的。因为构造器名称必须要和类名相同(为了防止混乱),在现有的规则下最好的方式就是通过形参在构造器方法体内完成赋值。这是一种很好用的方式,同一类动作完成得到不同的结果。运用到普通方法中也是理所应当的。

  • 有一些情况还是需要特殊考虑的,比如说需要独立于范围之外的变量作为参照,也就是全局性的变量或者方法,所有对象大家共用的,生命周期跟随类型一样长久。引出static关键字,也就很好理解static在文件读取时一定是先被执行的那个了,毕竟他是类型的。有独立于对象之外自然也就有每个对象之中的this-当前对象的引用。static修饰的变量存放的位置也和普通成员变量不同(静态区域?不敢确定)。

  第五章有些多,明天接着整理清理和初始顺序。

转行小白成长路-java篇的更多相关文章

  1. 转行小白成长路--java基础

    每天都会发一篇,一点一滴,记录在这条路上的足迹.立个flag 2019年3月份至今已近一年,对信息技术有个大概的了解,个人认为对于这门技术更应该从最底层的原理入手,了解计算机演化的历史,从计算机语言到 ...

  2. 《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》

    <菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...

  3. 原创电子书《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》

    <菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...

  4. linux小白成长之路10————SpringBoot项目部署进阶

    [内容指引] war包部署: jar包部署: 基于Docker云部署. 一.war包部署 通过"云开发"平台初始化的SpringBoot项目默认采用jar形式打包,这也是我们推荐的 ...

  5. 1、Java小白之路前言

    大二一年准备好好学习Java,养成一个良好的习惯写博客,但是由于各种各样的原因,并没有坚持下来.而正好又赶上大三结束,去实习,发现自己的基础还是有些薄弱,所以决定,重新走上这条Java小白之路. 时隔 ...

  6. 1、JAVA的小白之路

    大学的时光过得很快,转眼我已经大二了,在大一时,学习了C\C++,对于语言有一定基础,在未来的道路上,我需要攒足干劲,积累足够的知识和技能,去走上社会. 我的第一任大学班主任告诉我:“作为程序员,你至 ...

  7. 一个IT人的成长路

    毕业四年多了,来深圳三年多了,经历了刚毕业的懵懂少年,成长为现在的成熟稳重青年.职场上,从刚毕业的小白,成长为现在可以成熟应对各种事情的老司机.经历过从初级研发工程师,到中级研发工程师,到高级研发工程 ...

  8. 我的阿里之路+Java面经考点

    我的阿里之路+Java面经考点 时间:2018-03-19 23:03  来源:未知   作者:admin   点击:87次 我的2017是忙碌的一年,从年初备战实习春招,年三十都在死磕JDK源码,三 ...

  9. [转]有哪些值得关注的技术博客(Java篇)

    有哪些值得关注的技术博客(Java篇)   大部分程序员在自学的道路上不知道走了多少坑,这个视频那个网站搞得自己晕头转向.对我个人来说我平常在学习的过程中喜欢看一些教程式的博客.这些博客的特点: 1. ...

随机推荐

  1. qt QDockWidget QStackWidget的简单使用

    stackdlg.h #ifndef STACKDLG_H #define STACKDLG_H #include <QtWidgets/QDialog> #include <QLi ...

  2. 使用html及CSS实现在table中文字信息超过5个隐藏,鼠标移到时弹窗显示全部:

    使用html及CSS实现在table中文字信息超过5个隐藏,鼠标移到时弹窗显示全部: <!DOCTYPE html><html lang="en">< ...

  3. sqlserver datatime value plus random number

    If we want to make some identiity value in sqlserver , we can use identity data type in a table.Howe ...

  4. Mysql的基本查询语句

    聚集函数 mysql有5个聚集函数,分别是AVG,MAX,MIN,SUM,COUNT. 分组 分组的使用group by作为关键字,having作为条件关键字. having和where的区别:1.w ...

  5. Python 高级网络操作 - Python Advanced Network Operations

    Python 高级网络操作 - Python Advanced Network Operations Half Open Socket, 一个单向的 socket 被称为 half open sock ...

  6. Source Code Structure - Python 源码目录结构

    Source Code Structure - Python 源码目录结构 Include 目录包含了 Python 提供的所有头文件, 如果用户需要用 C 或 C++ 编写自定义模块扩展 Pytho ...

  7. tensorflow roadshow 全球巡回演讲 会议总结

    非常荣幸有机会来到清华大学的李兆基楼,去参加 tensorflow的全球巡回.本次主要介绍tf2.0的新特性和新操作. 1. 首先,tensorflow的操作过程和机器学习的正常步骤一样,(speak ...

  8. JMeter接口测试-提取动态列表最后一个值的两种方法

    前言 在用JMeter做接口测试时,我们经常会遇到,一个接口返回一个json串,在这个json串中,某个节点的值是一个列表,而且这个列表的长度是动态变化的.今天我们来学习两种提取动态列表最后一个值的两 ...

  9. 秘钥分割-Shamir秘钥分割门限方案

    精选: 1.问题的提出 2.需求的抽象: 有一个秘钥S,转换成另一种数据数据形式,分配给12个人(s1,s2,.......,s12),使得任意3个人的数据拼凑在一起就可以反向计算出秘钥S. 3.解决 ...

  10. Linux内存管理解析(二) : 关于Linux内存管理的大体框架

    什么是内存管理 ? 首先内存管理管理的主要对象是虚拟内存,但是虚拟内存对应的映射主要为物理内存,其次也可能通过交换空间把虚拟内存与硬盘映射起来,既然如此,那我们先了解物理内存的管理. 对于物理内存而言 ...