`
田智伟
  • 浏览: 206246 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Java入门

 
阅读更多

        昨天面试被人BS,虽然心中有无限怨念,不过本屌丝本着做好自己让暴风雨来的更猛烈一些的理想(好吧,我承认有点凌乱了),如今java的正式发行版已经到了1.7,不得不承认我们很多代码的编写还停留在1.4及以前时代,面试官面试中还问到了我有没有使用HahsTable,我果断说没有使用,对方就开始不屑了,其实我的全局变量都在使用ConcurrentHashMap 

       你很容易遇到一个你跟他说hadoop,他跟你讲java基础,你跟他讲框架他跟你讲IO,你跟他讲IO他跟你讲变态的人,为了让自己的更健壮,我决定认认真真复习一遍基础。

今天就从java入门开始,第一讲《java编程思想》(第四版),不得不说很多东西老人说得很有道理“温故而知新”,平时写代码考虑最多的是实现功能,优雅不优雅考虑的倒是不多,看看基础,倒是有心思回顾以前的一些设计,就像并发陷阱都知道,其实写代码的时候却很少注意,也许是功能搞定了,才回去考虑,继承跟组合关系也是一样,多态的使用,action中get和post的选择。就拿get和post方法来说,其实就设计初衷而言get方法本身是不建议对后端有变更的,比如增删改就不建议通过get方法来处理,为什么?约定,你也许看见约定就觉得有点像英语老师回答你为什么老外要这么讲一样,可是代码就是这样必要的约定可以成为一种交流沟通的途径,可是很多时候不得不说我在除了文件上传下载,很多时候这两个都在混用,估计很多专业的人看见我这么搞,估计就像我当年看见有人在java代码属性命名中使用大量的下线一样不舒服。

今天拿着《java编程思想》(中文哦)从第一页看起,这本书除了翻译本身看着有点费劲以外沉下心,还是有些不少收获的诚如他名字所言,也许你已经api高手了,不过像我一样的也不在少数,api一堆,用的好的却不见得,用的明白的大多也都停留在api的汉语翻译上边了,底层思想可能还是有些欠缺啊。

 

好了,该扯扯书的内容了,一开始还是老外的套路,有点八股,对书中的涉及到的内容作一些基本介绍,前几版的区别,外加一堆感谢,不过没有优先感谢国家是有点不对了。总之都是跟知识关系不大的东西,也算是老外式的开胃菜了。

 

“万物皆对象”这个算是一种宣传,当然了对于开发人员来说也就意味着一种约定,一种思维方式的约定,不得不说自己写的很多代码还是很有结构编程的影子,很多时候类名就只是个标记,我关心的只是内部的方法,如果你觉得没问题,那么就说明你跟我还是一个级别,OOP(面向对象)本身就是要你从一个大局去考虑,然后逐步细分,而要是一上来就从加减法开始,那就注定你最后得代码要沦为被人唾弃的对象了。尤其是在你真正领略到了多态的精髓的时候你就明白了,接口个人的感觉就是更像是一种契约,上层应用只要拿到契约就OK了,本着诚信原则,底层承诺兑现契约,当然是惊喜还是失望就不保证了,至少每一条都会有的。

谈到继承跟组合,个人感觉跟倾向于组合,首先能保证安全性(前提是你明白这里需要注意安全性),能够做到良好的封装,个人推荐多使用组合关系少使用继承关系,除非有很强的父子关系,或者有写其他需求。

 

非面向对象编程的编译器产生的函数调用会引起所谓的“前期绑定”,即编译器将产生对一个具体函数的调用,而运行时将这个调用解析到将要被执行的代码的绝对地址,OOP程序知道运行时才能确定代码的地址,所以就有了“后期绑定”,也就是执行代码的地址知道运行的时候才能确定。java中为了实现“后期绑定”,在编译期使用一段代码通过对象中存储的信息来计算方法体的地址

 

0
8
分享到:
评论
5 楼 田智伟 2012-09-22  
wuliaolll 写道
田智伟 写道
wuliaolll 写道
其实问api问不出什么所以然,对照着文档一看就了然。可掌握思想是要一定功底的,可现在往往有很多人认为自己做过几个项目,熟悉几个api就很牛了。

前天面试一个号称N年经验而且还是带项目的人,好吧,既然这么牛,就问问他项目整体把握,框架搭建等等,说半天没有说出什么实质的东西,问他项目中用到了哪些设计模式,一个都答不出来……让我深深地怀疑他的基础,果不其然,问几个java多线程基础就答不出来了;他还说项目中全是用spring,又问他什么是ioc,什么是aop,答不出来……问他ajax如何用spring mvc返回json,他答out.write()……

其实说到底也还是out.write(),只不过在写之前通过比较规整的方式先把对象转成了json对象,完事再把json作为string输出,要是不是很复杂的json,直接输出感觉效率上可能还快一些



倒不是你说的侧重点,这事谁都懂,但如果你是用一个框架,既然说自己对框架很熟,一起起码的提高开发效率的特性得懂吧。用框架现成的东西最主要是带来开发上的效率,同时对后期代码的维护有利,一堆的out.write,你觉得后期要修改一些字段容易吗?这个还是用框架现在的东西容易些吧,开发有时不能完全看程序的运行效率,要从代码维护、开发效率、运行效率上来个折中。

这个回复功能真心蛋疼,也不知道他们怎么搞成这个样子,占空间,还麻烦~,你说的跟我的想法也不谋而合,之前又一次公司分享,有些团队了项目结构,经常会把dao层的DO对象在c层通过copy搞成VO对象,个人感觉不少人的工作可能还是停留在,用什么,抄什么的方式上面,就说spring,很多人往往不是说某一块精通,可能很多时候还是停留在用到了,找现成代码抄一抄的层面上面,更说不上实现原理的精通了。好抄代码而不求甚解。做经理的估计就更不好说了,之前有面试过好几次,虽然我水平一般般,不过还是有点像一个笑话说得那样“今天面试了一个java的,我问了三个问题,对方问了我一个问题,直接说不来了”。有时候面试双方都有些放不开,倒是有时候有点辞不达意,双方都没理解对方要问什么,又一次有人问我了解“collection”不?我就蒙了,你说的是“jdbc的connection?”,“不是”,“那我就不知道了”,回头一想“难道人家想问我的是集合类?”,最后有想象,不会这么低级别吧?不过能问我“hashtable”的人问这个一点都不稀奇,但是很能说明问题的就是,面试双方辞不达意很正常,我觉得好的面试应该是坐下来慢慢聊的。
4 楼 wuliaolll 2012-09-20  
田智伟 写道
wuliaolll 写道
其实问api问不出什么所以然,对照着文档一看就了然。可掌握思想是要一定功底的,可现在往往有很多人认为自己做过几个项目,熟悉几个api就很牛了。

前天面试一个号称N年经验而且还是带项目的人,好吧,既然这么牛,就问问他项目整体把握,框架搭建等等,说半天没有说出什么实质的东西,问他项目中用到了哪些设计模式,一个都答不出来……让我深深地怀疑他的基础,果不其然,问几个java多线程基础就答不出来了;他还说项目中全是用spring,又问他什么是ioc,什么是aop,答不出来……问他ajax如何用spring mvc返回json,他答out.write()……

其实说到底也还是out.write(),只不过在写之前通过比较规整的方式先把对象转成了json对象,完事再把json作为string输出,要是不是很复杂的json,直接输出感觉效率上可能还快一些



倒不是你说的侧重点,这事谁都懂,但如果你是用一个框架,既然说自己对框架很熟,一起起码的提高开发效率的特性得懂吧。用框架现成的东西最主要是带来开发上的效率,同时对后期代码的维护有利,一堆的out.write,你觉得后期要修改一些字段容易吗?这个还是用框架现在的东西容易些吧,开发有时不能完全看程序的运行效率,要从代码维护、开发效率、运行效率上来个折中。
3 楼 田智伟 2012-09-18  
wuliaolll 写道
其实问api问不出什么所以然,对照着文档一看就了然。可掌握思想是要一定功底的,可现在往往有很多人认为自己做过几个项目,熟悉几个api就很牛了。

前天面试一个号称N年经验而且还是带项目的人,好吧,既然这么牛,就问问他项目整体把握,框架搭建等等,说半天没有说出什么实质的东西,问他项目中用到了哪些设计模式,一个都答不出来……让我深深地怀疑他的基础,果不其然,问几个java多线程基础就答不出来了;他还说项目中全是用spring,又问他什么是ioc,什么是aop,答不出来……问他ajax如何用spring mvc返回json,他答out.write()……

其实说到底也还是out.write(),只不过在写之前通过比较规整的方式先把对象转成了json对象,完事再把json作为string输出,要是不是很复杂的json,直接输出感觉效率上可能还快一些
2 楼 wuliaolll 2012-08-24  
其实问api问不出什么所以然,对照着文档一看就了然。可掌握思想是要一定功底的,可现在往往有很多人认为自己做过几个项目,熟悉几个api就很牛了。

前天面试一个号称N年经验而且还是带项目的人,好吧,既然这么牛,就问问他项目整体把握,框架搭建等等,说半天没有说出什么实质的东西,问他项目中用到了哪些设计模式,一个都答不出来……让我深深地怀疑他的基础,果不其然,问几个java多线程基础就答不出来了;他还说项目中全是用spring,又问他什么是ioc,什么是aop,答不出来……问他ajax如何用spring mvc返回json,他答out.write()……
1 楼 kyan54 2012-08-24  
哥跟你差不多,来关注你哈~~

相关推荐

    java入门经典(完整版高清晰带目录书签)

    标题中的“java入门经典(完整版高清晰带目录书签)”表明这是一本针对Java初学者的入门教材。它很有可能包含Java编程语言的基础知识、语法介绍、程序设计原理以及一些简单实用的案例。书中的“完整版”意味着内容...

    Java入门到精通pdf

    《Java入门到精通》是一本面向Java初学者的权威指南,旨在帮助读者快速掌握Java编程语言的基础知识并逐步深入到高级技术。这本书涵盖了从安装Java开发环境,理解基本语法,到构建复杂应用程序的全过程,是学习Java...

    Java入门到精通完整教程+源码.zip

    本资源“Java入门到精通完整教程+源码.zip”提供了一个全面的学习路径,帮助初学者逐步掌握Java编程技能并进阶至精通。下面将详细解析这个压缩包中的学习内容。 首先,"Java1908-master"可能指的是2019年8月的一个...

    “Java入门123”系列教学视频(23集)

    资源名称:“Java入门123”系列教学视频(23集)资源目录:【】Java入门123教学视频-总结视频【】Java入门123教学视频01-04集【】Java入门123教学视频05-08集【】Java入门123教学视频09-12集【】Java入门123教学视频...

    Java入门1·2·3——一个老鸟的Java学习心得

    资源名称:Java入门1·2·3——一个老鸟的Java学习心得内容简介:本书是一本与众不同的Java入门好书。作者以独特的视角,向Java初学者讲述了如何才能真正理解和掌握Java语言。本书充分考虑了初学Java语言的种种困难...

    Java入门1·2·3:一个老鸟的Java学习心得.rar 超清

    《Java入门1·2·3:一个老鸟的Java学习心得》是一本与众不同的Java入门好书。作者以独特的视角,向Java初学者讲述了如何才能真正理解和掌握Java语言。《Java入门1·2·3:一个老鸟的Java学习心得》充分考虑了初学Java...

    Java入门学习笔记

    这份"Java入门学习笔记"涵盖了imooc网站上Java入门课程的三个赛季的内容,旨在为初学者提供一个全面的学习资源。 笔记的第一部分是"Java入门第一季学习笔记",它可能包括Java的基础概念和语法。这部分可能会讲解...

    Educoder题目:Java入门 - 数组进阶答案解析.md

    Educoder题目:Java入门 - 数组进阶答案解析

    Educoder题目:Java入门 - 数组基础答案解析.md

    Educoder题目:Java入门 - 数组基础答案解析

    Java入门1·2·3——一个老鸟的Java学习心得 高清pdf

    本书是一本与众不同的Java入门好书。作者以独特的视角,向Java初学者讲述了如何才能真正理解和掌握Java语言。本书充分考虑了初学Java语言的种种困难,讲解时细致入微,抽丝剥茧,层层推进,并采用对比、比喻和类比的...

    java入门学习视频--java入门学习视频

    java入门学习视频 java一些基础性的知识 数组集合 I/o流等等 java入门学习视频 java一些基础性的知识 数组集合 I/o流等等

    Java入门1·2·3:一个老鸟的Java学习心得【清华大学出版社 臧萌 编著】

    #Java入门必读书籍,有个人的笔记(少量介意勿下),书籍开篇第一章包括软件下载和环境设置。 #穿插了195个完整示例和350个Java源程序帮助读者理解

    java入门学习资料ppt 源代码 小项目案例

    【Java入门学习】是编程初学者踏入编程世界的重要一步,特别是对于那些选择Java作为首选语言的人来说。本资源包提供了一份“java入门学习资料ppt”,它通常包含了一系列关于Java基础概念、语法、数据类型、控制结构...

    Java入门实验实例(程序代码加实验报告全)

    "Java入门实验实例(程序代码加实验报告全)"是一份非常实用的学习资源,旨在帮助初学者快速掌握Java编程基础。这份资料包含了作者在学习Java过程中编写的全部程序和对应的实验报告,对于刚接触Java的人来说,是非常...

    java入门阶段相关代码.zip

    java入门java入门阶段相关代码.zipjava入门阶段相关代码.zipjava入门阶段相关代码.zipjava入门阶段相关代码.zipjava入门阶段相关代码.zipjava入门阶段相关代码.zipjava入门阶段相关代码.zipjava入门阶段相关代码.zip...

    60个java入门源代码

    60个java入门源代码,涵盖javaSE学习的方方面面,认真学习过后一定受益匪浅。

    Java入门123

    《Java入门123——一个老鸟的Java学习心得》。作者以独特的视角向Java初学者讲述了如何才能真正理解和掌握Java。本书充分考虑了初学Java的种种困难,讲解细致入微,抽丝剥茧,层层推进,并采用对比、比喻和类比等...

    Java典型应用彻查1000例第一卷:Java入门(源码+PPT+习题).rar

    "Java典型应用彻查1000例第一卷:Java入门(源码+PPT+习题).rar"这个资源包是为初学者提供的一套全面的Java学习资料,包含源码、教学PPT以及习题,旨在帮助学习者快速掌握Java的基础知识。 1. **源码**: - Java...

    JAVA入门经典第6版

    适合JAVA入门开发,为进阶JAVA提供扎实的基础

    Java入门贪吃蛇小游戏.zip

    Java入门贪吃蛇小游戏.zipJava入门贪吃蛇小游戏.zipJava入门贪吃蛇小游戏.zip Java入门贪吃蛇小游戏.zipJava入门贪吃蛇小游戏.zipJava入门贪吃蛇小游戏.zip Java入门贪吃蛇小游戏.zipJava入门贪吃蛇小游戏.zipJava...

Global site tag (gtag.js) - Google Analytics