1. 首页
  2. IT资讯

java学习原理篇|java程序运行套路

java学习原理篇|java程序运行套路

我们生来平等

🐶 :寺水, 你说, 我们都是一样的吗?

🐱 :从正态分布来看的话,除去前面和后面的,大多数人,生来差别并不大,可以简单认为,在出生那一刻是平等的.

人生忽然已过二十多载.从人生来看,再回到起跑线上,已是不太现实了,但是对于Java学习来说,我们都才学会了HelloWorld,现在是在同一个位置开始,在这里,希望小伙伴们一起来维护了一份

寺水的技能包

在这里可以,可以看到我们已经走过的路和掌握的知识点.生来平笔,而后又拉开了差距,其中很大一部分原因是归纳,总结,转化的欠缺.所以,有了这个技能包,我们可以时常返回来看一下.

人鬼情未了

🐶 :寺水,你说,人鬼能在一起吗?

🐱 :按道理讲,正常来说是不可以,但可能会在某个条件下得以再续前缘.比如某个月圆之时,比如某个地点. 一如我们写的代码,只有通过某个命令来触发,转换,才能让计算机执行.

java学习原理篇|java程序运行套路

相信上面这个图,大家估计都见过很多次了,这里拿出来,和大家聊一下抽象思维. 以前写过一篇:

当领导说要提升能力时,实际上想让你提升什么呢?

这里的人鬼情未了,我们为人, 电脑为鬼,那我们需要一些特殊的转换器,来使我们和电脑能够沟通.在以后的两个不同的系统进行交互的时候, 我们也可以戏成为”人鬼情未了”,如前端通过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的运行, 所以,我们要明白是哪个过程出了问题, 然后再根据错误信息,去定义问题.以编译时错误为例:

publicclassHello{

publicstaticvoidmain(String[] args){

System.out.println(“你好,寺水”)

}

}

java学习原理篇|java程序运行套路

以上图为例, 虽然说是没有达到预期的结果,但是也给了我们很丰富的提示. 这里我们需要注意上图标识出的三个地方,

1.javac Hello.java 这个是哪一阶段,对哪些元素操作出现的问题, 在这里是命令问题,放到代码里面可能就是某个类的某个方法出了问题. 这就是上面那个很关键的问题, 弄清楚我们的定位!

2.Hello.java:4 这个就是再详细的定位了, 直接定位到了是哪一行的代码出了问题, 是Hello.java这个文件的第4行出了问题

3. 需要”;” System.out.xxxxxx: 这个是错误信息. 也叫错误上下文信息,给了一些参考意见.注意这里的措辞, 是参考意见,具体是不是这个错,还得我们实际看看代码才知道.

这个例子,大家可以理解为, 是对前面模仿学习的一个阐述,在后面,我们也还会不断再提及这些, 让这个方法论更为清晰. 要坚信,任何错误,都是纸老虎,我们一定可以解决的!

大道至简,一生二,二生三

再复杂的程序也是由一个一个的方法这样组装起来的.运行不起来的代码/出问题的代码,每次也只会在某一行抛出问题,所以, 我们就要依据错误信息,再复杂的应用,错误信息也就和上面类似,大家不要被吓住了, java程序运行, 就这两个方法,javac, java, 错误信息,也就长这个样子, 就是内容长短不一, 所以,沉着冷静,就能做到动刀甚微,但问题已解!

本文来自投稿,不代表程序员编程网立场,如若转载,请注明出处:http://www.cxybcw.com/203608.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code