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 ...
随机推荐
- [luogu3067 USACO12OPEN] 平衡的奶牛群
传送门 Solution 折半搜索模板题 考虑枚举每个点在左集合和右集合或者不在集合中,然后排序合并即可 Code //By Menteur_Hxy #include <cmath> #i ...
- MySQL数据库开启、关闭、查看函数功能的方法
应用 MySQL 时,会遇到不能创建函数的情况.出现如下错误信息: ERROR 1418 : This function has none of DETERMINISTIC, NO SQL, or R ...
- Python学习笔记之map、zip和filter函数
这篇文章主要介绍 Python 中几个常用的内置函数,用好这几个函数可以让自己的代码更加 Pythonnic 哦 1.map map() 将函数 func 作用于序列 seq 的每一个元素,并返回处理 ...
- lastpass密码管理工具使用教程
现在移动互联网发展异常空气,无论访问哪个平台或者网站必须要注册账号,日子久了就会发现最痛苦的就是记住这些网站的密码.因为我们不可能将所有的网站都是设置同样的的账号密码,因为国内网站用户数据库被泄露的事 ...
- js获取昨天,最近7天,最近30天通用方法
function formatDate (val) { // 格式化时间 let start = new Date(val) let y = start.getFullYear() let m = ( ...
- 51nod1485 字母排序
[题解] 开26棵线段数,记录区间内每种字母的出现次数,修改的时候就用区间设置为一个数操作即可.同时也有平衡树做 #include<cstdio> #include<algorith ...
- 51. spring boot属性文件之多环境配置【从零开始学Spring Boot】
原本这个章节是要介绍<log4j多环境不同日志级别的控制的>但是没有这篇文章做基础的话,学习起来还是有点难度的,所以我们先一起了解下spring boot属性文件之多环境配置,当然文章中也 ...
- 【BZOJ4398】福慧双修(二进制,最短路)
题意: 此题中S=1 思路:Orz ManGod秒切此题 我觉得出入边权互换不太直观,就改了一下写法 第一次默认与1有关的第一条出边只出不入,第二次默认只入不出 ..]of longint; head ...
- Spring Boot配置文件规则以及使用方法官方文档查找以及Spring项目的官方文档查找方法
比如要使用Spring Boot实现一个功能,最直接的方式是Google,但是往往搜索出来的都比较乱,关键是乱在不同的版本上,比如1.x版本和2.x版本的配置是不一样的.最明显区别是在使用Thymel ...
- go语言slice的理解
Golang slice yongsean 作者 2017.02.17 00:07 打开App 创建切片,len.cap.append b := make([]int, 5) println(le ...