在java代码开发经常会遇到打印出 [Ljava.lang.Object;@c17164 、 [Ljava.lang.String;@1fb8ee3 以[L 开头的类,
其实这个是某个类型的数组类。
package com.li.test;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
Object[] arrayObj=new Object[2];
arrayObj[0]=new Object();
arrayObj[1]=new Object();
System.out.println("Object类:"+new Object());
System.out.println("Object数组类:"+arrayObj);
String[] arrayStr=new String[2];
arrayStr[0]="1";
arrayStr[1]="2";
System.out.println("String数组类:"+arrayStr);
}
}
结果
Object类:java.lang.Object@de6ced
Object数组类:[Ljava.lang.Object;@c17164
String数组类:[Ljava.lang.String;@1fb8ee3
分享到:
相关推荐
数组类型的名称由其元素类型和一对方括号组成,比如int[]的数组类型名称为[I,String[]的数组类型名称为[Ljava.lang.String;。数组类提供了length属性,用于获取数组的长度。 Java.util包中提供了一系列的集合类,...
在JVM(Java虚拟机)内部,数组的类型表示更为复杂,如`[I`代表`int`数组,`[Ljava.lang.String;`代表`String`数组。这意味着在语言层面和JVM层面,数组的类型表示存在差异,JVM会自动生成相应的数组类型类,这使得...
.field private static final a:Ljava/lang/String;="hello"; 8. 方法声明 Smali语言中的方法声明使用“.method”关键字,例如: .method 权限修饰符 +静态修饰符(如果有) +方法名(参数类型)返回值类型; 例如: ...
数组类型的Class对象获取有些特殊,需要使用Java类型描述符,例如`"[D"`对应`double[]`,`"[[Ljava.lang.String;"`对应`String[][]`。 3. 反射`java.lang.Runtime`类 `java.lang.Runtime`类包含`exec`方法,可以...
获取数组类型的`Class`对象需要特殊的Java类型描述符,例如`"[D"`代表`double[]`,`"[[Ljava.lang.String;"`代表`String[][]`。 3. **反射操作**: - **创建对象**:通过`Class`对象的`getDeclaredConstructor()`...
jfieldID fieldID = env->GetFieldID(cls, "fieldName", "Ljava/lang/String;"); env->SetObjectField(obj, fieldID, newString); ``` 3. **处理Java数组:** JNI支持各种类型的数组,包括基本类型和引用类型。...
例如,对于 `java.lang.String` 类的一些构造方法,`javap -s java.lang.String` 可以显示如下签名: - `public java.lang.String()` -> `Signature: ()V` - `public java.lang.String(java.lang.String)` -> `...
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.lang.String 当尝试将一个对象数组转换为字符串时,会抛出此类异常。这通常发生在执行多表联查后,结果集中的每一项实际上是一个包含...
jmethodID constructor = env->GetMethodID(personClass, "<init>", "(Ljava/lang/String;I)V"); jobjectArray array = env->NewObjectArray(2, personClass, NULL); jstring name1 = env->NewStringUTF("张三")...
- **main([Ljava/lang/String;)V**:主方法,是程序的入口点,它接受一个字符串数组作为参数,返回值类型为`void`。 4. **其他属性**: - **Code**:表示方法体的字节码指令。 - **LineNumberTable**:提供了...
invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V return .end method ``` #### 四、类加载机制 1. **Java编译类加载器** - **JVM为每一个类加载器维护一个命名空间**:确保不同类加载器...
jfieldID instanceFieldID = (*env)->GetFieldID(env, javaClassClass, "instanceField", "Ljava/lang/String;"); jfieldID staticFieldID = (*env)->GetStaticFieldID(env, javaClassClass, "staticField", ...
"表示String数组。 - 掌握Java类文件中的调试信息和字节码的“汇编语言”。 - 这些知识将有助于深入理解Java的反射机制、泛型编程以及AOP(面向切面编程)技术。 总结来说,文档详细介绍了Java类文件的结构和分析...
方法的表示形式为`<方法名>(<参数类型列表>)<返回类型>`,例如`toString()Ljava/lang/String;`。 ###### 3.2.3 字段 字段表示为`<字段名>:<字段类型>`,例如`name:Ljava/lang/String;`。 ##### 3.3 Dalvik虚拟机...
pStruct->name = (jstring) env->GetObjectField(structObj, env->GetFieldID(env->GetObjectClass(structObj), "name", "Ljava/lang/String;")); // 对结构体进行操作 free(pStruct); } } } ``` #### 六、...
.field public static final SYSTEM_NAME:Ljava/lang/String;="Android" # 定义一个公开的、静态的方法 .method public static getBitmap(I[[IILjava/lang/String;[Ljava/lang/Object;)Landroid/graphics/Bitmap; ....
对象类型以 L 开头,如 `Ljava/lang/String;` 表示 String 对象。 - **内部类表示**:内部类在 Smali 中通过在类名后添加 `$` 符号表示,例如 `Lcom/example/MyClass$InnerClass;`。 ##### 5. 方法定义 在Smali中,...
@com.example.MyClass::myJavaMethod(Ljava/lang/String;)(["Hello from JavaScript!"]); } ``` - **指定重载方法**: - 当存在多个同名但参数类型不同的 Java 方法时,需要明确指定方法签名。 - 示例:处理...
* Signature: (Ljava/lang/String;)Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_JniDemo_passString (JNIEnv *, jobject, jstring); /* * Class: JniDemo * Method: passIntArray * Signature: (...