jar包是編譯後的文件嗎
發布時間: 2025-01-04 17:54:11
① java裡面的jar包是否就相當於c#編譯生成的dll文件
dll文件,俗稱動態鏈接庫文件,是有執行程序可調用的二進制文件,也就是計算機能識別的二進制代碼,任何語言都可以調用。只是方法不同而已。
jar文件,一般是由java虛擬機解析的,其實相當於將一系列的位元組碼文件(.java文件)或者包,java虛擬機這些文件通過一些演算法序列化(壓縮),就形成了jar文件。但程序需要執行時java虛擬機將位元組碼文件再次編譯成二進制文件供計算機執行。
PS:這就是java是跨平台的原因。所有程序的位元組碼文件相同。不同操作系統上只需安裝不同的java虛擬機就可以執行相同的程序。
② java中,jar包裡面的類是源代碼嗎還是編譯後的文件位元組碼文件
起作用的是位元組碼文件,當然源代碼也可以打包進去,但不起作用。
③ Java中Jar包為什麼能輕易就給反編譯了
java中jar包輕易的被反編譯是由於java的特性決定的。java中的jar包的實質內容是java源代碼編譯後的.class文件,由於java的面向對象特性和java的反射技術,可以很容易的通過對.class文件進行反射來得到java的源代碼,也就是反編譯!對於java的反編譯,並不是所有內容都會反編譯出來,java源文件中的注釋、泛型等內容在經過編譯和反編譯之後會丟失。
熱點內容