私はJavaバイトコードについて学んでいます。私はこのバイトコードプロセスByteCode命令:わかりましたか?
私は終了しませんでしたが、それはちょうど良い方法で開始すること..です
00000000 aload_0
// load param1 (String)
// Stack is [StringParam]
00000001 invokevirtual char[] java.lang.String.toCharArray()
// split variable in an array of char
// Stack is [ReferenceToCharArray] ?
00000004 dup
// duplicate the top of operand stack and put it back at the end
// Stack is now [ReferenceToCharArray ReferenceToCharArray]
00000005 arraylength
// Return array's length
// Stack is now [ReferenceToCharArray ArrayLength]
00000006 iconst_2
// push 2 in stack
// Stack is now [ReferenceToCharArray ArrayLength 2]
00000007 if_icmpge pos.00000013
// If the Array length is greater or equals to 2
// Stack is now [ReferenceToCharArray]
00000013 areturn
// Return the array
// Stack is empty
に正しく理解していた場合 私が知りたいのですが
にINVOKEVIRTUALによって返されたchar配列の長さを比較している何if_icmpgeが本当にやっている、なぜ近い票、それは有効な質問ですね? – bestsss
小さな質問ですが、コードから関数の戻り値の型が分かりますか? – bestsss
これは私が探している機能の一部です。戻り値の型はchar型の配列だと思います。 –