闲聊几句
最近新换了公司,开发不多而且都是年轻人,ps:当然我也不老。。。只是工作早的原因吧(农村的上学早),总是感觉自己老了,不扯闲话了,现在感觉在面试 工作中许多做java的同学,并不能很清晰的描述这门语言,说实话楼主做这行时间也不长5年多吧,之前因为工作原因,加班多也是工作中学习,最近又入手了基本书准备啃书了,毕竟书籍的提升才是硬动力,看完有心得了再分享,先不说别的,先讲清楚,这篇文章不讲技术!!!不讲技术!!!划重点,只是大家聊聊,首先现在这个行业上的一个很明显的分类,程序猿-》开发攻城狮-》技术大佬666,基本占比个人感觉50:40:10吧,基本一大半都是在搬砖的路上越走越远,至于原因大家许多地方都看过就不多讲了,今天只讲下我们java入门第一课:面向对象
我们在学习,工作中这个问题应该大家都碰到了无数次了,今年面试过程中也遇到过很多次,面试官一上来聊完工作经历,直接就是一句什么是“面向对象”,对于这种纯概念的东西真的是见人见智,许多同学就是按课本上的,哦,java的核心思想,不用关心其本质,通过他的封装继承多态的设计模式实现我们的需求,有的还会说点高大上的提升工作效率,代码质量等等,说实话这样说没错,而且很对,但是一般面试官都不怎么满意,背课文的方式考试可以,可是缺乏自己的理解,之前我们一个leader给我们上课时也描述过这个面向对象,“面向对象是啥,就好比你站在我面前,我不用关心你是啥,你是什么,在java语言中我会命名一个类,比如you,设置你的属性,衣食住行,吃喝玩乐,穿什么,喜欢什么,就好像发现一个新物种,给你定义各种属性,然后给你set对应的值,我需要知道你是什么的时候再get你的对应属性就行,什么是你”,这个回答说不上标准,但是很易懂,其实无论
封装:封装,就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
继承:继承,指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过 “继承”(Inheritance)和“组合”(Composition)来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用 基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力。
多态:多态,是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。
五大基本原则:SPR, OCP, LSP, DIP, ISP
这些东西的制定都是为什么?其实软件开发本身就是一个门槛低,差异大的行业,说到技术,讲真,一个工作1年多和工作5年多的我个人感觉能做的基本都一样,只是快慢,熟悉,业务接受度不一样,一门新的技术两个人同时做还不一定谁快谁慢,但是为什么有的做到技术大牛 有的做了很久还是只能自称码农,一个是细节,另一个就是许多东西你都懂,你会不会去遵守,举个例子吧:大家都知道SimpleDateFormart线程不安全多线程情况下会出问题,但是可能许多人习惯,或者感觉方便,还是很喜欢用,之前部门一个新来的同事一直这样处理,ps:我们系统并发还算一般吧1000左右,终于时间类型转换出问题,时间不一致出了个小故障,问他知不知道这个问题,说的头头是道,比我们说的都好,问为什么用别的方式,觉得麻烦。。。很无语,其实真的有的时候细节决定成败的,一点点的改变,日积月累,到最后可能你自己都要吃惊,就像士兵突击里,连长说的那句话一样,什么都怕坚持
其实开发本身就是一个很枯燥的工作,每天面对着电脑,没日没夜的需求工作,说激情那都是扯犊子呢,谁不是为了生活,那怎么改善,就从你手头的工作中一点点开始,一行代码的优化,一个类源码的分析,一个工具优缺点的排查,总要有所收获,也许你的付出不需要太多,就是每天几分钟 几个小时,差距就会逐渐拉大,java语言的本质无论是封装继承多态,其本质并非是规则的制定,而是告知我们代码编写过程中的一些优化点,解决方案,提高工作效率
感觉说着说着老是跑题,本人文采也不怎么好,结尾借用之前和一位产品同学聊天内容结束,我问一位产品同学产品的工作本质是什么,他说的是“产品要做的是,不能替客户操心,又不听客户想法,站在用户角度完善需求”,然后他问我技术呢,我说“技术服务于需求,如果一个好的产品是一辆车那技术就是轮子,没有发动机人推着也能跑但是很慢,但是要有了需求的推动,那进步必然迅速”,其实开发水平也是一样,不要局限于安于现状,没有哪个大佬是在用时间成长的,只有不断的逼自己,工作中学,下班后学,时时刻刻想着一些问题的解决最优方案,这样提升才是最快的,希望大家在这条路上越走越远