我们生来平等
🐶 :寺水, 你说, 我们都是一样的吗?
🐱 :从正态分布来看的话,除去前面和后面的,大多数人,生来差别并不大,可以简单认为,在出生那一刻是平等的.
人生忽然已过二十多载.从人生来看,再回到起跑线上,已是不太现实了,但是对于 Java 学习来说,我们都才学会了 HelloWorld,现在是在同一个位置开始,在这里,我们维护了一份
寺水的技能包
在这里可以,可以看到我们已经走过的路和掌握的知识点.生来平笔,而后又拉开了差距,其中很大一部分原因是归纳,总结,转化的欠缺.所以,有了这个技能包,我们可以时常返回来看一下.
人鬼情未了
🐶 :寺水,你说,人鬼能在一起吗?
🐱 :按道理讲,正常来说是不可以,但可能会在某个条件下得以再续前缘.比如某个月圆之时,比如某个地点. 一如我们写的代码,只有通过某个命令来触发,转换,才能让计算机执行.
相信上面这个图,大家估计都见过很多次了,这里拿出来,和大家聊一下抽象思维. 以前写过一篇:
这里的人鬼情未了,我们为人, 电脑为鬼,那我们需要一些特殊的转换器,来使我们和电脑能够沟通.在以后的两个不同的系统进行交互的时候, 我们也可以戏成为"人鬼情未了",如前端通过 http 调用后端接口, 两个不同的后端服务通过 dubbo 交互. 虚拟机中方法之间相互的调用.再如生活当中,两个独立的人,得通过语言/肢体动作沟通.很多很多, 我们都可以抽象成人鬼情未了.
再来说到 java 上. 在抽象了之后,我们就要提炼各种元素, 然后用一个方法去转换一下,整个过程描述如下:
先是从给人看的 Hello.java, 通过 javac 给转化成给 JVM 看的 Hello.class ,然后再转给电脑去运行.
这里我们提炼出来的元素有:人,JVM, 电脑,Hello.java 源文件.提炼出的方法有: javac 转换, java 转换,
Hello.class = javac 转换(Hello.java)
java 转换(Hello.class)
这是一个最基本的流程,在此之上的万变不会离其根本,比如用 idea 来执行 javac 和 java , 或者用命令行执行 javac 和 java,或者如我们上篇应用文中所演示,直接用 java 去执行 Hello.java, 其实这个是在内存中进行编译,然后进行执行的. 当我们把握了这些基本点的时候,就有了排查错误的思路.
磕磕绊绊终终成正果
🐱 : 唉,终究是人鬼殊途,要在一起太难了,就像最近看的 < 斗罗大陆 > 人想和魂兽在一起,中间要经 历的太多了.
🐶 :寺水呀, 其实没有哪条路是轻松的,就像我们和电脑,想让电脑做出我们想要输出/运行结果,就是面说的 javac/java 这几步,哪一步错了都不行.
这里会引发一个哲学问题,要看清自己的位置. 这句话, 不仅仅是提醒我们要在人生中思考这个问题,在写代码,调程序的时候,要认清我们的位置,报错了不要慌. 觉着冷静,大胆假设,小心求证!
还是以上篇输出 HelloWorld 为例(再复杂的逻辑,也是由这样简单的逻辑一点点拼起来的),而且,出问题,只会在方法中出问题,如 javac 中, 现在我们是单文件编译, 后面还会有多文件编译, 如 java 中, 现在是单文件运行, 后面会有带上 classpath 的运行, 所以,我们要明白是哪个过程出了问题, 然后再根据错误信息,去定义问题.以编译时错误为例:
public class Hello{
public static void main(String[] args){
System.out.println("你好,寺水")
}
}
以上图为例, 虽然说是没有达到预期的结果,但是也给了我们很丰富的提示. 这里我们需要注意上图标识出的三个地方,
1.javac Hello.java 这个是哪一阶段,对哪些元素操作出现的问题, 在这里是命令问题,放到代码里面可能就是某个类的某个方法出了问题. 这就是上面那个很关键的问题, 弄清楚我们的定位!
2.Hello.java:4 这个就是再详细的定位了, 直接定位到了是哪一行的代码出了问题, 是 Hello.java 这个文件的第 4 行出了问题
3. 需要";" System.out.xxxxxx: 这个是错误信息. 也叫错误上下文信息,给了一些参考意见.注意这里的措辞, 是参考意见,具体是不是这个错,还得我们实际看看代码才知道.
这个例子,大家可以理解为, 是对前面模仿学习的一个阐述,在后面,我们也还会不断再提及这些, 让这个方法论更为清晰. 要坚信,任何错误,都是纸老虎,我们一定可以解决的!
大道至简,一生二,二生三
再复杂的程序也是由一个一个的方法这样组装起来的.运行不起来的代码/出问题的代码,每次也只会在某一行抛出问题,所以, 我们就要依据错误信息,再复杂的应用,错误信息也就和上面类似,大家不要被吓住了, java 程序运行, 就这两个方法,javac, java, 错误信息,也就长这个样子, 就是内容长短不一, 所以,沉着冷静,就能做到动刀甚微,但问题已解!
本文思考
1.javac 如何编译多文件?
2.java 命令如何运行多个文件?
推荐阅读
java 学习应用篇 |windows 安装 JDK 及配置环境变量
关于小刀
1。自封的初级 java 劝退师
2。自封的 java 交流群管理员
3。自封的 java 学习微信客服小哥
4。自封的微信号:best396975802
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于