Java自学之道—给程序入门者的一点建议

简介:

在书场上看到很多有关Java的书籍,但这就像进了瓜地里挑瓜挑的眼花,很多人不知道自己到底该选那本书好。很快精通Java可能只有很少一部分人能实现,那就是他曾经精通过 哪门语言,因为程序设计语言很好学,只要你精通一门语言,就可以做到一通百通。因为每种语言都有其共同点,就拿C语言来说,由于C语言出现的比较早,用的人也比较多,所以人们都习惯了它的语法规则和设计流程,假如现在出现了一门新的语言,而它和C语言的语法规则是天壤之隔,那么它的结果肯定是被淘汰的对 象。道理很简单,这种新语言的语法习惯和人们的编程习惯相差甚远,所以导致很少有人用,而语言的开发就是为了更多的使用才有其价值,如果没人使用也就没有它的价值了。就像Java语言一样,它的出现要比C语言晚,但无论它再怎么新,它的语法规则和C语言基本相差不远,所以人们也喜欢用,这样它才能实现它的实际价值。就像笔者在学习JavaScript一样,由于对Java的学习比较深入,所以在学习JavaScript只需要不到一个星期就做出了像hao123那样的网页。
  而对于大多人来说,他们如果没有精通某种语言,刚开始就学Java,这样连基本的语法规则都没有积累,怎么可能在短期内精通Java?而本书就克服了这个缺点,无论是对于初学者还是大牛,都有其相对应的适应性。根据笔者自学Java两年的经验,笔者在这里毛遂自荐一下,其实精通一门语言很简单:对于初学者,刚开始需要把基本概念过一遍,而本书开始部分的基本概念都是精简版,所以这样就克服了概念吸收慢的缺点。接着就是做后面的程序练习和项目开发。有人可能会问,这样如果有的概念忘记了怎么办?很正常,遇到不懂的概念就回去前面查或者查API文档。就这么简单,精通的过程就是在不断地查和练之间形成的;对于已经接触过一门语言的同学前面的Java概念只需简单过一遍,毕竟每种语言之间虽然有很多相似之处,但也有很多不同之处,所以主要看不同的地方。接着还 是不断地练习和做项目,这样才能不断提高自己。
  我在这里不得不提一下另一种古老的学习方式,那就是中学的学习方式。很多人将中学的学习方式带到了大学,而大学的学习方式和中学的学习方式是大相径庭的,无论你学习什么。所以就出现了,很多在中学学习很少拔尖的同学在大学的学习中却很吃力,甚至付出了很多努力,但最后的成绩还是到不得自己预期的水平。在中 学的学习方式是我们花大量的时间来把概念够透彻,尤其对于数学更是这样,就拿笔者来说,笔者在高考时把五本数学书仔仔细细翻了三遍,课后习题一个不落的往后做。而在大学,大学就是一个小社会,它会让你更接近现实,同时进入社会事情肯定也越来越多,怎样高效地处理这些事情就需要另一种学习方式。就像笔者在上面说过的一样,在大学的学习中大多是靠自己自学的,在大学靠老师就等于靠一面快要倒了的墙,你是靠不住的,这样只会耽误一个学生的前途。所以,我们在学习过程中,怎么高效地吸收书本上的知识,很简单,就是通过不断地查和练。
  以前在中学时,经常看一些怎样提高学习效率、怎样考高分的书,感觉人家说得在情在理,自己当时也看得是激情澎湃。但在大学的图书馆钻了两年后笔者才发现看 不看这些其实都是一样的。因为无论在哪本学习方法的书里面,都是让你把自己的时间安排的满满的来学习一门知识,这很明显是理想状态,进入社会的人有多少能整体学习一门知识的,就是学生每天也要学习不同的课程,更何况进入社会的我们。其实,话又说回来了,别人的学习方法也不无道理,人各有志,每个人的情况大 相径庭。但无论你无论是借鉴别人的学习方法,还是自己的,只有适合自己的才是最好的。
  还有一点,学习方法固然重要,但更重要的是自己的心态,如果一个三天打鱼两天晒网,那么,无论多么科学的学习方法对他来说都无济于事。道理很简单,就像一个人对他的女朋友用心不专一样,那么他还希望他的女朋友能和他相处一辈子吗?
  对于初学者来说,笔者建议刚开始练习Java程序的时候用DOS环境来编译和运行,这样也可以提高自己的程序调试水平。笔者承认Eclipse功能很强大 用起来也非常方便,但笔者认为这不适合初学者使用,因为里面很多函数、类、方法等不需要自己写就可以自动生成,这样反而不利于初学者的学习。这个道理也很简单,其实,越方便的东西我们越要警惕,这就和天上掉馅饼是一个道理,它有可能不是圈套就是陷阱。
  刚开始学习Java不在多,关键在精。很多人在学习时有这样一种误区,书借了很多,但是都是这本书学一点,那本书学一点,到头来学的知识没有一个整体性,最后给自己的感觉就是好像学了很多,但真正用起来却手足无措。所以,你只需要用一本书把它搞精就OK了。
  在这里我们需要明确一个误区:Java的学习是为了项目开发,而不是为了搞研究。所以,我们在学习的时候关键是要知道它怎样用,而不是要深入地知道它到底 是怎么回事。而笔者只所以要写这本书,这也是其中一个原因。缘由笔者在刚开始学习Java的时候也借了很多书,但都是理论搞得过于深刻,这样不但繁琐难懂,而且最后用起来还是写不出来。就拿里面的IO流那章来说,很多书都想把它讲的很清楚这点没错,所以理论搞得非常深厚,但这样只会让人看得一头雾水而不知所云。这样反而会事倍功半,所以笔者在讲这章时,很简单,主要是搞清楚流的去向,如读出就是把文件从内存读出到显示器,写入就是通过键盘把文件写入到内存。搞清楚了最基本的道理,后面的各个函数都是围绕这一点来展开的,学起来就轻而易举地理解它。这就和练功一样,先要把内功练深厚,后面的深奥功夫才能很快练就,反之,就只会走火入魔。

最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
1月前
|
Java
java程序导出堆文件
java程序导出堆文件
|
1月前
|
SQL Oracle Java
sql文件批处理程序-java桌面应用
sql文件批处理程序-java桌面应用
25 0
|
1月前
|
存储 Java
Java:编写程序,计算两个数的和、差、积、商和余数。docx
Java:编写程序,计算两个数的和、差、积、商和余数。docx
|
1月前
|
XML Java 数据库连接
谈谈Java反射:从入门到实践,再到原理
谈谈Java反射:从入门到实践,再到原理
60 0
|
1月前
|
安全 Java 数据库连接
【Java每日一题】——第四十一题:编写程序描述影视歌三栖艺人。
【Java每日一题】——第四十一题:编写程序描述影视歌三栖艺人。
31 0
|
12天前
|
Java Maven
【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“
【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“
33 3
|
24天前
|
关系型数据库 Java 开发工具
Java入门高频考查基础知识9(15问万字参考答案)
本文探讨了Spring Cloud的工作原理,包括注册中心的心跳机制、服务发现机制,以及Eureka默认的负载均衡策略。同时,概述了Spring Boot中常用的注解及其实现方式,并深入讨论了Spring事务的注解、回滚条件、传播性和隔离级别。文章还介绍了MySQL的存储引擎及其区别,特别关注了InnoDB如何实现MySQL的事务处理。此外,本文还详细探讨了MySQL索引,包括B+树的原理和设计索引的方法。最后,比较了Git和SVN的区别,并介绍了Git命令的底层原理及流程。
32 0
Java入门高频考查基础知识9(15问万字参考答案)
|
24天前
|
存储 缓存 算法
Java入门高频考查基础知识4(字节跳动面试题18题2.5万字参考答案)
最重要的是保持自信和冷静。提前准备,并对自己的知识和经验有自信,这样您就能在面试中展现出最佳的表现。祝您面试顺利!Java 是一种广泛使用的面向对象编程语言,在软件开发领域有着重要的地位。Java 提供了丰富的库和强大的特性,适用于多种应用场景,包括企业应用、移动应用、嵌入式系统等。下是几个面试技巧:复习核心概念、熟悉常见问题、编码实践、项目经验准备、注意优缺点、积极参与互动、准备好问题问对方和知其所以然等,多准备最好轻松能举一反三。
49 0
Java入门高频考查基础知识4(字节跳动面试题18题2.5万字参考答案)
|
24天前
|
存储 算法 JavaScript
Java入门高频考查算法逻辑基础知识3-编程篇(超详细18题1.8万字参考编程实现)
解决这类问题时,建议采取下面的步骤: 理解数学原理:确保你懂得基本的数学公式和法则,这对于制定解决方案至关重要。 优化算法:了解时间复杂度和空间复杂度,并寻找优化的机会。特别注意避免不必要的重复计算。 代码实践:多编写实践代码,并确保你的代码是高效、清晰且稳健的。 错误检查和测试:要为你的代码编写测试案例,测试标准的、边缘情况以及异常输入。 进行复杂问题简化:面对复杂的问题时,先尝试简化问题,然后逐步分析和解决。 沟通和解释:在编写代码的时候清晰地沟通你的思路,不仅要写出正确的代码,还要能向面试官解释你的
33 0
|
24天前
|
存储 Java 编译器
Java入门高频考查基础知识2(超详细28题2.5万字答案)
多态是面向对象编程中的一个重要概念,它允许不同类的对象对同一消息作出不同的响应。在具体实现上,多态允许一个父类的引用指向其子类的对象,并根据实际指向的对象的类型来调用相应的方法。在 Java 中,多态可以通过以下几种方式实现:在同一个类中,方法名相同,但形参列表不同,实现了多态。子类可以重写(覆盖)其父类的方法,实现多态。在父类引用中调用该方法时,根据实际指向的子类对象的类型来调用相应的方法实现。
39 0