Java初学者如何排查学习中遇到的问题
大多数新手或者刚入门的人在学习的时候,不管是看视频还是看书,都会遇到各种各样的问题,比如JDK配置了,但是javac没有办法执行,Eclipse安装了,但是打不开,快捷键用不了,照着视频敲了但是和视频上结果不一样等等。下面我们就来分析遇到各种问题的排查方法。
JDK配置了但是敲javac或者java命令没有反应,大多数是敲javac命令出不来
其实JDK很好配置,第一个是配置好JAVA_HOME,注意一定是大写,不要问为什么,这是规范,你写成小写或者其他的也行,但是既然学这个就要符合行业规范。

注意,安装目录后面不要加斜杠,一定不要加斜杠。
接下来是配置JRE_HOME很多人可能会说JRE不是java的运行环境吗,我只是用来开发,配置不配置应该不要紧吧。但是这里我建议大家一定要配置,在学到后面的东西中有些软件会自动去读取JRE的环境变量,一定要配置。在安装JDK的同时,jdk的目录下面已经包含了jre,这个时候只需要把jre配置到jdk目录下面的jre目录就行了。

注意,目录是上面jdk的目录下面的jre目录,当然你也可以选择自己安装jre的,目录后面不要加斜杠。
配置好JRE_HOME和JAVA_HOME之后,我们来看看Path的配置。不配置path,上面两个配置了基本上也没用。

在配置path的时候把斜杠加上,都配置到bin目录下,配置上面以上基本上已经可以了,有的人会问classpath不是还没有配置吗?classpath配置不配置都行,他会自动检测。
用记事本写的代码编译时出现中文乱码
这种情况大多数出现在Window环境下,windows系统的默认编码为GBK,而记事本新创建的文件编码为Ascill编码,所以在编译时由于编码不一致会出现中文乱码,这时有的同学就会问,我也编译了但是我的也没出现你的这种错误呀,这个其实与系统有关,那么出现这种错误该如何解决呢。首先在记事本中点文件,另存为

选择UTF-8格式的,保存就可以了。接下来在执行javac编译,这时候有些人会成功编译,有的人还是不行,那这又是为什么呢?这里边的学问可大了,就得深入去了解uniocde编码模式了,这里不深入讨论。大家可以重新创建一个空的文件,先把编码设置成utf-8,然后在把代码复制到新创建的文件中去,保存,执行javac,这个时候百分之八十会成功。如果还是不成功的话,就用javac的命令行模式指定编码来运行,注意,这种模式下,文件编码可以是Ascill编码,
javac xxx.java -encoding gbk
可以使用这种。强制使用gbk编码来编译,如果gbk不行,换成utf-8,多尝试,那么很多人会问,我是怎么知道javac的这个命令的,其实我们直接敲javac就能看到他的一些参数:

我们可以看到,他里边就有个-encoding的选项,可以用来指定固定的编码。
在写代码中遇到的一些问题
1、在新手刚开学习的时候一定不要才猜,要去查询API文档,我之前见过一个人,视频上面讲的是Integer.MAX_VALUE,于是就会有人写Boolean.MAX_VALUE,Short.MAX_VALUE等,写程序一定要注意不要去仿照着写,因为你是刚刚开始学,一定要认真。
2、在使用开发工具的时候Eclipse,有些人前期因为语法不熟悉会遇到各种各样的问题,为什么让你们编辑器呢,因为编辑器能够更清楚的提示错误,比如:

这种错误,但是有些人由于基础有限,他不知道这个哪里错了,只是知道eclipse标红了,我们来分析,他这个地方有两个错误,eclipse已经给我们提示了,我们把鼠标放上去:

首先放到double上面,他会提示这么一句话 The left-hand side of an assignment must be a variable ,
我们在把鼠标放到12上面:

他会提示这样一句话 Syntax error , insert ";" to complete BlockStatements ;eclipse都会很清楚的提示出来,那么这三个错误是什么呢,首先double没有定义变量,第二个是类型赋值错了,赋值成了一个字符串,语句后面没有分号;就是这三个错误。
在写程序中碰到问题百分之九十都有提示,错误都包含在代码里边。主要是你能不能正确的找到错误在哪儿。
上面的这种错误都是属于编译型错误,工具会提示,还有一种错误是运行时错误,也是逻辑错误,这种错误就比较坑了,一般很难排查,但是都会在错误中提示出来,比如:

执行结果如下:

我们可以看到,在第9行,数组越界的错误,已经提示的特别清楚了。
在写程序的时候有些情况下就怕不报错,因为他不报错你就不知道哪儿有问题。所以找出错误最快的方法就是从报错的信息里边去找。
遇到异常查找的一些心得
- 平时在开发中一定要记得去看API文档,扩展自身知识
- 在遇到问题的时候一定是先自己去查,可以去百度,谷歌,等等,如果无果后,可以在群里边问,问老师
- 碰到错误,仔细检查你的代码,百分之六十的错误都是你粗心大意造成的,或者把代码截图发到群里,让大家帮你找
- 多利用编辑器去找,编辑器一般都会提示
- 碰到不理解的东西用System.out.println(“xx”) 打印日志来定位你的错误
- 一定要会用eclipse的断点功能
文档未完,持续更新中。
有问题可以在下面评论,技术问题可以私聊我
Java初学者如何排查学习中遇到的问题的更多相关文章
- java知识体系(自我学习中)
java自我学习知识体系
- 一位资深程序员大牛给予Java初学者的学习路线建议
java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈 ...
- 一位资深程序员给予Java初学者的学习路线建议
一位资深程序员给予Java初学者的学习路线建议 java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干 ...
- 转载:一位资深程序员大牛给予Java初学者的学习路线建议
一位资深程序员大牛给予Java初学者的学习路线建议 java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打 ...
- Java初学者应该注意的学习问题
作为初学者,在刚开始学习的时候,一定会走很多弯路.但其实很多弯路是不必走的,会浪费很多时间,导致学习效率大打折扣.今天小编给大家讲述一下,作为一个Java初学者,在开始学习的时候应该注意的问题,应该从 ...
- Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录)
Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录) 作者:王可利(Star·星星) 效果图: 代码如下: class Star8 { public static void m ...
- Java 需要记得、了解的关键词 (Java 学习中的小记录)
Java 需要记得.了解的关键词 (Java 学习中的小记录) 作者:王可利(Star·星星) 总结:本次随笔,仅且拿来平时翻阅记忆用
- Java学习中,常用的命令管理(Java 学习中的小记录)
Java学习中,常用的命令管理 作者:王可利(Star·星星) 一.Window中常见的dos命令 在哪里操作dos命令: Win7 ---> 开始 ---->所有程序---& ...
- Java基础学习中一些词语和语句的使用
在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...
随机推荐
- 面试总结——Java高级工程师(一)
一.无笔试题 不知道是不是职位原因还是没遇到,面试时,都不需要做笔试题,而是填张个人信息表格,或者直接面试 二.三大框架方面问题 1.Spring 事务的隔离性,并说说每个隔离性的区别 解答:spri ...
- response对象设置输出缓冲大小
response对象设置输出缓冲大小 制作人:全心全意 通常情况下,服务器要输出到客户端的内容不会直接写到客户端,而是先写到一个输出缓冲区,在计算机术语中,缓冲区被定义为暂时放置输入或输出资料的内存. ...
- 分金币 (UVA 11300)
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33899 思路:推公式,发现可以转化为求给定n个数,求到所有点距离之和最小的点 ...
- scanf与getchar
如下: 5 5 R R R R R R R R R R R R R R R R R R R R R R R R R 只允许用scanf,如何写读取函数. 由于 ...
- 2.8 补充:shell变量引用方式
一 变量 变量:本质上是程序中保存用户数据的一块内存空间,变量名就是内存空间地址. Shell中:变量可由字母数字和下划线组成,以字母或下划线开头. 命名:PATH=/sbin ...
- clipboard.js兼容ios
再使用clipboard.js做项目时,项目需求是在非input,button等可以点击的标签(span,p,div)上实现点击来复制内容,在PC端和移动端android没问题,但是到了ios毫无反应 ...
- free web rich code eidtor
free web rich code eidtor https://i.cnblogs.com/Preferences.aspx tiny code-editor https://apps.tiny. ...
- HDU 1224 无环有向最长路
用bellman_ford的方法,将中间不断取较小值,修改为取较大值就可以了 #include <cstdio> #include <cstring> #include < ...
- [luoguP1130] 红牌(DP)
传送门 幼儿园DP. ——代码 #include <cstdio> #include <iostream> ; << ); int a[MAXN][MAXN], f ...
- 将Jquery EasyUI中DataGird的数据导入Excel中
1.第一步获取前台DataGrid中的数据 var rows = $('#tb).datagrid("getRows"); if (rows.length = ...