`

JAVA自学之路 五:问题解决之道 【转】

阅读更多
JAVA自学之路 五:问题解决之道
既然是学习,就不可能不遇到问题。
既然是自学,就没有方便的和老师探讨的机会。
那么,遇到问题之后,环境配不通,程序调不过,运行不正常,遇见这些恼人的问题的时候,该怎么办呢?
首先我要恭喜你,遇见问题,意味着你又有涨经验的机会了,每解决一个问题,你的JAVA经验值就应该上升几百点,问题遇到的越多,知识提升的越快。
但是总是解决不了也是很恼人的,怎么办呢?
我一般要求我们的学生都是这样来进行的。
当你遇到一个问题的时候:
1:要仔细的观察错误的现象,是的,要仔细
有不少同学的手非常快,在编译一个程序的时候,报了一大堆的错误,扫了一眼之后就开始盯着代码一行一行的找,看清什么错误了吗?没有!有的时候安装软件出问题了,一个对话框弹出来说出错了,马上举手问老师:“不得了了,出错了,出错了”。
“什么错误?”
“还没看呢?”
这都是典型的不上心的方法!请记住,学习编程并不是一件很容易的事情,自己首先要重视,要用心才可以。
在开发中,仔细观察出错信息,或者运行不正常的信息,是你要做的第一件事。
读清楚了,才能在以后的步骤中有的放矢,哭了半天,总要知道哭的是谁才成。
这里又分三种情况:
A:错误信息读懂了,那么请进入2步:要仔细思考问题会出在哪些环节
B:没读懂,愣是一点没看懂,进入第4步吧:google
C:读了个半懂,有些眉目但是不太能确定,第2步和第4步结合着来。

2:要仔细思考问题会出在哪些环节(重要)
当你读懂了一个问题之后,要好好的思考这个问题可能会在哪些环节上出错。
一辆汽车从总成线上下来,车门子关不上!
哪错了?你怎么查?
当然是顺着生产线一站一站的查下来。
程序也是一样的,也是一系列语句完成后产生的结果。
写一个网络程序,总是发现服务器端打印不出接收的数据,有几个环节会出错?
仔细分析这个现象的环节:
客户端产生数据->按“发送”按钮->发送到服务器->服务器接收到后打印
这几个环节都有可能会出错:
有可能客户端根本就没产生数据,有可能发送按钮按下去后根本就没发出去,或者发出去的不是你产生的东西,或者根本就没连接网络,或者发送出去服务器没有接收到,或者接收到之前就打印了等等等等。

学着去这样仔细的分析程序的环节和这些环节可能会产生的问题,你的经验值定然会大幅度快速的提升,这样做很累人,但是一件事情如果做下来一点都不累的话,这个东西还有价值吗?
在网页A输入了一个人的名字,提交到B,首先存储到数据库,然后再读出来,发现乱码!怎么办?当然是分析环节:
客户输入->HTTP发送->B接收->存储到数据库->读出->展现到网页
每个环节都可能出问题,怎么才能知道哪里出的问题?继续往下读。
3:如何定位错误(重要)分析清楚有哪些环节之后,下一步就是定位到底什么环节出错了。
定位有以下三种办法:
A 打印输出,比如java的System.out.println(),比如js的alert(),这种办法常用,必须掌握
B Debug,可以参考我们的视频《坦克大战》,详细讲了Eclipse的调试。
C 删掉一部分调试一部分,也就是去掉一部分的功能,做简化,然后调试剩下的功能,JSP和JavaScript常用。
4:如果还不行,google吧
还查不出来?恭喜你,你遇到的错误是值得认真对待的错误,是会影响你学习生涯的错误,问一下google或者百度吧。照着下面的方法查查看。
一般来讲,搜索引擎可以搜到各种知识点,我曾经跟同学们开玩笑说:“学会了怎么google或者baidu,其实没必要跟老师学了,自己全都搞懂了,尚学堂是没必要来的。”当然,只是玩笑,培训的作用有三个:
A:系统化知识
B:真实项目锻炼经验
C:少走弯路,节省时间
不知不觉开始做广告了,请原谅,处其位谋其事,总得为尚学堂说点什么:)
言归正传,如何查搜索引擎?
先精后粗,首先先进行尽量精确的查找,比如一个错误,SocketException,你怀疑它是在connect()方法出的问题,那么当然是选这样的关键词java connect SocketException
先中后英,本着以解决问题为主的想法,练习英文还是先放在一边吧,首先应该在中文网页中查询,还不行的话,搜索英文的吧,最近的尚学堂课程中会带大家阅读英文的书籍。有很多东西就像一层窗户纸,远看灰蒙蒙怪唬人的,你壮着胆子一捅,它就破了。阅读英文的书籍就是如此,不是想象中的那么困难:)宁可在沙场上战死,也不能被吓死不是吗:)
信息筛选,搜索出来的结果不见得能够完全匹配,建议大家多阅读前几页的搜索结果,多打开几个网页看看,不过,我的经验是超过3页一般就没意义了,所以超过3页还没有找到合适的答案,或许应该调整一下关键词,或者放粗整个搜索的结果了。
经常的进行知识难点的查询,如果一个问题牵扯的面比较广,就干脆到网上搜索一些相关的专题,比如“java 乱码 mysql” “oracle 创建用户”等等,如果有必要,不要犯懒,勤动手写一些小小的测试程序,来弄明白知识点的细节。这也是涨知识的重要的途径。
5:什么?还不行?那么就BBS吧
如果实在还不行,就到BBS上面问一问高手吧。
到哪个BBS上?
google或者百度不就行了么:)关键词“java论坛”“java bbs”
然后在搜索结果里好好的看看那些活动频繁的论坛,以后就是你经常光顾的地方了。http://community.csdn.net就很不错。
向别人提问是非常需要技巧的!
曾经有人问我这样的问题:“请问如何才能学好java呢?”
这个要求太泛泛了。
还有人给我一段代码甚至jar包也寄过来,然后说老师的我的代码中有个错误您帮我查查:(
我没有办法去花大量的时间建立环境去调试一个还不知道存在不存在的错误!
还有人在BBS上问这样的问题:“是否有人能帮我完成一个完整聊天的程序?请帮我写一个登陆模块吧!”
这个要求有些过分了,有人帮你做是你的运气,没有人帮你是正常反应。
向别人提问,应该首先确定你已经做了自己应该做的事,简单说是我前面列举的1,2,3,4步你都作过了,然后再求助于人。不要没有经过认真思考就草率的向别人提问,自己也不会有长足进步的。
那我该怎么样向别人提问呢?
在google或百度搜索《提问的智慧》,你会找到答案。
在这里我给出一个链接http://community.csdn.net/IndexPage/SmartQuestion.aspx,磨刀不误砍柴功,先花点时间去阅读一下吧。
得到别人的回答,要懂得感恩。
不需要去写信感谢,不需要支付费用,不需要那些花言巧语,做到下面这一点就够了:
当你逐步成为高手的时候,要回答别人在论坛上提出的问题,有时间有精力的前提之下!
6:还解决不了?问老师吧,这个只能是在你参加了培训的前提下了。 7:还解决不了?天哪,是不是思路从根上就搞错了?写信给我,让我也学习一下,共同进步吧。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huguifuture/archive/2010/08/01/5780798.aspx
分享到:
评论

相关推荐

    JAVA自学之路

    JAVA自学之路 五:问题解决之道 既然是学习,就不可能不遇到问题。 既然是自学,就没有方便的和老师探讨的机会。 那么,遇到问题之后,环境配不通,程序调不过,运行不正常,遇见这些恼人的问题的时候,该...

    0 基础 Java 自学之路(超仔细含练习项目及源码)

    1.0 基础 Java 自学之路(超仔细含练习项目及源码) 2.Java知识体系最强总结(含各个阶段的面试题) 3.Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,...

    Java自学之路——超仔细含练习项目及源码 Java知识体系最强总结————含各个阶段的面试题

    1.0 基础 Java 自学之路(超仔细含练习项目及源码) 2.Java知识体系最强总结(含各个阶段的面试题) 3.Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,...

    Java典型应用彻查1000例:网络应用开发

    “Java典型应用彻查1000例”系列丛书以提出并解决问题为导向,通过超过1000个开发范例,全面介绍Java语言从基础到网络、数据库、游戏和Web开发的特性和实现方法。本系列丛书共六册,每册可独立学习,若能全部...

    Java最新2024学习路线+Java自学全套免费网盘资料

    非常适合Java小白到构架师进阶之路 网盘地址:链接:https://pan.baidu.com/s/1TR5ccHm38fDlEpcevF36TQ?pwd=tpz5 1.学习方法 认知上: 衡量学的好坏的标准是:编码能力。 如何提高编码能力:多敲!多敲!多敲! 听...

    java教程 第三课-2

    java java学习 java自学 java入门

    java文章合集2

    50道CSS基础面试题(附答案).pdf du及df命令的使用(附带示例).pdf I O 模型.pdf IOT语义互操作性之语义.pdf Java-利用Nginx负载均衡实现Web服务器.pdf Java开发必须掌握的8种网站攻防技术.pdf JS中的二进制操作...

    JAVA八股文基础部分

    Java编程基础是深入理解与应用...项目实践:结合实际项目案例进行练习,将所学知识应用于解决实际问题,提高编程实战能力; 面试准备:为IT行业求职面试做准备,了解并熟练掌握Java基础知识点,展现扎实的技术功底。

    超爽的自学课件(java)

    1) 第1章:对象入门 这一章是对面向对象的程序设计(OOP)的一个综述,其中包括对“什么是对象”之类的基本问题的回答,并讲述了接口与实现、抽象与封装、消息与函数、继承与合成以及非常重要的多形性的概念。...

    Java笔记,自己学习Java总结的超级详细的笔记,适合在校大学生学习或者想自学Java的人

    2、利用好搜索引擎,百度和Goodle是伴随着我们职业生涯的两大利器,Java语言的生态圈非常完整,我们遇到的很多问题都可以通过百度或者Goodle查阅到,如果你能利用好搜索引擎,是可以不断锻炼自己独立解决问题的能力...

    1.解密搜索引擎技术实战:Lucene&Java;精华版(第3版)

    本书总结搜索引擎相关理论与实际解决方案,并给出了Java实现,其中利用了流行的开源项目Lucene和Solr,而且还包括原创的实现。本书主要包括总体介绍部分、爬虫部分、自然语言处理部分、全文检索部分以及相关案例分析...

    JAVA自学教程(史上最全).ppt

    用迭代器遍历集合的时候,用集合修改集合有没有问题?如果有,怎么解决?有问题,因为会出现并发修改异常。解决方法有多种,比如,我们可以不通过集合来修改集合,而使用迭代器来修改集合。像ListIterator迭代器就有...

    java学习整理文档.docx

    java 学习整理文档 Spring框架并没有对单例bean进行任何多线程的封装处理。关于单例bean的线程安全和并发问题需要开发者自行去搞定 最浅显的解决办法就是将多态bean的作用域由“singleton”变更为“prototype”或者...

    《Java 典型应用彻查1000例-图形与网络游戏开发》PDF 下载

    “Java典型应用彻查1000例”系列丛书以提出并解决问题为导向,通过超过1000个开发范例,全面介绍Java语言从基础到网络、数据库、游戏和Web开发的特性和实现方法。本系列丛书共六册,每册可独立学习,若能全部...

    Java典型应用彻查1000例 :Web应用开发

    “Java典型应用彻查1000例”系列丛书以提出并解决问题为导向,通过超过]000个开发范例,全面介绍Java语言从基础到网络、数据库、游戏和Web开发的特性和实现方法。本系列丛书共6册,每册可独立学习,若能全部融会贯通...

    JAVA程序设计专家门诊-李文泽[带完整书签目录]高清扫描版pdf

     本书的最大特点就是针对每个问题从解题思路,具体步骤,专家指点几个方面进行介绍,让读者在解决一个问题的同时取得举一反三的效果,本书所给出的问题在论坛中也经常出现,都是学习Java的人比较关心的问题,具有很...

    Java初学者如何自学和自己定位解决问题

    自学和自我解决问题确实是一项非常非常重要的能力,远比你现在所会的知识重要的多的多,因为,你未知的永远的无穷的。  关于API文档  经常有朋友求各种API文档,初学者里常见的是要JDK的API文档。这个 ...

    Java基础课程习题汇总.docx

    这有助于培养问题解决和编程思维的能力。 示例答案和解释:资源中通常会提供示例答案,以及对这些答案的详细解释。这有助于学习者在完成练习后核对他们的答案,并理解更高效的编程方法。 适用于不同水平的学习者:...

    解密搜索引擎技术实战-Lucene&java;精华版

    精华版(第3版)》总结搜索引擎相关理论与实际解决方案,并给出了Java实现,其中利用了流行的开源项目Lucene和Solr,而且还包括原创的实现。 《解密搜索引擎技术实战——Lucene&Java;精华版(第3版)》主要包括总体...

Global site tag (gtag.js) - Google Analytics