第五章:初始化与清理

  前几章怎么看都没发现有什么逻辑顺序,感觉都是相互独立的,在讲述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. Go语言中的单例模式(翻译)

    在过去的几年中,Go语言的发展是惊人的,并且吸引了很多由其他语言(Python.PHP.Ruby)转向Go语言的跨语言学习者. Go语言太容易实现并发了,以至于它在很多地方被不正确的使用了. Go语言 ...

  2. 形象解释各种卷积算法(Convolution animations)

    No padding, no strides Arbitrary padding, no strides Half padding, no strides Full padding, no strid ...

  3. sqlserver check running process 1

    check process script 1, check which is current running: use master SELECTspid,ER.percent_complete,CA ...

  4. 关于JAVA中源码级注解的编写及使用

    一.注解简介: 1.1.什么是"注解": ​ 在我们编写代码时,一定看到过这样的代码: class Student { private String name; @Override ...

  5. Docker的基本使用与简介

    1 Docker简介 1.1 什么是虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器.网络.内存及存储等,予以抽象.转换后呈现出来 ...

  6. 某oa系统的审计

    title: 某oa系统的审计 date: 2018-03-07 17:18:16 tags: --- 信呼OA 闲着没事,java学累了来整理下以前审的一个觉得很有意思的cms,这个作者写的比较灵活 ...

  7. istio-ServiceMesh解决方案

    istio-ServiceMesh解决方案 istio(1):ServiceMesh解决方案-k8s安装istio istio(2):流量管理-基于不同版本访问规则控制 istio(3):流量管理-基 ...

  8. 记一次MySQL中Waiting for table metadata lock的解决方法

    最近项目中的数据库查询经常挂起,应用程序启动后也报操作超时.测试人员就说数据库又挂了(貌似他们眼中的连接失败,查询无果都是挂了),通过 show processlist 一看,满屏都是 Waiting ...

  9. Python3正则去掉HTML标签

    Python3正则去掉HTML标签 1.引用一段代码 import re html = '<pre class="line mt-10 q-content" accuse=& ...

  10. toj 3086 Passage (不错)

    Passage 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交: 40 测试通过: 20 描述 Bill is a millionaire. But ...