当前位置: 首页 > news >正文

做网站选择系统建筑公司取名字参考大全

做网站选择系统,建筑公司取名字参考大全,玛迪做网站,哪里有免费的网站域名对象的创建与访问指令 创建指令 虽然类实例和数组都是对象#xff0c;但Java虚拟机对类实例和数组的创建和操作使用了不同的字节码指令创建类实例指令#xff1a;new 它接收一个操作数#xff0c;指向常量池的索引#xff0c;表示要创建的类型#xff0c;执行完成后但Java虚拟机对类实例和数组的创建和操作使用了不同的字节码指令创建类实例指令new 它接收一个操作数指向常量池的索引表示要创建的类型执行完成后将对象的引用压入操作数栈 创建数组的指令 创建数组的指令newarray,arewarray,multianewarray newarray创建基本类型数组anewarray创建引用类型数组multianewarray创建多维数组 字段访问指令 对象创建后可能通过对象访问指令获得对象实例或数组实例中的字段或数组元素 访问字段(static字段或称为类变量)的指令getstatic,putstatic访问类实例字段(非static字段可实例变量)getfield,putfield 如以getstatic指令为例它含有一个操作数为指向常量池的Fieldref索引它的作用是获取Fieldref指定的对象或者值并将其压入操作数栈 public void sayHello() {System.out.println(hello);} //对应字节码 0 getstatic #8 java/lang/System.out 3 ldc #9 hello 5 invokevirtual #10 java/io/PrintStream.println 8 return数组操作指令 数组操作指令主要有xastore和xaload指令 把一个数组元素加载到操作数栈的命令baload,caload,saload,iaload,laload,faload,daload,aaload将一个操作数栈的值存储到数组元素中的指令bastore,castore,sastore,iastore,lastore,fastore,dastore,aastore 取数组长度的指令arraylength 该指令弹出栈顶的数组元素获取数组的长度将长度压入栈 public void arrLength() {double[] arr new double[10];System.out.println(arr.length);}//字节码0 bipush 102 newarray 7 (double)4 astore_15 getstatic #8 java/lang/System.out8 aload_19 arraylength //获取数组长度 10 invokevirtual #14 java/io/PrintStream.println 13 return说明 指令xload表示将数组的元素压栈如saload,caload表示压入short数组和char数组指令xaload在执行时要求操作数中栈顶元素为数组索引i,栈顶顺位第二个元素为数组引用a,该指令会弹出栈顶这两个元素并将a[i]重新压入堆栈xastore则专门针对数组操作以iastore为例它用于给一个int数组的给定索引赋值在iastore执行前操作数栈顶需要以此准备3个元素值、索引、数组引用istore会弹出这三个值并将值败给数组中指定索引的位置 public void setArray() {int[] intArray new int[10];intArray[3] 20;System.out.println(intArray[1]);} //字节码0 bipush 102 newarray 10 (int)4 astore_1//----------------对应intArray[3] 205 aload_1 //数组地址6 iconst_3 //索引7 bipush 20 //值9 iastore //----------------对应intArray[3] 20 10 getstatic #8 java/lang/System.out //----------------对应intArray[1] 13 aload_1 //数组地址 14 iconst_1 //数组索引 15 iaload //----------------对应intArray[1] 16 invokevirtual #14 java/io/PrintStream.println 19 return类型检查指令 检查类实例或数组类型的指令instanceof,checkcast 指令checkcast用于检查类型强制转换是否可以进行如果可以进行那么checkcast指令不会改变操作数栈否则它会抛出CassCastException异常指令instanceof用来判断是否是某一个类的实例它会将判断结果压入操作数栈 public String checkCast(Object obj) {if (obj instanceof String) {return (String)obj;} else {return null;}} //字节码指令0 aload_11 instanceof #17 java/lang/String //判断是否为String即obj instanceof String4 ifeq 12 (8)7 aload_18 checkcast #17 java/lang/String //强转 11 areturn 12 aconst_null 13 areturn方法调用与返回指令 方法调用指令 方法调用指令invokevirtual,invokeinterface,invokespecial,invokestatic,invokedynamic invokevirtual用于调用对象的实例方法根据对象的实际类型进行分派(虚方法分派)支持多态是最常见的方法分派方式invokeinterface用于调用接口方法它会在运行时搜索由特定对象所实现的这个接口方法并找出适合的方法进行调用 //方法调用指令invokeinterfacepublic void invoke3() {Thread t1 new Thread();((Runnable)t1).run();ComparableInteger com null;com.compareTo(123);}//字节码0 new #4 java/lang/Thread3 dup4 invokespecial #5 java/lang/Thread.init7 astore_18 aload_19 invokeinterface #9 java/lang/Runnable.run count 1 //调用接口方法 14 aconst_null 15 astore_2 16 aload_2 17 bipush 123 19 invokestatic #10 java/lang/Integer.valueOf 22 invokeinterface #11 java/lang/Comparable.compareTo count 2 27 pop 28 returninvokespecial调用一些特殊处理的实例方法包含实例初始化方法(构造器)私有方法和父类方法这些方法是静态类型绑定的不会在调用时动态派发 //方法调用指令invokespecial:静态分派public void invoke1() {//情况1类实例构造器方法Date date new Date();Thread t1 new Thread();//情况2调用父类方法super.toString();//情况3私有方法methodPrivate();}private void methodPrivate() {} //字节码指令0 new #2 java/util/Date3 dup4 invokespecial #3 java/util/Date.init7 astore_18 new #4 java/lang/Thread 11 dup 12 invokespecial #5 java/lang/Thread.init //构造器调用 15 astore_2 16 aload_0 17 invokespecial #6 java/lang/Object.toString //父类方法调用 20 pop 21 aload_0 22 invokespecial #7 com/chapter10/MethodInvokeReturnTest.methodPrivate //私有方法调用 25 returninvokestatic调用命名类中的类方法(static方法)这是静态绑定的 //调用指令invokestaticpublic void invoke2() {methodStatic();}public static void methodStatic() {} //字节码 0 invokestatic #8 com/chapter10/MethodInvokeReturnTest.methodStatic 3 returninvokedynamic调用动态绑定的方法JDK1.7新加入的指令用于在运行时动态解析出调用点限定符所引用的方法并执行该方法前4条调用指令的分派逻辑都固化在java虚拟机内部而invokedynamic指令的分派逻辑是由用户所设定的引导方法决定的 方法返回指令 方法调用结束前需要进行返回方法返回指令是根据返回值的类型区分的 包括ireturn(boolan,byte,char,short和int类型使用),lreturn,freturn,dreturn和areturn还有一条return指令供声明为void的方法实例初始化方法以及类和接口的类初始化方法使用 举例 通过ireturn指令将当前函数操作数栈的顶层元素弹出并将这个元素压入调用者函数的操作数栈中所有在当前函数操作数栈中的其他元素都会被丢弃如果当返回值是synchronized方法那么还会执行一个隐含的monitorexit指令退出临界区最后会丢弃当前方法的整个帧恢复调用者的帧并将控制权转交给调用者 //方法返回指令public int returnInt() {int i 200;return i;} //字节码 0 sipush 200 3 istore_1 4 iload_1 5 ireturnpublic double returnDouble() {return 0.0;}//字节码0 dconst_0 1 dreturnpublic String returnString() {return hello,world;} //字节码 0 ldc #16 hello,world 2 areturnpublic int[] returnArr() {return null;}//字节码public float returnFloat() {int i 10;return i;} //字节码 0 bipush 10 2 istore_1 3 iload_1 4 i2f 5 freturnpublic byte returnByte() {return 0;} //字节码 0 iconst_0 1 ireturn
http://www.hkea.cn/news/14339059/

相关文章:

  • 个人网站教程南昌企业网站设计公司
  • 广东省建设工程质量安全协会网站深圳市建设股份有限公司
  • 重庆网站服务建设试题wordpress的特点
  • ios风格网站模板用系统建购物网站
  • 网站建设代码容易出错wordpress的开发文档
  • 网站免备案创意合肥网站建设
  • 网站做弹窗广告吗做p2p网站多少钱
  • 如皋官方网站建设什么地铁西安住房和城乡建设部网站
  • 新网站关键词怎么优化网站网页设计0基础学
  • 电商的网站开发订单返利功能微软做网站
  • 新网站怎么做论坛推广dw个人网页制作模板源代码
  • 电子商务网站建设系统特点建立网站的公司有哪些
  • 电子商务 网站开发小加工厂怎样找订单
  • 电脑咋建网站腾讯企点怎么群发
  • 做虚假网站犯法吗经典营销案例
  • 下载中国建设银行网站免费wap网站推荐
  • 网站做排名教程官方网站首页
  • 博客网站开发教程公司网站非响应式
  • 杭州做企业网站idc科技公司网站模板
  • 网站seo方案建议网站托管费用
  • 做网站需要什么服务器配置wordpress square主题
  • asp做网站很少中国搜索引擎网站排名
  • 发表文章静态网页模板吴中seo外链推广工具
  • seo优化是什么职位同时做几个网站的seo
  • 淘宝有做网站吗汕头住房与城乡建设网站
  • 胶南建网站上海建设钢结构工程网站
  • 太仓网站制作抚州市临川区建设局网站
  • 银川如何做百度的网站无法使用wordpress
  • 网站制作里面链接怎么做可以做积分的网站
  • 东营市建设网站石家庄网站搭建公司