日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jvm 宕机 打印jvm_通过入侵JVM打印阵列

發布時間:2023/12/3 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jvm 宕机 打印jvm_通过入侵JVM打印阵列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

jvm 宕機 打印jvm

總覽

Java中最常見的陷阱之一就是知道如何打印數組。 如果有關如何打印陣列的答案獲得了超過1000票贊成票,那么您必須懷疑是否有更簡單的方法。 幾乎所有其他流行語言都具有這種更簡單的方法,所以我不清楚為什么Java仍會這樣做。

與其他JDK類不同,數組沒有特別健全的toString(),因為它是從Object繼承的。

它打印類型和地址嗎?

實際上,它不打印地址,只是看起來像一個地址一樣。 它打印類型的內部表示形式以及對象的hashCode() 。 由于所有數組都是對象,因此它們具有hashCode()和類型以及同步鎖,而對象具有的其他所有內容,但是沒有特定于數組的方法。 這就是為什么toString()對數組沒有用的原因。

看起來沒有什么變化?

如果我運行以下程序。

public class ObjectTest {boolean[] booleans = {true, false};byte[] bytes = {1, 2, 3};char[] chars = "Hello World".toCharArray();short[] shorts = {111, 222, 333};float[] floats = {1.0f, 2.2f, 3.33f, 44.44f, 55.555f, 666.666f};int[] ints = {1, 22, 333, 4_444, 55_555, 666_666};double[] doubles = {Math.PI, Math.E};long[] longs = {System.currentTimeMillis(), System.nanoTime()};String[] words = "The quick brown fox jumps over the lazy dog".split(" ");@Testpublic void testToString() throws IllegalAccessException {Map<String, Object> arrays = new LinkedHashMap<>();for(Field f : getClass().getDeclaredFields())arrays.put(f.getName(), f.get(this));arrays.entrySet().forEach(System.out::println);} }

它打印。

booleans=[Z@277c0f21 bytes=[B@6073f712 chars=[C@43556938 shorts=[S@3d04a311 floats=[F@7a46a697 ints=[I@5f205aa doubles=[D@6d86b085 longs=[J@75828a0f words=[Ljava.lang.String;@3abfe836

我認為這對每個人都是顯而易見的。 O_O喜歡的事實,J是一個升翁內部碼和L為的J ava類的內部碼。 當b未使用時, Z也是布爾值的代碼。

我們對于它可以做些什么呢?

在此程序中,我們最終不得不編寫一個特殊的toString方法,以供需要通過打印Map.Entry的特殊方法調用對象時使用。 重復此操作多次可以提高程序的吞吐量,并且避免在Java中使用數組很容易,因為它們很難調試。

黑客JVM呢?

我們可以做的就是更改Object.toString()。 我們必須更改此類,因為它是我們有權訪問的數組的唯一父級。 我們無法更改數組的代碼,因為它是JVM內部的。 例如,對于所有byte []特定方法,沒有byte [] Java類文件。

取得java.lang.Object的源代碼副本,并將toString()替換為

public String toString() {if (this instanceof boolean[])return Arrays.toString((boolean[]) this);if (this instanceof byte[])return Arrays.toString((byte[]) this);if (this instanceof short[])return Arrays.toString((short[]) this);if (this instanceof char[])return Arrays.toString((char[]) this);if (this instanceof int[])return Arrays.toString((int[]) this);if (this instanceof long[])return Arrays.toString((long[]) this);if (this instanceof float[])return Arrays.toString((float[]) this);if (this instanceof double[])return Arrays.toString((double[]) this);if (this instanceof Object[])return Arrays.deepToString((Object[]) this);return getClass().getName() + "@" + Integer.toHexString(hashCode());}

在Java <= 8中,我們可以通過添加到命令行將此類添加到bootclasspath的開頭

-Xbootclasspath/p:target/classes

(或您的類已編譯到的任何位置),現在當我們運行程序時,我們看到

booleans=[true, false] bytes=[1, 2, 3] chars=[H, e, l, l, o, , W, o, r, l, d] shorts=[111, 222, 333] floats=[1.0, 2.2, 3.33, 44.44, 55.555, 666.666] ints=[1, 22, 333, 4444, 55555, 666666] doubles=[3.141592653589793, 2.718281828459045] longs=[1457629893500, 1707696453284240] words=[The, quick, brown, fox, jumps, over, the, lazy, dog]

就像您使用其他任何語言一樣。

結論

雖然這是一個很酷的技巧,但是最好的解決方案是他們最終修復Java,以便為數組生成合理的輸出。 它知道您需要一個并提供了它,但是將其隱藏在您必須通過Google查找的類中,以便每個新的Java開發人員在第一次嘗試使用數組時都必須擁有一個WTF時刻。

翻譯自: https://www.javacodegeeks.com/2016/03/printing-arrays-hacking-jvm.html

jvm 宕機 打印jvm

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的jvm 宕机 打印jvm_通过入侵JVM打印阵列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av一区二区三区免费观看 | 福利视频在线 | 久久精品3 | 午夜综合 | 欧美高清在线视频 | 红桃视频在线播放 | eeuss一区二区| 欧美孕交视频 | 欧美成年人视频在线观看 | 欧美做受 | 操欧美美女 | 成人28深夜影院 | 日韩欧美亚洲在线 | 好吊操妞| 最新av免费在线观看 | 久热青草 | 96亚洲精品久久久蜜桃 | 亚洲国产精品无码专区 | se日韩| 福利视频大全 | 久章草影院 | 在线免费小电影 | 免费视频久久久 | 男女插插插视频 | 91麻豆国产在线观看 | 久久久久久久综合 | 日韩激情视频在线观看 | 精品国产18久久久久久 | 99re这里只有精品在线 | 亚洲m码 欧洲s码sss222 | 91九色porn | 在线播放精品视频 | 综合av | 国产精品久久久久一区二区三区 | 日韩高清专区 | 欧美激情黑人 | 7777在线视频| 私库av在线 | 高清在线一区二区 | 国产精品成人国产乱一区 | 中文字幕高清在线播放 | 婷婷综合在线视频 | 午夜美女福利视频 | 手机在线免费观看av | 色91视频 | 中文字幕11页中文字幕11页 | 中国精品视频 | 娇妻被老王脔到高潮失禁视频 | 天天爽夜夜爽夜夜爽精品视频 | 欧美日韩一区三区 | 亚洲人成电影网 | 亚洲成人第一区 | 午夜影院免费视频 | 黄色1级大片 | 亚洲毛片在线免费观看 | 亚洲字幕成人中文在线观看 | 日本黄网站在线观看 | 四虎成人精品在永久免费 | 成年人免费网址 | 国产 丝袜 欧美中文 另类 | 2021天天干| 亚洲国产成人精品无码区99 | 日韩成人在线免费观看 | 天天插天天干 | 牛牛av国产一区二区 | 男人的天堂a在线 | 国产精品极品 | 黄色小视频链接 | 成人精品视频一区 | 欧美日韩综合一区 | 插女生下面 | 七七久久 | 久久这里只有精品久久 | 国产3级| 密臀av一区二区 | 向着小小的花蕾绽放 | 亚洲精品无码久久久久久久 | 魔女鞋交玉足榨精调教 | 欧美一级特黄aaaaaa大片在线观看 | 欧美50p| 免费古装一级淫片潘金莲 | 日韩久久久精品 | 久久久久久久久免费视频 | 国产av 一区二区三区 | 国产精品国产三级国产播12软件 | 亚洲免费黄色网 | 91久久精品www人人做人人爽 | 国产午夜精品久久久 | 国产精品免费无遮挡无码永久视频 | 一级黄色大片视频 | 直接看的av | 久草久草 | av不卡在线观看 | 免费视频一二三区 | 亚洲精品三 | 亚洲欧洲综合在线 | 日韩电影在线一区二区 | www免费黄色 | 91综合色 |