真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java代碼不同指令 代碼和指令有什么區(qū)別

java中include動作和include指令的區(qū)別

include指令是編譯階段的指令,即include所包含的文件的內(nèi)容是編譯的時(shí)候插入到JSP文件中,JSP引擎在判斷JSP頁面未被修改,否則視為已被修改。由于被包含的文件是在編譯時(shí)才插入的,因此如果只修改了include文件內(nèi)容,而沒有對JSP修改,得到的結(jié)構(gòu)將不會改變,所以直接執(zhí)行已經(jīng)存在的字節(jié)碼文件,而沒有重新編譯。因此對不經(jīng)常變化的內(nèi)容,用include指令是合適的,如果需要的內(nèi)容是經(jīng)常變化的,則需要動作元素jsp:include.下面將詳細(xì)區(qū)分他們之間的不同

創(chuàng)新互聯(lián)建站從2013年開始,先為岑溪等服務(wù)建站,岑溪等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為岑溪企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

1.include指令

include可以在JSP頁面轉(zhuǎn)換成Servlet之前,將JSP代碼插入其中。它的主要優(yōu)點(diǎn)是功能強(qiáng)大,所包含的代碼可以含有總體上影響主頁面的JSP構(gòu)造,比如屬性、方法的定義和文檔類型的設(shè)定。它的缺點(diǎn)是難于維護(hù)只要被包含的頁面發(fā)生更改,就得更改主頁面,這是因?yàn)橹黜撁娌粫詣拥夭榭幢话捻撁媸欠癜l(fā)生更改。

語法:%@ include file="sample.jsp" %

2.include動作

jsp:include動作是在主頁面被請求時(shí),將次級頁面的輸出包含進(jìn)來。盡管被包含的頁面的輸出中不能含有JSP,但這些頁面可以是其他資源所產(chǎn)生的 結(jié)果。服務(wù)器按照正常的方式對指向被包含資源的URL進(jìn)行解釋,因而這個(gè)URL可以是Servlet或JSP頁面。服務(wù)器以通常的方式運(yùn)行被包含的頁面, 將產(chǎn)生的輸出放到主頁面中,這種方式與RequestDispatcher類的include方法一致。它的優(yōu)點(diǎn)是在被包含的頁面發(fā)生更改時(shí),無須對主頁 面做出修改。它的缺點(diǎn)是所包含的是次級頁面的輸出,而非次級頁面的實(shí)際代碼,所以在被包含的頁面中不能使用任何有可能在整體上影響主頁面的JSP構(gòu)造。

語法: jsp:include page="sample.jsp" flush="true" jsp:param name="name" value="value"/ /jsp:include

其中參數(shù)設(shè)置可以沒有,如果沒有參數(shù)設(shè)置,則必須采用jsp:include page="sample.jsp" flush="true"/形式

3. 使用include動作還是include指令?

使用include指令,如果被包含的文件發(fā)生改變,那么,用到它的所有Jsp頁面都需要更新。

僅當(dāng)include動作不能滿足要求時(shí),我們才應(yīng)該使用include指令。

有 些開發(fā)人員認(rèn)為include指令生成的代碼執(zhí)行起來比使用include動作的代碼更快。盡管原則上由可能的確如此,但性能上的差異很小,以致難以測 量,同時(shí),include動作在維護(hù)上的優(yōu)勢十分巨大,當(dāng)兩種方法都可以使用時(shí),include動作幾乎肯定是首選的方法。

對于文件包含,應(yīng)該盡可能地使用include動作。僅在所包含的文件中定義了主頁面要用到的字段或方法,或所包含的文件設(shè)置了主頁面的響應(yīng)報(bào)頭時(shí),才應(yīng)該使用include指令。

既然include指令產(chǎn)生難以維護(hù)的代碼,為什么人們還要使用它呢?

因?yàn)閕nclude指令更為強(qiáng)大。include指令允許所包含的文件中含有影響主頁面的Jsp代碼,比如響應(yīng)報(bào)頭的設(shè)置和字段、方法的定義。

例子://subpage.jsp

%! int num=0; %

//mainpage.jsp

html

body

%@ include file="subpage.jsp" %

%= num %

/body

/html

當(dāng)然使用include動作時(shí)這是不可能的,因?yàn)閚um變量未定義,主頁面不能成功的轉(zhuǎn)換成servlet。

什么樣的java代碼 會產(chǎn)生jmp指令

JMP指令將無條件地控制程序轉(zhuǎn)移到目的地址去執(zhí)行.當(dāng)目的地址仍在同一個(gè)代碼段 ---- 內(nèi),稱為段內(nèi)轉(zhuǎn)移;當(dāng)目標(biāo)地址不在同一個(gè)代碼段內(nèi),則稱為段間轉(zhuǎn)移.這兩種情況都 將產(chǎn)生不同的指令代碼,以便能正確地生成目的地址,在段內(nèi)轉(zhuǎn)移時(shí),指令只要能提 供目的地址的段內(nèi)偏移量即夠了;而在段間轉(zhuǎn)移時(shí),指令應(yīng)能提供目的地址的段地址 及段內(nèi)偏移地址值.

JAVA指令大全

指令碼

助記符

說明

0x00

nop

什么都不做

0x01

aconst_null

將null推送至棧頂

0x02

iconst_m1

將int型-1推送至棧頂

0x03

iconst_0

將int型0推送至棧頂

0x04

iconst_1

將int型1推送至棧頂

0x05

iconst_2

將int型2推送至棧頂

0x06

iconst_3

將int型3推送至棧頂

0x07

iconst_4

將int型4推送至棧頂

0x08

iconst_5

將int型5推送至棧頂

0x09

lconst_0

將long型0推送至棧頂

0x0a

lconst_1

將long型1推送至棧頂

0x0b

fconst_0

將float型0推送至棧頂

0x0c

fconst_1

將float型1推送至棧頂

0x0d

fconst_2

將float型2推送至棧頂

0x0e

dconst_0

將double型0推送至棧頂

0x0f

dconst_1

將double型1推送至棧頂

0x10

bipush

將單字節(jié)的常量值(-128~127)推送至棧頂

0x11

sipush

將一個(gè)短整型常量值(-32768~32767)推送至棧頂

0x12

ldc

將int, float或String型常量值從常量池中推送至棧頂

0x13

ldc_w

將int, float或String型常量值從常量池中推送至棧頂(寬索引)

0x14

ldc2_w

將long或double型常量值從常量池中推送至棧頂(寬索引)

0x15

iload

將指定的int型本地變量推送至棧頂

0x16

lload

將指定的long型本地變量推送至棧頂

0x17

fload

將指定的float型本地變量推送至棧頂

0x18

dload

將指定的double型本地變量推送至棧頂

0x19

aload

將指定的引用類型本地變量推送至棧頂

0x1a

iload_0

將第一個(gè)int型本地變量推送至棧頂

0x1b

iload_1

將第二個(gè)int型本地變量推送至棧頂

0x1c

iload_2

將第三個(gè)int型本地變量推送至棧頂

0x1d

iload_3

將第四個(gè)int型本地變量推送至棧頂

0x1e

lload_0

將第一個(gè)long型本地變量推送至棧頂

0x1f

lload_1

將第二個(gè)long型本地變量推送至棧頂

0x20

lload_2

將第三個(gè)long型本地變量推送至棧頂

0x21

lload_3

將第四個(gè)long型本地變量推送至棧頂

0x22

fload_0

將第一個(gè)float型本地變量推送至棧頂

0x23

fload_1

將第二個(gè)float型本地變量推送至棧頂

0x24

fload_2

將第三個(gè)float型本地變量推送至棧頂

0x25

fload_3

將第四個(gè)float型本地變量推送至棧頂

0x26

dload_0

將第一個(gè)double型本地變量推送至棧頂

0x27

dload_1

將第二個(gè)double型本地變量推送至棧頂

0x28

dload_2

將第三個(gè)double型本地變量推送至棧頂

0x29

dload_3

將第四個(gè)double型本地變量推送至棧頂

0x2a

aload_0

將第一個(gè)引用類型本地變量推送至棧頂

0x2b

aload_1

將第二個(gè)引用類型本地變量推送至棧頂

0x2c

aload_2

將第三個(gè)引用類型本地變量推送至棧頂

0x2d

aload_3

將第四個(gè)引用類型本地變量推送至棧頂

0x2e

iaload

將int型數(shù)組指定索引的值推送至棧頂

0x2f

laload

將long型數(shù)組指定索引的值推送至棧頂

0x30

faload

將float型數(shù)組指定索引的值推送至棧頂

0x31

daload

將double型數(shù)組指定索引的值推送至棧頂

0x32

aaload

將引用型數(shù)組指定索引的值推送至棧頂

0x33

baload

將boolean或byte型數(shù)組指定索引的值推送至棧頂

0x34

caload

將char型數(shù)組指定索引的值推送至棧頂

0x35

saload

將short型數(shù)組指定索引的值推送至棧頂

0x36

istore

將棧頂int型數(shù)值存入指定本地變量

0x37

lstore

將棧頂long型數(shù)值存入指定本地變量

0x38

fstore

將棧頂float型數(shù)值存入指定本地變量

0x39

dstore

將棧頂double型數(shù)值存入指定本地變量

0x3a

astore

將棧頂引用型數(shù)值存入指定本地變量

0x3b

istore_0

將棧頂int型數(shù)值存入第一個(gè)本地變量

0x3c

istore_1

將棧頂int型數(shù)值存入第二個(gè)本地變量

0x3d

istore_2

將棧頂int型數(shù)值存入第三個(gè)本地變量

0x3e

istore_3

將棧頂int型數(shù)值存入第四個(gè)本地變量

0x3f

lstore_0

將棧頂long型數(shù)值存入第一個(gè)本地變量

0x40

lstore_1

將棧頂long型數(shù)值存入第二個(gè)本地變量

0x41

lstore_2

將棧頂long型數(shù)值存入第三個(gè)本地變量

0x42

lstore_3

將棧頂long型數(shù)值存入第四個(gè)本地變量

0x43

fstore_0

將棧頂float型數(shù)值存入第一個(gè)本地變量

0x44

fstore_1

將棧頂float型數(shù)值存入第二個(gè)本地變量

0x45

fstore_2

將棧頂float型數(shù)值存入第三個(gè)本地變量

0x46

fstore_3

將棧頂float型數(shù)值存入第四個(gè)本地變量

0x47

dstore_0

將棧頂double型數(shù)值存入第一個(gè)本地變量

0x48

dstore_1

將棧頂double型數(shù)值存入第二個(gè)本地變量

0x49

dstore_2

將棧頂double型數(shù)值存入第三個(gè)本地變量

0x4a

dstore_3

將棧頂double型數(shù)值存入第四個(gè)本地變量

0x4b

astore_0

將棧頂引用型數(shù)值存入第一個(gè)本地變量

0x4c

astore_1

將棧頂引用型數(shù)值存入第二個(gè)本地變量

0x4d

astore_2

將棧頂引用型數(shù)值存入第三個(gè)本地變量

0x4e

astore_3

將棧頂引用型數(shù)值存入第四個(gè)本地變量

0x4f

iastore

將棧頂int型數(shù)值存入指定數(shù)組的指定索引位置

0x50

lastore

將棧頂long型數(shù)值存入指定數(shù)組的指定索引位置

0x51

fastore

將棧頂float型數(shù)值存入指定數(shù)組的指定索引位置

0x52

dastore

將棧頂double型數(shù)值存入指定數(shù)組的指定索引位置

0x53

aastore

將棧頂引用型數(shù)值存入指定數(shù)組的指定索引位置

0x54

bastore

將棧頂boolean或byte型數(shù)值存入指定數(shù)組的指定索引位置

0x55

castore

將棧頂char型數(shù)值存入指定數(shù)組的指定索引位置

0x56

sastore

將棧頂short型數(shù)值存入指定數(shù)組的指定索引位置

0x57

pop

將棧頂數(shù)值彈出 (數(shù)值不能是long或double類型的)

0x58

pop2

將棧頂?shù)囊粋€(gè)(long或double類型的)或兩個(gè)數(shù)值彈出(其它)

0x59

dup

復(fù)制棧頂數(shù)值并將復(fù)制值壓入棧頂

0x5a

dup_x1

復(fù)制棧頂數(shù)值并將兩個(gè)復(fù)制值壓入棧頂

0x5b

dup_x2

復(fù)制棧頂數(shù)值并將三個(gè)(或兩個(gè))復(fù)制值壓入棧頂

0x5c

dup2

復(fù)制棧頂一個(gè)(long或double類型的)或兩個(gè)(其它)數(shù)值并將復(fù)制值壓入棧頂

0x5d

dup2_x1

待補(bǔ)充

0x5e

dup2_x2

待補(bǔ)充

0x5f

swap

將棧最頂端的兩個(gè)數(shù)值互換(數(shù)值不能是long或double類型的)

0x60

iadd

將棧頂兩int型數(shù)值相加并將結(jié)果壓入棧頂

0x61

ladd

將棧頂兩long型數(shù)值相加并將結(jié)果壓入棧頂

0x62

fadd

將棧頂兩float型數(shù)值相加并將結(jié)果壓入棧頂

0x63

dadd

將棧頂兩double型數(shù)值相加并將結(jié)果壓入棧頂

0x64

isub

將棧頂兩int型數(shù)值相減并將結(jié)果壓入棧頂

0x65

lsub

將棧頂兩long型數(shù)值相減并將結(jié)果壓入棧頂

0x66

fsub

將棧頂兩float型數(shù)值相減并將結(jié)果壓入棧頂

0x67

dsub

將棧頂兩double型數(shù)值相減并將結(jié)果壓入棧頂

0x68

imul

將棧頂兩int型數(shù)值相乘并將結(jié)果壓入棧頂

0x69

lmul

將棧頂兩long型數(shù)值相乘并將結(jié)果壓入棧頂

0x6a

fmul

將棧頂兩float型數(shù)值相乘并將結(jié)果壓入棧頂

0x6b

dmul

將棧頂兩double型數(shù)值相乘并將結(jié)果壓入棧頂

0x6c

idiv

將棧頂兩int型數(shù)值相除并將結(jié)果壓入棧頂

0x6d

ldiv

將棧頂兩long型數(shù)值相除并將結(jié)果壓入棧頂

0x6e

fdiv

將棧頂兩float型數(shù)值相除并將結(jié)果壓入棧頂

0x6f

ddiv

將棧頂兩double型數(shù)值相除并將結(jié)果壓入棧頂

0x70

irem

將棧頂兩int型數(shù)值作取模運(yùn)算并將結(jié)果壓入棧頂

0x71

lrem

將棧頂兩long型數(shù)值作取模運(yùn)算并將結(jié)果壓入棧頂

0x72

frem

將棧頂兩float型數(shù)值作取模運(yùn)算并將結(jié)果壓入棧頂

0x73

drem

將棧頂兩double型數(shù)值作取模運(yùn)算并將結(jié)果壓入棧頂

0x74

ineg

將棧頂int型數(shù)值取負(fù)并將結(jié)果壓入棧頂

0x75

lneg

將棧頂long型數(shù)值取負(fù)并將結(jié)果壓入棧頂

0x76

fneg

將棧頂float型數(shù)值取負(fù)并將結(jié)果壓入棧頂

0x77

dneg

將棧頂double型數(shù)值取負(fù)并將結(jié)果壓入棧頂

0x78

ishl

將int型數(shù)值左移位指定位數(shù)并將結(jié)果壓入棧頂

0x79

lshl

將long型數(shù)值左移位指定位數(shù)并將結(jié)果壓入棧頂

0x7a

ishr

將int型數(shù)值右(符號)移位指定位數(shù)并將結(jié)果壓入棧頂

0x7b

lshr

將long型數(shù)值右(符號)移位指定位數(shù)并將結(jié)果壓入棧頂

0x7c

iushr

將int型數(shù)值右(無符號)移位指定位數(shù)并將結(jié)果壓入棧頂

0x7d

lushr

將long型數(shù)值右(無符號)移位指定位數(shù)并將結(jié)果壓入棧頂

0x7e

iand

將棧頂兩int型數(shù)值作“按位與”并將結(jié)果壓入棧頂

0x7f

land

將棧頂兩long型數(shù)值作“按位與”并將結(jié)果壓入棧頂

0x80

ior

將棧頂兩int型數(shù)值作“按位或”并將結(jié)果壓入棧頂

0x81

lor

將棧頂兩long型數(shù)值作“按位或”并將結(jié)果壓入棧頂

0x82

ixor

將棧頂兩int型數(shù)值作“按位異或”并將結(jié)果壓入棧頂

0x83

lxor

將棧頂兩long型數(shù)值作“按位異或”并將結(jié)果壓入棧頂

0x84

iinc

將指定int型變量增加指定值(i++, i--, i+=2)

0x85

i2l

將棧頂int型數(shù)值強(qiáng)制轉(zhuǎn)換成long型數(shù)值并將結(jié)果壓入棧頂

0x86

i2f

將棧頂int型數(shù)值強(qiáng)制轉(zhuǎn)換成float型數(shù)值并將結(jié)果壓入棧頂

0x87

i2d

將棧頂int型數(shù)值強(qiáng)制轉(zhuǎn)換成double型數(shù)值并將結(jié)果壓入棧頂

0x88

l2i

將棧頂long型數(shù)值強(qiáng)制轉(zhuǎn)換成int型數(shù)值并將結(jié)果壓入棧頂

0x89

l2f

將棧頂long型數(shù)值強(qiáng)制轉(zhuǎn)換成float型數(shù)值并將結(jié)果壓入棧頂

0x8a

l2d

將棧頂long型數(shù)值強(qiáng)制轉(zhuǎn)換成double型數(shù)值并將結(jié)果壓入棧頂

0x8b

f2i

將棧頂float型數(shù)值強(qiáng)制轉(zhuǎn)換成int型數(shù)值并將結(jié)果壓入棧頂

0x8c

f2l

將棧頂float型數(shù)值強(qiáng)制轉(zhuǎn)換成long型數(shù)值并將結(jié)果壓入棧頂

0x8d

f2d

將棧頂float型數(shù)值強(qiáng)制轉(zhuǎn)換成double型數(shù)值并將結(jié)果壓入棧頂

0x8e

d2i

將棧頂double型數(shù)值強(qiáng)制轉(zhuǎn)換成int型數(shù)值并將結(jié)果壓入棧頂

0x8f

d2l

將棧頂double型數(shù)值強(qiáng)制轉(zhuǎn)換成long型數(shù)值并將結(jié)果壓入棧頂

0x90

d2f

將棧頂double型數(shù)值強(qiáng)制轉(zhuǎn)換成float型數(shù)值并將結(jié)果壓入棧頂

0x91

i2b

將棧頂int型數(shù)值強(qiáng)制轉(zhuǎn)換成byte型數(shù)值并將結(jié)果壓入棧頂

0x92

i2c

將棧頂int型數(shù)值強(qiáng)制轉(zhuǎn)換成char型數(shù)值并將結(jié)果壓入棧頂

0x93

i2s

將棧頂int型數(shù)值強(qiáng)制轉(zhuǎn)換成short型數(shù)值并將結(jié)果壓入棧頂

0x94

lcmp

比較棧頂兩long型數(shù)值大小,并將結(jié)果(1,0,-1)壓入棧頂

0x95

fcmpl

比較棧頂兩float型數(shù)值大小,并將結(jié)果(1,0,-1)壓入棧頂;當(dāng)其中一個(gè)數(shù)值為NaN時(shí),將-1壓入棧頂

0x96

fcmpg

比較棧頂兩float型數(shù)值大小,并將結(jié)果(1,0,-1)壓入棧頂;當(dāng)其中一個(gè)數(shù)值為NaN時(shí),將1壓入棧頂

0x97

dcmpl

比較棧頂兩double型數(shù)值大小,并將結(jié)果(1,0,-1)壓入棧頂;當(dāng)其中一個(gè)數(shù)值為NaN時(shí),將-1壓入棧頂

0x98

dcmpg

比較棧頂兩double型數(shù)值大小,并將結(jié)果(1,0,-1)壓入棧頂;當(dāng)其中一個(gè)數(shù)值為NaN時(shí),將1壓入棧頂

0x99

ifeq

當(dāng)棧頂int型數(shù)值等于0時(shí)跳轉(zhuǎn)

0x9a

ifne

當(dāng)棧頂int型數(shù)值不等于0時(shí)跳轉(zhuǎn)

0x9b

iflt

當(dāng)棧頂int型數(shù)值小于0時(shí)跳轉(zhuǎn)

0x9c

ifge

當(dāng)棧頂int型數(shù)值大于等于0時(shí)跳轉(zhuǎn)

0x9d

ifgt

當(dāng)棧頂int型數(shù)值大于0時(shí)跳轉(zhuǎn)

0x9e

ifle

當(dāng)棧頂int型數(shù)值小于等于0時(shí)跳轉(zhuǎn)

0x9f

if_icmpeq

比較棧頂兩int型數(shù)值大小,當(dāng)結(jié)果等于0時(shí)跳轉(zhuǎn)

0xa0

if_icmpne

比較棧頂兩int型數(shù)值大小,當(dāng)結(jié)果不等于0時(shí)跳轉(zhuǎn)

0xa1

if_icmplt

比較棧頂兩int型數(shù)值大小,當(dāng)結(jié)果小于0時(shí)跳轉(zhuǎn)

0xa2

if_icmpge

比較棧頂兩int型數(shù)值大小,當(dāng)結(jié)果大于等于0時(shí)跳轉(zhuǎn)

0xa3

if_icmpgt

比較棧頂兩int型數(shù)值大小,當(dāng)結(jié)果大于0時(shí)跳轉(zhuǎn)

0xa4

if_icmple

比較棧頂兩int型數(shù)值大小,當(dāng)結(jié)果小于等于0時(shí)跳轉(zhuǎn)

0xa5

if_acmpeq

比較棧頂兩引用型數(shù)值,當(dāng)結(jié)果相等時(shí)跳轉(zhuǎn)

0xa6

if_acmpne

比較棧頂兩引用型數(shù)值,當(dāng)結(jié)果不相等時(shí)跳轉(zhuǎn)

0xa7

goto

無條件跳轉(zhuǎn)

0xa8

jsr

跳轉(zhuǎn)至指定16位offset位置,并將jsr下一條指令地址壓入棧頂

0xa9

ret

返回至本地變量指定的index的指令位置(一般與jsr, jsr_w聯(lián)合使用)

0xaa

tableswitch

用于switch條件跳轉(zhuǎn),case值連續(xù)(可變長度指令)

0xab

lookupswitch

用于switch條件跳轉(zhuǎn),case值不連續(xù)(可變長度指令)

0xac

ireturn

從當(dāng)前方法返回int

0xad

lreturn

從當(dāng)前方法返回long

0xae

freturn

從當(dāng)前方法返回float

0xaf

dreturn

從當(dāng)前方法返回double

0xb0

areturn

從當(dāng)前方法返回對象引用

0xb1

return

從當(dāng)前方法返回void

0xb2

getstatic

獲取指定類的靜態(tài)域,并將其值壓入棧頂

0xb3

putstatic

為指定的類的靜態(tài)域賦值

0xb4

getfield

獲取指定類的實(shí)例域,并將其值壓入棧頂

0xb5

putfield

為指定的類的實(shí)例域賦值

0xb6

invokevirtual

調(diào)用實(shí)例方法

0xb7

invokespecial

調(diào)用超類構(gòu)造方法,實(shí)例初始化方法,私有方法

0xb8

invokestatic

調(diào)用靜態(tài)方法

0xb9

invokeinterface

調(diào)用接口方法

0xba

--

0xbb

new

創(chuàng)建一個(gè)對象,并將其引用值壓入棧頂

0xbc

newarray

創(chuàng)建一個(gè)指定原始類型(如int, float, char…)的數(shù)組,并將其引用值壓入棧頂

0xbd

anewarray

創(chuàng)建一個(gè)引用型(如類,接口,數(shù)組)的數(shù)組,并將其引用值壓入棧頂

0xbe

arraylength

獲得數(shù)組的長度值并壓入棧頂

0xbf

athrow

將棧頂?shù)漠惓伋?/p>

0xc0

checkcast

檢驗(yàn)類型轉(zhuǎn)換,檢驗(yàn)未通過將拋出ClassCastException

0xc1

instanceof

檢驗(yàn)對象是否是指定的類的實(shí)例,如果是將1壓入棧頂,否則將0壓入棧頂

0xc2

monitorenter

獲得對象的鎖,用于同步方法或同步塊

0xc3

monitorexit

釋放對象的鎖,用于同步方法或同步塊

0xc4

wide

待補(bǔ)充

0xc5

multianewarray

創(chuàng)建指定類型和指定維度的多維數(shù)組(執(zhí)行該指令時(shí),操作棧中必須包含各維度的長度值),并將其引用值壓入棧頂

0xc6

ifnull

為null時(shí)跳轉(zhuǎn)

0xc7

ifnonnull

不為null時(shí)跳轉(zhuǎn)

0xc8

goto_w

無條件跳轉(zhuǎn)(寬索引)

0xc9

jsr_w

跳轉(zhuǎn)至指定32位offset位置,并將jsr_w下一條指令地址壓入棧頂

javac命令和java命令做什么事情

javac命令是用來編譯源代碼文件的,即xxx.java文件的, 如:javac Test.java 這樣就會生成Test.class文件。

java 是運(yùn)行java程序的,即執(zhí)行類的,比如:java Test 就可以運(yùn)行剛生成的Test.class文件

java 代碼混淆 用什么命令

Jocky的下載和配置

OperaMasks上的下載鏈接已經(jīng)失效,請移步CSDN自行搜索下載

1、下載完成后解壓得到名為org.apusic.jocky_1.0.3的文件夾,把這個(gè)文件夾放到eclipse根目錄的plugins文件夾下(myeclipse和eclipse同理)。

2、重啟eclipse,右鍵一個(gè)工程文件,出現(xiàn)Jocky選項(xiàng)說明OK。

3、一般是先進(jìn)行設(shè)置-Jocky Settings,然后進(jìn)行Jocky Now!。以下是settings界面

Enable Jocky多選框選中

Jocky build file是在項(xiàng)目創(chuàng)建一個(gè)xml文件,根據(jù)里面的配置進(jìn)行混淆

Scramble level是進(jìn)行混淆的代碼等級,有none、private、package、protected、public、all,將根據(jù)設(shè)置對java文件中的相應(yīng)修飾符修飾的方法代碼進(jìn)行混淆

Target VM是java虛擬機(jī)的版本,有1.4和1.5,一般選擇1.5

Output directory是輸出文件夾,在項(xiàng)目根目錄下

點(diǎn)擊確認(rèn)會自動根據(jù)項(xiàng)目的設(shè)置生成xml文件

4、jocky_build.xml,實(shí)際上是一個(gè)ant build文件,由系統(tǒng)自動生成,有幾處需要說明

pathelement location="bin"/ pathelement location="XXX.jar"/這類標(biāo)簽代表項(xiàng)目編譯所需的jar包,由于是自動生成一般不用理睬,如果出現(xiàn)找不到相關(guān)的package之類的報(bào)錯(cuò),那么有可能是location路徑有問題。如果你安裝系統(tǒng)時(shí)是用戶名設(shè)置成了中文名,并且使用了maven,maven的jar包的下載路徑設(shè)置成了默認(rèn)${user}/.m2/repository/,那么jocky這里的路徑會出現(xiàn)問題,中文名的用戶名會亂碼或者消失,請修改maven配置xml文件修改下載路徑localRepository[自己指定的路徑]/localRepository 。

javac destdir="${jocky.output.dir}/bin" target="${target}" encoding="UTF-8" 代碼中如果有中文名,必須手動設(shè)定編碼,默認(rèn)是沒有的。

src path="src"/ 設(shè)定源文件的目錄,因?yàn)橛袝r(shí)候我們只想輸出src目錄下的部分包而不是全部。


新聞名稱:java代碼不同指令 代碼和指令有什么區(qū)別
新聞來源:http://weahome.cn/article/hgdjhi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部