跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 关于代码编译到最后运行过程
未分類
30 12 月 2020

关于代码编译到最后运行过程

关于代码编译到最后运行过程

資深大佬 : beryl 8

代码编译成了可执行文件,例如.jar, 或者.exe

那最终是如何运行的呀

java -jar xxx.jar 是如何启动的进程呢,怎么接收的客户端输入呢,网络请求是怎么进来被处理的?

这个具体是哪方面知识呀

大佬有話說 (16)

  • 資深大佬 : pipasese

    计算机组成原理,Java 虚拟机原理

  • 資深大佬 : cmostuor

    说的再多不如自己动手调源码 和 看源代码

  • 資深大佬 : taogen

    java -jar xxx.jar:jar 包中指定了 main 函数入口。

    怎么接收网络请求:起了一个进程,监听了指定的端口的网络请求。

    主要知识:操作系统,计算机网络,Java 。

  • 主 資深大佬 : beryl

    @cmostuor 这个只看 java 源码还不够

  • 資深大佬 : VDimos

    程序员的自我修养

  • 資深大佬 : tinyfool

    你这个问题说起来就复杂了,首先 exe 和 jar 就是两件事情,一个是操作系统里面的可执行文件,里面是 intel cpu 的二进制代码,一个是虚拟机代码,是 jvm 的虚拟机二进制代码。

    exe 跑在操作系统下,cpu 里。jar 跑在 java 虚拟机里。要弄明白这个你首先要明白操作系统和虚拟机的区别。

    提到进程,又是一个操作系统概念。进程是一个操作系统的可执行单元。java 虚拟机在操作系统里面也是一个进程。而 java -jar xxx.jar 就是启动一个 java 虚拟机,在里面加载了你的 jar 。

    网络请求就涉及到 socket,这是一个网络层的概念…

    你这个有点千头万绪啊……多看书吧

  • 資深大佬 : cmostuor

    @beryl 我没说只让你看 java 的源码呀 我这话就跟你妈催你读书一样 读啥书是你的事 想知道 exe 咋样执行去看微软给大学提供的 wrk 或 最近泄露的完整 xp 的代码 由于 win 系统是向后兼容的看完也很容易理解 winxp 以后的系统 jar 咋样执行去看 jvm 的代码

  • 資深大佬 : misaka19000

    你这个问题比较复杂,需要学习好多东西才能详细的理解

    可以先看一下我这两篇文章做一下初步的了解:
    https://www.nosuchfield.com/2018/11/23/Program-compilation-linking-loading-and-running/
    https://www.nosuchfield.com/2018/08/01/TCP-Flow-Control-And-Linux-Socket-Buffer/

  • 資深大佬 : missdeer

    https://book.douban.com/subject/26365491/ 《程序是怎样跑起来的》

  • 主 資深大佬 : beryl

    @misaka19000
    @missdeer 感谢

  • 資深大佬 : agagega

    jar 跟 exe 是完全不同的两种原理。
    java 不太懂; exe 的话,你打开的时候会有一个装载的过程,是操作系统完成的(类 Unix 上是 exec 这个系统调用),在命令行上启动程序的话,在调用 exec 之前还会存在一个 fork 的操作。(从 C 语言的角度看 fork 的逻辑非常匪夷所思,但从汇编的角度就会很自然了)然后就是一系列操作系统和系统库完成的脏活累活

    大概原理不算复杂,但细节特别多,不是专门搞这个的话,建议点到为止。有本书叫《程序员的自我修养》写得很好,就是比较旧了,新的也可以参考《深入理解计算机系统》第三版

  • 資深大佬 : js8510

    气死大学老师系列。主要气死的是 操作系统 任课老师

  • 主 資深大佬 : beryl

    @js8510 是的,最近在重新补这大学课程,当时上这个课的时候,拿到了大厂实习,就逃课出来了。
    so…

  • 資深大佬 : mitsuizzz

    @beryl 凡尔赛。。。

  • 主 資深大佬 : beryl

    @mitsuizzz 为啥?

  • 資深大佬 : haosamax

    为什么你们可以毫不费力的凡尔赛

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具