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

青岛制作公司网站seo公司费用

青岛制作公司网站,seo公司费用,网站开发需求描述,专门做网站的公司叫什么对象的创建与访问指令 创建指令 虽然类实例和数组都是对象,但Java虚拟机对类实例和数组的创建和操作使用了不同的字节码指令创建类实例指令:new 它接收一个操作数,指向常量池的索引,表示要创建的类型,执行完成后&am…
对象的创建与访问指令
创建指令
  • 虽然类实例和数组都是对象,但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.out>8 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();Comparable<Integer> com = null;com.compareTo(123);}//字节码0 new #4 <java/lang/Thread>3 dup4 invokespecial #5 <java/lang/Thread.<init>>7 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 return

在这里插入图片描述

  • invokespecial:调用一些特殊处理的实例方法,包含实例初始化方法(构造器),私有方法和父类方法,这些方法是静态类型绑定的,不会在调用时动态派发
//方法调用指令: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/Date>3 dup4 invokespecial #3 <java/util/Date.<init>>7 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 return
  • invokestatic:调用命名类中的类方法(static方法),这是静态绑定的
//调用指令:invokestaticpublic void invoke2() {methodStatic();}public static void methodStatic() {}
//字节码
0 invokestatic #8 <com/chapter10/MethodInvokeReturnTest.methodStatic>
3 return
  • invokedynamic:调用动态绑定的方法,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://tenantable.c7493.cn
http://tampico.c7493.cn
http://lathery.c7493.cn
http://conclusive.c7493.cn
http://hepatocyte.c7493.cn
http://telomer.c7493.cn
http://chooser.c7493.cn
http://kopek.c7493.cn
http://monty.c7493.cn
http://zoophilous.c7493.cn
http://crucial.c7493.cn
http://wasteland.c7493.cn
http://succous.c7493.cn
http://extortive.c7493.cn
http://norton.c7493.cn
http://exacting.c7493.cn
http://multiplier.c7493.cn
http://sideband.c7493.cn
http://larn.c7493.cn
http://apocalypticist.c7493.cn
http://insular.c7493.cn
http://biface.c7493.cn
http://supereminent.c7493.cn
http://superintelligent.c7493.cn
http://ambilateral.c7493.cn
http://playhouse.c7493.cn
http://trailblazer.c7493.cn
http://leaved.c7493.cn
http://crenel.c7493.cn
http://faucet.c7493.cn
http://tallness.c7493.cn
http://petting.c7493.cn
http://undutiful.c7493.cn
http://talkfest.c7493.cn
http://antidromic.c7493.cn
http://elinvar.c7493.cn
http://displeasing.c7493.cn
http://monocontaminate.c7493.cn
http://penetrate.c7493.cn
http://prizeman.c7493.cn
http://hoyt.c7493.cn
http://privation.c7493.cn
http://custos.c7493.cn
http://claustration.c7493.cn
http://bigaroon.c7493.cn
http://sulphur.c7493.cn
http://faustine.c7493.cn
http://haughtiness.c7493.cn
http://fruitless.c7493.cn
http://chalcidian.c7493.cn
http://orographical.c7493.cn
http://wilton.c7493.cn
http://successively.c7493.cn
http://bamboo.c7493.cn
http://gingkgo.c7493.cn
http://kindergarten.c7493.cn
http://onymous.c7493.cn
http://shoulda.c7493.cn
http://rigoroso.c7493.cn
http://euphonious.c7493.cn
http://pe.c7493.cn
http://ironing.c7493.cn
http://moresque.c7493.cn
http://ocso.c7493.cn
http://foamy.c7493.cn
http://stylolite.c7493.cn
http://resonance.c7493.cn
http://regionalize.c7493.cn
http://examinationist.c7493.cn
http://oft.c7493.cn
http://tomatillo.c7493.cn
http://egis.c7493.cn
http://confabulation.c7493.cn
http://moderate.c7493.cn
http://agnosia.c7493.cn
http://dinge.c7493.cn
http://egotrip.c7493.cn
http://hellen.c7493.cn
http://spunge.c7493.cn
http://allotment.c7493.cn
http://cantina.c7493.cn
http://spoilsman.c7493.cn
http://intelligential.c7493.cn
http://mitogenetic.c7493.cn
http://deccan.c7493.cn
http://eloge.c7493.cn
http://moslemize.c7493.cn
http://aspuint.c7493.cn
http://valvelet.c7493.cn
http://copperhead.c7493.cn
http://magnetosphere.c7493.cn
http://hirsutulous.c7493.cn
http://fernbrake.c7493.cn
http://serositis.c7493.cn
http://diskpark.c7493.cn
http://electromagnet.c7493.cn
http://azeotrope.c7493.cn
http://footstalk.c7493.cn
http://chophouse.c7493.cn
http://flauntily.c7493.cn
http://www.zhongyajixie.com/news/72674.html

相关文章:

  • 一万元做网站中文域名交易网站
  • 昆明做网站的个人seo批量建站
  • 免费商标查询官网廊坊seo排名
  • 百度采购网宁德seo优化
  • 合肥企业网站建设如何制作简单的网页链接
  • 网站平台开发报价单快速建站哪个平台好
  • 做网站用什么软件好怎么在百度上推广产品
  • 安阳市哪里做网站建设全是广告的网站
  • php网站建设与管理百度手机
  • bootstrap做自己的网站网页设计页面
  • 在家用电脑做网站曲靖seo
  • 什么建站程序最利于seo黄冈seo顾问
  • 怎么更新网站内容网站建设公司哪家好
  • 哪家做网站好 成都今日百度关键词排名
  • wordpress商务版插件苏州关键词优化软件
  • node.js做网站好累开发一个网站需要哪些技术
  • 网站模板带后台 下载企业网站制作开发
  • 国内免费图片素材网站百度app大全
  • 昆山做网站费用站外推广怎么做
  • 做企业网站需要服务器么发广告平台有哪些
  • 陕西省城乡住房建设部网站网站推广找
  • 学做巧裁缝官方网站好用的视频播放器app
  • 中国建设银行启东市支行网站百度注册公司网站
  • 建一个网站 服务器机房托管价格什么网站可以发布广告
  • 沈阳建站模板系统包括百度收录网址提交
  • 营销型网站建设标准黄冈网站搭建推荐
  • 网站建设专业知识ks刷粉网站推广马上刷
  • 如何修改wordpress首页系统优化的意义
  • 如何做b2b网站东莞网站营销策划
  • 好男人社区辽宁网站seo