本帖最后由 随便去个名字吧 于 2018-1-25 22:54 编辑
杭州的首场雪正在窗外淅淅沥沥的下着,不对啊,淅淅沥沥好像是用来形容雨滴的,用来形容雪花似乎不太恰当.身为一个程序猿能写出这种文艺的语句已经不容易了,而且这雪大多数都是雪籽,不是大片鹅毛大雪.所以不用太在意这些细节吧~~其实在杭州很久都没见过大雪了,大学也是在广西读的,好像七八年没正儿八经的赏过雪了.MMP.说的好像以前读初高中的时候赏过雪似的,手动[滑稽]… 我的第一次大型潮趴就献给了黑马,虽然美女老师让我表态是否要参加的时候,我出于害羞说观望一下,人家倒好,直接帮我选了参加.这波很强势.我也很欣慰的参加了.去了之后,发现了十几个大妹子,对,那种满脸胡茬的粗糙大妹子,这不是自己班上的同学么,难道程序猿真的看男生都觉得像妹子了么,情况堪忧哇.要把持住自己啊.祖国优秀的下一代还需要我去努力创造的哇.在这里需要画黑板敲重点了.找女朋友,要趁早,越早越好.不然就是像我现在这样不出去陪女朋友,却在这里码完代码继续码字的结局…不过回头想起来扎在十几个大妹子中间的感觉还是挺不错的,嘿嘿嘿~~~你怕了么[滑稽] [滑稽] [滑稽] 哆哆嗦嗦的扯了一大堆,来点正片好了,前戏基本已经差不多了.面向对象(为什么学Java也要扯到对象这个名词,简直是场灾难,暗示我们不需要对象么)的学习跨度还是比较长的了,用几个老猿的话来讲,这面向对象会陪伴我们整个职业生涯的.所以学的时间确实比较长.从基础的标准类构造,到初步的封装,然后进阶继承多态,是一个比一个复杂.前期学面向对象还是稍微有些轻松,简单的讲就是找别人帮自己干活,但是存在一个很严重的念头就是,不是说好学会了面向对象就有些代码可以让别人去帮我写了么,为什么我还要写里面的具体执行过程?老师,你是不是搞事啊… 这里呢,需要简单的讲一下,打个比方,没学面向对象之前,你想吃旺仔小馒头,然后你需要自己先去找卖面粉的大妈扯皮买些面粉(顺便请教一下人家和面的诀窍以及打听下人家闺女有没有男朋友),然后回家自己和面,蒸,然后吃吃吃.学了面向对象之后呢,是你花钱找馒头店买小馒头就可以吃吃吃了.但是实际情况是什么呢?你学了面向对象之后呢,你还是要自己和面蒸馒头,该花的钱也是肯定要花的.不学之前,写一个功能代码可能就是10行代码,现在用到面向对象了,却反而变成17行代码了.这不是搞事情么?!那么问题来了(这里小敲黑板一下),你是学会了面向对象,但是,你没有一个给你做馒头的人啊[滑稽],是不是又想找女朋友了,不存在的,这里讲的是面向对象. 其实很好理解,就是面向对象肯定是可以提高工作效率的,但是前提是协作开发,就是小组为单位的开发,每个人负责的板块不一样,有人复制写对象操作执行流程,就是做馒头的那一套流程,有人却是转变为买馒头吃的那个人.这里不探究哪个角色更舒坦[哪个舒服,你心里没点X数么?].现在的情况呢,就是你是一个人,馒头得自己做,馒头得自己吃.SO,还是老老实实的接受吧.因为谁也说不准以后进了企业是做馒头还是吃馒头.为了让自己距离大牛更近一点,多码吧~技多不压身,特别是Java这门语言够学一辈子的了.多多益善,每次都有不同收获.(此处需要老猿的嘲讽,单身狗注定要自己做小馒头吃,想买馒头吃?学好Java,月薪过万[滑稽] [滑稽] [滑稽]) 初期的面向对象还是比较好搞定的,难的是后面的多态,继承稍微好一点,多态的变化性太强,糅杂了封装和继承.简单的解释就是,一道题拿到一看,呵,这不是多态么,好做.WC,怎么还要用到封装?WCTM,继承又是什么鬼?不用行不行?这题不是考多态么,继承和封装出来凑什么热闹??对,你没看错,多态的题目就是综合性强,一道题目里面十八弯了又继续弯,等你弯晕了,这题结果也弯出来了,很得劲的哦,至于结果是否对错,那就看你是弯到山脚下,还是弯到了山沟里面了[滑稽] [滑稽] [滑稽] 在下面呢,是一道简化版的经典题目,那道经典的绕弯题目我至今没弯出来,所以就不拿出装了[滑稽](反正隔着电脑屏幕你又打不着我).源码我就不上了,不会给你机会吐槽我在水的.题目综合性还是比较高的,糅杂了继承,封装,还有代码块,考的是程序的执行流程.简单的讲下吧, 程序开始,不是main方法进栈,是先加载字节码文件到方法区里面,其次才是main方法优先进栈,此时它不在最底部,而是最上部,这个小知识以后会弄明白的,static修饰符的优先级,随着类的进栈而进栈,静态代码块也不例外,也就是static修饰的静态代码块会跟main方法几乎不分先后的一起进栈.然后遵循国际惯例的执行流程,从上到下,从左到右依次执行,创建对象,同时引诱子类字节码进方法区,但是子类有个爹,引诱失败,它爹抢先一步先进方法区了,所以就有爹的静态代码块优先进栈的情况,很好,爹的静态代码块从后方插入,把main方法和它的静态代码块往栈底压了一步.重点!!这里是重点,这个时候不是执行爹的无参构造,而是儿子的静态代码块等不及了也跟着紧随其后插入进栈了,并且优先执行静态代码块,这个时候呢,按常理来说爹的东西已经走完了.没爹什么事了,但是!但是!但是!儿子再走完了自己构造代码块,想走自己的无参构造的时候,被Java摆了一道,因为子类的无参构造下的第一行代码隐藏了一个super();这个东西是用来调用父类的无参构造的.如果你在这里不主动调用其它方法,那么系统会默认执行父类的无参构造.等这个走完了,再来走子类的无参构造.因为参数,所以子类的有参构造就走不了了. 是不是懵了?懵了就对了,这图是我十天前画的,糙的厉害,现在我再回忆这块内容的时候也是懵的.而且不得不又去找老师重新分析这道题目.再捋捋,首先main进栈,先执行它的静态方法,然后走主方法里面的输出语句,然后创建对象,走父类的静态,再走子类的静态,构造代码块,子类无参想走的时候,被父类无参抢先一步执行,子类无参垫底执行.有参数,执行有参构造,无参数不执行. 其实我写到这里也有些挫败感,没办法,每天都在高强度的学习,每天的知识都是新的,学到一个知识章节,能在那两天里很好的运用其实已经非常不错了.再过段时间就容易遗忘,弄不清里面的一些细节.不骄不躁,不气不馁.这是一场半年持久战,其实远不止这半年,找工作之后是更漫长的持久战.对于程序猿而言,什么都会变,唯一不变的就是变化.在面对变化时候,在面临的新的问题新的知识的时候,稳住心态,好好学习.不知道你们发现了没有,我的标点好像有问题,看起来怪别扭的对吧,嘿嘿嘿,因为Java里面用的标点符号全是英式的吖.你们以后也会这样的.春风十里下着雪,雪还在下,终究会停,春风终究会吹来. 愿你在被打击时,记起你的珍贵,抵抗恶意.愿你在迷茫时,坚信你的珍贵爱你所爱,行你所行,听从你心,无问西东.
PS:此图制作的较为粗糙,当时有些错误没有处理好,各位看客图个鲜哈.以上述的文字解析为准,毕竟跟老师重新商讨过.祝君武运昌隆~~~高清无码大图上传失败...
|