Java初学者一定要注意的问题,这些错误你犯过哪些?永远不要停止学习。

举报
陈橘又青 发表于 2022/06/28 08:13:34 2022/06/28
【摘要】 前言好多在学习编程的朋友,进入门前都会有一个疑问,什么是Java?Java是什么意思?为什么要了解Java?Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于...

前言

好多在学习编程的朋友,进入门前都会有一个疑问,什么是Java?Java是什么意思?为什么要了解Java?

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。


 『Java』从1995年的暑假开始在计算机业界就受到了高度注意,特别是在Internet和多 媒体(Multimedia)相关产品类方面。Java为何有如此这么大的魅力?人们常作如此的比喻: Java在全球资讯网(World Wide Web, WWW)地位就如同电子表格(Spreadsheet)与个人计算机(PC)的关系。


一、JAVA的一些特点

1、Java是一种软件技术,Java还是一个地名,叫爪哇,盛产咖啡。

2、Java是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言是一种为 Internet发展的计算机语言。

3、Java是一种使网页(Web Page)产生生动活泼画面的语言.

4、Java是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言.

5、Java是一种语言,用以产生「小应用程序(Applet(s))」。

6、Java是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能。

7、Java是一种将安全性(Security)列为第一优先考虑的语言。

8、Java是什么意思?Java是一种使用者不需花费很多时间学习的语言,Java摈弃了C++中各种弊大于利的功能和许多很少用到的功能。 Jave可以运行与任何微处理器,用Java开发的程序可以在网络上传输,并运行于任何客户机上。

9、Java是什么意思?Java是一种突破用户端机器环境和CPU。

10、Java是一种编程语言和一个平台。Java是一种高级,健壮,安全和面向对象的编程语言。


那么,JAVA学起来真的很难吗?作为一个初学者常犯的错误,常踩的坑有哪些?



二、新人小白们常犯的错误

Ⅰ.心态方面

1.懒动手

编程,本质上是门技能,与唱歌、跳舞、扫地、喷油漆、打官司、开出租车等技能一样,都是谋生养家糊口的技能。它不是知识。这是很多初学者不能认清本质的地方。将编程当知识来学。没错,编程需要计算机知识,但知识是基础。能不能掌握技能关键还是要靠边练习,练习,再练习!

初学者没认识到编程的本质前,不愿意上机操作例子,仅仅做做笔记本。更有甚者,笔记本也不做。这类学员是混日子,浪费父母钱财。

也有部分学员,坚持上机,勤做demo,能做出和老师使用的demo都一样的效果。同一demo需求稍微改一改,他不能举一反三完成。原来他是这样做的:复制老师的demo源码,在机器人上跑。其中过程并不理解。而且常见关键字不会写,就连main方法都不会输入。

天天老师建议:初学者要认清编程的本质——编程就是门技能,要多加练习。练习过程中手敲代码,在练习过程中理解和提升。

2.贪多浮躁

懒的学员不多,多数是勤奋好学的学员。还有部分学员急功好利,贪多。今天学习了ArrayList,他觉得还不够,把集合相关的Map\Set也学了。而且博客写得还不错,非常有条理。可是他并不理解,在使用时不会举一反三。这类学员不仅贪多浮躁,还好面子——博客写得好。

在这里要谈谈学员写博客的出发点,学员写博客不能像专家那样,一味追求系统性。学员写博客应该是写给自己看,记录自己的成长轨迹,方便以后复习、查阅和引用。理解多少写多少,写得少,写得不成体系,不丢人。初学者应该持有这样的态度:少就是多,慢就是快。学得少不要紧,慢也不要紧,关键是记住了,理解了。随着基础知识和技能的增加,更能体会到这一哲学理念的微秒。

3.不喜欢调试

不喜欢调试是多数学员或程序员的通病。他们宁愿花更多的时间在猜测中,在System.out.println()变量中,也不愿意调试。殊不知正是这种态度,让他错失了理解java代码运行的过程。不知道过程,就无法判断力哪个过程出了问题。久而久之,无法培养成系统分析能力。

4.过度思考

有部分学员天生擅长思考,喜欢思考。思考对任何人来说都是好事。其中一部分学员思考过度,非要想明白才动手上机练习。有个来自河北唐山的学员给我印象非常深刻。他说赋值符号为什么是等于号呢?明明是个等于号呀。还有次坐在电脑前迟迟不动,眼珠子一直在转呀转呀,我问他在干嘛,他反过来困惑地问我:老师,循环这么多种写法,我到底写哪种好,工作中老板会不会指定我用哪种循环?这位学员的过度思考有点较真。赋值等号就是=,它不是数学中的等于号。基础性的规则容不得怀疑。哪有那么多为什么?为什么1+1=2?老实说,数学上是可以证明一加一不等于二的。如果坚持一加一不等于二,那么将无法学会简单的数字计算。如果纠结太多,后续学习就没办法进行。回想我们成长的过程,哪个不是遵守规则再改变规则的,比方说练习写字,先中规中矩地模仿,到后来形成自己的风格,形成艺术,成为书法家。


II .技术方面

1)Java大小写问题

之前我们已经提到,Java 是区分大小写的语言。但由于大部分读者都是 Windows 操作系统的忠实拥护者,因此对大小问题往往都不够重视(Linux 平台是区分大小写的)。

例如,有的读者编写的 Java 程序的类是 HelloJava,但当他运行 Java 程序时,运行的则是 java hellojava 这种形式,这种错误的形式没有严格按 Java 程序中编写的来写,可能引起系统提示如图所示的错误。
 

编辑



因此这里必须提醒大家,在 Java 程序里,HelloJava 和 hellojava 是完全不同的,必须严格注意 Java 程序里的大小写问题。

不仅如此,读者按照教程中示例编写 Java 程序时,必须严格注意 Java 程序中每个单词的大小写,不要随意编写。例如 class 和 Class 是不同的两个词,class 是正确的,但是如果写成 Class,则程序无法编译通过。

另外,Java 程序中的关键字全部是小写的,无需大写任何字母。

2)路径里包含空格的问题

这是一个更容易引起错误的问题。由于 Windows 系统的很多路径都包含了空格,典型的例如 Program Files 文件夹,而且这个文件夹是 JDK 的默认安装路径。

如果 CLASSPATH 环境变量里包含的路径中存在空格,则可能引发错误。因此,推荐大家安装 JDK 以及 Java 相关程序、工具时,不要安装在包含空格的路径下,否则可能引发错误。

3)main 方法的问题

如果需要用 java 命令直接运行一个 Java 类,这个 Java 类必须包含 main 方法,这个 main 方法必须使用 public 和 static 来修饰,必须使用 void 声明该方法的返回值,而且该方法的参数类型只能是一个字符串数组,而不能是其他形式的参数。对于这个 main 方法而言,前面的 public 和 static 修饰符的位置可以互换,但其他部分则是固定的。

定义 main 方法时,不要写成 Main 方法,如果不小心把方法名的首字母写成了大写,编译时不会出现任何问题,但运行该程序时将给出如图的错误提示:
 



这个错误提示找不到 main 方法,因为 Java 虚拟机只会选择从 main 方法开始执行。对于 Main 方法,Java 虚拟机会把该方法当成一个普通方法,而不是程序的入口。

main 方法里可以放置程序员需要执行的可执行性语句,例如 System.out.println("Hello Java!"),这行语句是 Java 里的输出语句,用于向控制台输岀“Hello Java!”这个字符串内容,输出结束后还输出一个换行符。

在 Java 程序里执行输岀有两种简单的方式:System.out.print(需要输出的内容) 和 System.out.println (需要输出的内容),其中前者在输出结束后不会换行,而后者在输出结束后会换行。

失败是成功之母,这句话用在编程高手身上是再合适不过的了。学习编程没有什么捷径可以走,
在不断的学习和编码的过程中,逐渐的积累经验,从开始的模仿者变成最后的创作者。

和学习其它的编程语言一样,Java新手在开始编码的时候也会出现很多很多的错误,而且有的错误可能也是不断的出现。当出现这些错误的时候,我们就要仔细的看看错误提示,找出问题所在,避免以后不再发生同样的错误。当然,在这个过程当中我们的经验和水平也在不断的提升。
 



三、对JAVA初学者学习的建议

对于初学者来说,学习Java需要你做到以下5点。

1、Java语法本身的掌握

2、面向对象的思维模式

3、程序基于内存底层的运行方式

4、基本的数据结构和算法

5、根据项目将以上所有知识融合,并且了解设计模式

第一点,其实就是Java的基础知识要牢记。先把入门的基础打牢实。大量的基础知识,需要你自己花时间积累,要学深、学扎实。学习Java基础的时候,应该尽量多动手,很多时候,你想当然的事情,等你写出来运行一下,你就会发现和你想的并不一样。很多人学完Java不会写代码、项目基本都是这一环节出了问题,Java不是光看光学就可以的,这是需要你动手练习的,看别人写和自己写完全两码事。说简单一点就是长期累积,你没写过几个代码并不了解项目怎么做。光学基础是不够的,还有数据库的学习和Web开发,包括框架学习,SSM框架之类的。

学习的时候也可以做笔记,记录一些知识点。在你觉得自己的知识量可以了,那就能上手尝试编码了,尝试做一些项目,从小项目开始,小游戏项目也可以,多做一下,一点一点的增加难度嘛,熟悉了项目,有自己的思路了,就可以尝试做大项目了,再到独立做项目,从0到1的搭建。

学习Java基础的时候,应该尽量多动手,很多时候,你想当然的事情,等你写出来运行一下,你就会发现不是这么回事儿,不信你就试试,对于新手程序员和Java开发爱好者来说,多学多练才是王道。



四、JAVA进阶学习者建议

1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,

熟悉常用的Java API,包括集合框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等。

2.学会使用数据库,mysql是个不错的入门选择,而且Java领域里主流的关系型数据库就是mysql。

熟悉常用的关系型数据库产品(MySQL、Oracle),熟练的使用SQL和PL/SQL进行数据库编程。

这部分一般在你学习Servlet/Jsp的时候,就会接触到的,其中的JDBC部分就是数据库相关的部分。

你不仅要学会使用JDBC操作数据库,还要学会使用数据库客户端工具,比如navicat,sqlyog,二选一即可。

3.对Spring的IoC容器和AOP原理有深入了解,熟练的运用Spring框架管理各种Web组件及其依赖关系,

熟练的使用Spring进行事务、日志、安全性等的管理,

有使用SpringMVC作为表示层技术以及使用Spring提供的持久化支持进行Web项目开发的经验,熟悉Spring对其他框架的整合。

4.熟练的使用Hibernate、MyBatis等ORM框架,熟悉Hibernate和MyBatis的核心API,

对Hibernate的关联映射、继承映射、组件映射、缓存机制、事务管理以及性能调优等有深入的理解。

5.熟练的使用HTML、CSS和JavaScript进行Web前端开发,熟悉jQuery和Bootstrap,

对Ajax技术在Web项目中的应用有深入理解,有使用前端MVC框架(AngularJS)和JavaScript模板引擎(HandleBars)进行项目开发的经验。

spring、springmvc、mybatis,你需要学会这三个框架的搭建,并用它们做出一个简单的增删改查的Web项目。

你可以不理解那些配置都是什么含义,以及为什么要这么做,这些留着后面你去了解。

6.在搭建SSM的过程中,可能会经常接触到一个叫maven的工具。

这个工具也是你以后工作当中几乎是必须要使用的工具,所以你在搭建SSM的过程中,也可以顺便了解一下maven的知识。

在你目前这个阶段,你只需要在网络上了解一下maven基本的使用方法即可,一些高端的用法随着你工作经验的增加,会逐渐接触到的。

7.熟悉面向对象的设计原则,对GoF设计模式和企业应用架构模式有深入的了解和实际开发的相关经验,

熟练的使用UML进行面向对象的分析和设计,有TDD(测试驱动开发)和DDD(领域驱动设计)的经验。

8.熟悉Apache、NginX、Tomcat、WildFly、Weblogic等Web服务器和应用服务器的使用,熟悉多种服务器整合、集群和负载均衡的配置。

9.熟练的使用产品原型工具Axure,

熟练的使用设计建模工具PowerDesigner和Enterprise Architect,Eclipse和IntelliJ、WebStorm、SVN和Git,

熟练的使用项目构建和管理工具Maven和Gradle。

10.一些其他拓展知识:

前端:html/js/css 以及jquery,一套以上ui框框(easyui或者layui)能够熟悉使用(小全栈),有能力可以接触vue,react等

算法:各个大厂对工程师的数据结构和算法要求都挺高,建议可以刷letcode,剑指offer(牛客),pat(牛客),这些算法在面试会经常问到或者出现在笔试。

喜欢的也可以刷hdu,poj增强算法思维和能力。

爬虫:当前爬虫算是一个比较火但是不太拿的上台面的一门技术。

可以通过爬虫(python/java都可以)增强对接口的认识。

为自己工作的反爬做做准备,并且在课余之际也可以做些有趣的东西



学习一门编程语言确实需要耗费时间和精力。但是不必重蹈他人的覆辙而让学习过程复杂化。如果只停留在理论阶段,拒绝他人帮助,没有找到合适的解决问题方法,那么成为专业人士将需要很长一段时间。

记住,最糟糕的事情是从不开始学习,或是在第一次失败后就轻言放弃,错误和失败只是学习过程的一部分。最重要的是要定期学习,持续努力,你一定会有所收获。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。