精华内容
下载资源
问答
  • go最大优势:就是执行速度开发效率都很出色,从语言级别支持并发,执行速度快是因为go是编译型静态语言,他在执行速度上比解释型语言具有先天的优势,生产效率高是基于go的语法结构简明,易学易用。 go语言的...

     

    目录

    go语言的简介:

    go语言特性

    1、高并发:

    2、内存回收(GC):

    3、内存分配:

    4、编译:

    5、网络编程

    6、函数多返回值

    7、语言交互性

    8、异常处理

    9、其他特性:

    go语言可以做什么:


    go最大优势:就是执行速度和开发效率都很出色,从语言级别支持并发,执行速度快是因为go是编译型静态语言,他在执行速度上比解释型语言具有先天的优势,生产效率高是基于go的语法和结构简明,易学易用。

     

    go语言的简介:

    1、go代码编译成机器码非常迅速

    2、具有方便的垃圾收集机制和强大的运行时反射机制

    3、是一个快速的,静态类型的编译型语言,感觉却像动态类型的解释型语言

    4、go语言据有很强的表达能力,它简洁,清晰,高效,go语言推崇的思想是大道至简,小而蕴真

     

    go语言特性

    1、高并发:

    go语言最大亮点的特性就是并发编程,且编程简单,高并发也是未来高性能场景的中重要筹码,不同于多线程和多进程,go语言的并发执行单元是gorountine的协程,协程又称微线程,比线程更轻量,开销更小,性能更高,操作简单,关键字go用于启动协程,并且可以在同一台机器上可以启动成千上万个协程,协程间一般由应用程序显式实现调度,上下文切换无需下到内核层,高效不少。协程间通信靠独有的channel机制实现

    2、内存回收(GC):

    内存自动回收,再也不需要开发人员进行内存的管理,只需要new进行分配内存,不需要进行释放,GC的过程是:先stop the world ,扫描所有对象判活,把可回收的对象在一段bitmap区中标记下来,接着立即start the world,恢复服务,同时起一个gorountine回收内存到空闲list中以备复用,不进行物理释放,物理释放由专门线程定期执行,GC瓶颈在于每次都要扫描所有对象判活,待收集的对象越多,就越慢,GC性能可以随着版本不断更新会不断优化。

    3、内存分配:

    在初始化阶段直接分配一块大内存区域,然后切割跟程各个大小等级的内存块,放到不同的空闲list中,对象分配空间时从空闲list中取出大小相当的内存块,内存回收时,会把不用的内存重新放到空闲的list,空闲内存会按照一定策略合并,以减少碎片

    4、编译:

    编译快也是go语言的一大亮点之一,目前golang有两种编译器,一种是建立在GCC基础上的Gccgo。另外是分贝针对64位*64和32位*86计算机的一套编译器,go语言依赖的第三方库基本上都是在github上,所以在代码的import中加上对应的github路径就可以使用了,库会默认下载到工程的pkg目录下。编译的时候会默认检查代码中所有实体的使用情况,凡事没有使用的package或者是变量,都会编译不通过,这也是go语言比较严谨的地方。

    5、网络编程

    go语言诞生在互联网时代,天生具备了去中心化,分布式等特性,表现为提供了丰富便捷的网络编程接口,比如socket用net.Dial(基于tcp/udp,封装了传统的connect,listen,accept等接口),http用http.Get/Post(),rpc用client.Call,在go语言中还有一个重要的能力,就是自带高性能HttpServer,通过简单的代码调用,就可以得到基于协程的高性能服务,更重要的是,维护成本低,没有任何依赖。

    6、函数多返回值

    允许函数返回多个值,在某种场景下,可以有效的简化编程,go语言推荐的编程风格,是函数返回的最后一个参数为error类型(只要逻辑体中可能出现异常),这样,在语言中支持多个返回值就很必要了

    7、语言交互性

    语言交互性是指本语言和其他语言之间的交互,比如可以调用其他语言编译的库,go和以和c程序进行交互,在go语言中直接重用了大部分c模块。

    8、异常处理

    如果是普通异常:产看被调用方返回error对象

    如果是严重异常:3个关键字defer,panic,recover,defer是函数结束后执行,先进后出,panic是程序出现无法修复的错误时使用,但会让defer执行完,recover会修复错误,不至于程序终止,当不确定函数不会出错的时候使用defer+recover

    9、其他特性:

    类型推导:在定义变量的时候支持var ABC= 10 这样的语法,看起来像动态类型的语言,但是go其实是强类型的,是因为前面定义会被推导出int类型

    接口interface:一个类型只要实现了某个interface的所有方法,即可实现该interface,无需显式去继承,go编程规范推荐每个interface只提供一到两个的方法,这样使得每个接口的目的非常清晰

    defer 机制:提供关键字defer,可以通过该关键字制定需要延迟执行的逻辑体,就是在函数体return前或出现panic时执行,这种机制非常适合善后逻辑处理,比如可以尽早避免可能出现的资源泄漏问题,可以说defer是继goroutine和channle之后另一个非常重要,实用的语言特性,对defer的引入,在很大程度上可以简化编程,并且在语言描述上显的更为自然,极大的增强了代码的可读性

    包的概念:和python一样,包的作用是提高代码的复用性

    交叉编译:比如说可以在linux系统上开发windows下运行的程序。

     

     

    go语言可以做什么:

    1、服务器编程语言

    2、分布式系统,数据库代理器,中间件等

    3、网络编程

    4、数据库操作

    5、开发云平台

     

     

     

     

    展开全文
  • 但是在javascript中,由于javascript的动态解释执行,当然也有简单的预编译过程),this的指向在运行时才确定。这个特性在给我们带来迷惑的同时也带来了编程上的自由灵活,结合apply(call)方法,可以使JS变得...
    
    

    通过一段代码学习javascript基础知识系列


    第二节 - this用法


    this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象。但是在javascript中,由于javascript的动态性(解释执行,当然也有简单的预编译过程),this的指向在运行时才确定。这个特性在给我们带来迷惑的同时也带来了编程上的自由和灵活,结合apply(call)方法,可以使JS变得异常强大。



    this指向的对象,可以通过以下三点区分:


    1. .当函数仅仅作为函数执行的时候,this指向的是全局的。

    2. .当函数作为构造函数执行的时候,this指向的是当前创建的对象。

    3. .当函数作为对象的方法执行的时候,this指向的是当前的对象。




    注意:

    为了便于执行和演示,建议使用chrome浏览器,按F12,然后按Esc(或手动选择)打开console,在console进行执行和演示。

    由于代码中使用了console.log或dir方法,因此如果在ie中执行,请自行替换为alert或注释掉。


    下面通过代码来解释上述三点。


    一、当函数作为函数执行的时候

    有以下函数:

    function A(){
    this.a = "isea533";
    console.log(this.a);
    }

    依次在console中输入(请不要输入注释内容):


    //创建函数A()

    function A(){
    this.a = "isea533";
    console.log(this.a);
    }

    undefined

    //输入a,查看全局变量a

    a

    //返回结果为a 未定义

    ReferenceError: a is not defined

    //执行函数A() -- 这里是作为函数执行

    A()

    //console.log输出结果

    isea533

    undefined

    //输入a,查看全局变量

    a

    //此时a已经有值了,说明函数A()执行的this.a是全局的。

    "isea533"

    //给全局a赋值1

    a = 1;

    1

    //输入a,查看全局变量此时结果为1

    a

    1

    //再次执行函数A

    A();

    isea533

    undefined

    //函数A执行后,a的值发生改变,从1变成isea533

    a

    "isea533"


    上面的执行结果已经可以说明,当作为函数执行的时候,this为全局的。


    二、当函数作为构造函数执行的时候

    仍然使用上述函数A()

    依次在console中输入(请不要输入注释内容):


    function A(){
    this.a = "isea533";
    console.log(this.a);
    }

    undefined

    //创建对象obj,构造函数执行过程中输出this.a

    var obj = new A();

    isea533

    undefined

    //查看对象的属性a

    obj.a

    "isea533"

    //创建对象obj2

    var obj2 = new A();

    isea533

    undefined

    //查看obj2的属性a

    obj2.a

    "isea533"

    //改变obj的属性a的值

    obj.a = "isea";

    "isea"

    //查看obj2的属性a的值,没有改变

    obj2.a

    "isea533"

    //查看全局变量a,结果为未定义

    a

    ReferenceError: a is not defined


    三、当函数作为对象的方法执行的时候

    其实第三条可以归到第二条中,因为这结果是显而易见的,这里主要是为了说明一些常见的情况,所以特地单独讲解。

    有如下html代码:

    <input type="text" id="username" value="isea533" οnclick="console.log(this.value)"/>
    <input type="text" id="age" value="30" />
    <script>
    	function A(){
    		console.log(this.value);
    	}
    	document.getElementById("age").onclick = A;
    </script>

    在这两种方式中,我们可以看到this在这里就是指向的相应的input对象。

    这是由于我们把onclick事件添加到了Dom对象上,所以this会指向当前的Dom对象,而不是全局对象。


    我们在看另一种情况:

    依次在console中输入(请不要输入注释内容):


    //创建全局变量a

    var a = "isea533";

    undefined

    //创建函数A

    function A(){
    console.log(this.a);
    }

    undefined

    //创建对象c,c有属性a

    var c = {a:"isea"}

    undefined

    //向c增加方法log = A;

    c.log = A;

    function A(){
    console.log(this.a);
    }

    //执行c的log方法,输出c的属性a而不是全局的a

    c.log();

    isea

    undefined

    //查看全局对象a,值没有发生改变

    a

    "isea533"

    //执行函数A,输出全局对象a的值

    A();

    isea533

    undefined

    //新建对象e = A

    var e = A;

    undefined

    //执行e,这里e()和A()是一样仅仅作为函数执行的,e是函数,不是对象

    e()

    isea533

    undefined

    //我们使用toString.call验证一下,这里e是Function

    toString.call(e)

    "[object Function]"

    //这里c是Object

    toString.call(c)

    "[object Object]"


    通过上面的例子代码,我想你应该对this有一定的了解了,了解this指向在Js编程过程中非常的有用,了解这一点可以在使用过程中方便许多,也能避免出错。




    相关阅读:

    阮一峰:Javascript的this用法



    展开全文
  • thisarguments

    2010-06-17 18:12:00
    但是在javascript中,由于javascript的动态解释执行,当然也有简单的预编译过程),this的指向在运行时才确定。这个特性在给我们带来迷惑的同时也带来了编程上的自由灵活,结合apply(call)方法,可以使JS变得...

    this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象。但是在javascript中,由于javascript的动态性(解释执行,当然也有简单的预编译过程),this的指向在运行时才确定。这个特性在给我们带来迷惑的同时也带来了编程上的自由和灵活,结合apply(call)方法,可以使JS变得异常强大。

    2.变化的this
    在JavaScript中,this通常指向的是我们正在执行的函数本身,或者是指向该函数所属的对象(运行时)。当我们在页面中定义了函数doSomething()的时候,它的owner是页面,或者是JavaScript中的window对象(或global对象)。对于一个onclick属性,它为它所属的HTML元素所拥有,this应该指向该HTML元素。

    2.1在几种常见场景中this的变化

    函数示例
    function doSomething ()
    {
    alert(this.navigator); //appCodeName
    this.value = "I am from the Object constructor";
    this.style.backgroundColor = "# 000000";
    }
    1. (A)作为普通函数直接调用时,this指向window对象.

    2. (B)作为控件事件触发时

    1) inline event registration 内联事件注册 .将事件直接写在HTML代码中(<element

    οnclick=”doSomething()”>), 此时this指向 window对象 。

    2) Traditional event registration 传统事件注册 (DHTML方式).
    形如 element.onclick = doSomething; 此时this指向 element对象

    3) <element οnclick=”doSomething(this)”>作为参数传递可以指向element

    3. (C)作为对象使用时this指向当前对象。形如:new doSomething();
    4. (D)使用apply 或者call方法时,this指向所传递的对象。

    形如:var obj={}; doSomething.apply(obj,new Array(”nothing”); //thisobj
    2.2 this 指向分析

    1 A场景。
    直接调用的情况下,doSomething的运行时拥有者是window对象,因此this指向window
    图示:

    图1:A场景

    2 B场景。
    1)Traditional Event Registration
    当我们要让函数中的this指向当前HTMLELEMENT时,可这样写
    element.onclick = doSomething;
    doSomething的引用(地址)赋给了element的onclick属性(这样就成为了函数)。此时
    doSomething运行时拥有者(owner)就变成了element,this便指向了element。

    图示:

    图2: B场景 Traditional Event Registration

    进行批量添加事件时,this均可正确指向。

    图示:

    图3: 多次Traditonal Event Registration

    2) Inline Event Registration
    形如 <element οnclick=”doSomething()”>
    图示:

    图4:B场景 Inline Event Registration

    这两种注册方式的区别是
    element.onclick = doSomething;
    alert(element.onclick)
    可以得到
    function doSomething() {
    alert(this.navigator); //appCodeName
    this.value = "I am from the Object constructor";
    this.style.backgroundColor = "# 000000";
    }
    可以看到this关键字被展现在onclick函数中,它指向HTML元素。

    如果执行
    <element οnclick="doSomething()">
    al ert(element.onclick)

    可以得到 :
    function onclick(){
    doSomething();
    }

    这仅仅是对doSomething()函数的一次调用,而doShomething的拥有者是window,因此 doSomething内的this指向window对象(啰嗦哦…….).

    3 . C场景
    具体内部细节不太了解,不知道是否可以这样理解
    new doSomething(…..)
    约等同于
    var tempObj = {}; doSomething.apply(obj,new Array());
    这样tempObj 可以得到doSomething内所定义的属性和方法,但是对 于 doSomething.prototype上的属性方法无法得到-_-!!

    4 D场景
    不懂…..

    完了
    不专业,比较浅显,想不出几个专有名词,郁闷~

    PS 1:好多内容是copy的(*_*!),对图中表达有点疑意。图上多次写出 copy of function ,按照字面理解是函数对象的拷贝,我认为实际上是一个引用拷贝,对象拷贝是不可能的,如果是这样的话,每次添加事件都会拷贝一次对象,这显然不妥。

    PS 2: 因为this指向在运行时才确定,我们经常碰到一个问题,当给一个DOM对象添加事件后,我们希望this指向一个指定对象,而非DOM对象本身,如下例。
    <input type="button" id='btn' />
    <script language="javascript">function btnObj(id)
    {
    this.disabled = true;
    this.btn=document.getElementById(id);
    /*
    this.btn.onclick = btnOnclick ;
    假如我们这样写,this会指向DOM对象,btnOnclick执行过程会报错
    因为DOM btn并没有一个btn属性
    */
    //通过这种方式可以解决这个问题[有些情况也可用tempThis = this这种形式]
    this.btn.onclick = passHandler(this,btnOnclick);}function btnOnclick()
    {

    //如果this是DOM对象,这里就会报错,因为没有btn属性
    this.btn.disabled = this.disabled;
    }

    function passHandler(obj,fun,arg)
    {
    return function(){
    //if(!arg) {var arg = [];}
    return fun.apply(obj,(arg?arg:[]));
    }
    }

    new btnObj(”btn”);
    </script>

     

    arguments 属性

    为当前执行的 function 对象返回一个arguments 对象。

    function.arguments

    function 参数是当前执行函数的名称,可以省略。

    说明

    通过 arguments 属性,函数可以处理可变数量的参数。 arguments 对象的 length 属性包含了传递给函数的参数的数目。对于arguments 对象所包含的单个参数,其访问方法与数组中所包含的参数的访问方法相同。

    示例

    下面的例子说明了 arguments 属性的用法:

    function ArgTest(){ var i, s, numargs = arguments.length; s = numargs; if (numargs < 2) arguments 属性

    为当前执行的 function 对象返回一个arguments 对象。

    function.arguments

    function 参数是当前执行函数的名称,可以省略。

    说明

    通过 arguments 属性,函数可以处理可变数量的参数。 arguments 对象的 length 属性包含了传递给函数的参数的数目。对于arguments 对象所包含的单个参数,其访问方法与数组中所包含的参数的访问方法相同。

    示例

    下面的例子说明了 arguments 属性的用法:

    function ArgTest(){ var i, s, numargs = arguments.length; s = numargs; if (numargs < 2)

    在举个列子

    <script language="JavaScript">
    /**//*
    * 演示arguments的用法,如何获取实参数和形数数
    */
    function argTest(a,b,c,d){
    var numargs = arguments.length; // 获取被传递参数的数值。
    var expargs = argTest.length; // 获取期望参数的数值。
    alert("实参数目为:"+numargs)
    alert("形数数目为:"+expargs)

    alert(arguments[0])
    alert(argTest[0]) //undefined 没有这种用法
    }
    //argTest(1,2)
    //argTest(1,2,3,4,5)

    /**//*
    * arguments不是数组(Array类)
    */

    Array.prototype.selfvalue = 1;
    function testAguments(){
    alert("arguments.selfvalue="+arguments.selfvalue);
    }
    //alert("Array.sefvalue="+new Array().selfvalue);
    //testAguments();

    转载于:https://www.cnblogs.com/delin/archive/2010/06/17/1759711.html

    展开全文
  • 牛客网刷题笔记--java

    2018-03-27 16:24:07
    1.try-catch-finally中,try块中抛出异常,try、catchfinally中都有return语句,返回值是finally中的return。...如C、C++、Delphi等解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门...

    1.try-catch-finally中,try块中抛出异常,try、catch和finally中都有return语句,返回值是finally中的return。

    2.编译型语言的首先将源代码编译生成机器语言,再由机器运行机器码二进制)。像C/C++等都是编译型语言。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等

    解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。如JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等
    Java不同于一般的编译语言和直译语言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性, 所以说java是一种解释型的语言

    展开全文
  • java基础知识复习

    2018-10-02 13:51:10
    1、Java语言的优点: 1)Java是纯面向对象语言 2)与平台无关,一次编译到处运行 3)Java提供了很多内置类库 4)提供了对web应用的支持 5)具有较好的安全(数组边界检测、...1)Java为解释型语言,c++为编译型...
  • 1、Java语言的优点:1)Java是纯粹的面向对象语言2 )不依赖平台,在一次编译中到处工作3)Java提供了冷酷的嵌入式类库4 )提供web应用程序支持5 )安全(数组边界检测...1)Java是解释型语言,C是编译型语言,Java虽然慢...
  • 1、Java语言的优点: 1)Java是纯面向对象语言 2)与平台无关,一次编译到处运行 ...1)Java为解释型语言,c++为编译型语言,java会慢但是跨平台 2)Jave为纯面向对象,c++既面向对象又能面向过程。Jave无全局变量
  • JVM知识导图

    2020-10-30 11:35:44
    java是解释型语言还是编译性语言 BEA JRocket IBM J9 OpenJ9 class 文件 文件概览 魔数 class文件版本 Class常量池 访问标志 类索引,父索引 接口索引 字段表 方法表 属性表 字节码指令 字节码与数据类型 ...
  • 【转载注明出处,还望尊重原创 】 1、Java语言的优点: 1)Java是纯面向对象语言 2)与平台无关,一次编译到处运行...1)Java为解释型语言,c++为编译型语言,java会慢但是跨平台 2)Jave为纯面向对象,c++既面向对象又.
  • java为解释型语言; Java提供了很多内置类库,提高了开发效率; 提供了对Web应用开发的支持,如:Applet、ServletJSP开发Web应用;Socket、RMI开发分布式应用程序的类库; 具有很好的安全性和健壮。如:Java的强...
  • 健壮:强制机制、异常处理、垃圾自动回收; 跨平台: Java 通过JVM 实现了跨平台技术, Java 源代码(*.java)经过 Java的编译器 编译成,Java字节码(*.class),执行Java字节码, Java字节码经过JVM的...
  •  6、解释型语言:Java程序在Java平台上被编译为字节码格式, Java解释器对这些字节码进行解释执行。  7、多线程:Java语言支持多线程,并提供多线程之间的同步机制。  本系统采用java作为开发语言,来实现安全的...
  • javascript中的this用法

    2016-04-06 21:09:00
    但是在javascript中,由于 javascript的动态解释执行,当然也有简单的预编译过程),this的指向在运行时才确定。这个特性在给我们带来迷惑的同时也带来了编程上的 自由灵活,结合apply(call)方法,可以使JS变...
  • javascript 中的 this

    2013-08-31 10:29:41
    但是在javascript中,由于 javascript的动态解释执行,当然也有简单的预编译过程),this的指向在运行时才确定。这个特性在给我们带来迷惑的同时也带来了编程上的 自由灵活,结合apply(call)方法,可以使JS变...
  • Java虚拟机

    2018-01-20 13:22:29
    讲解了虚拟机的热点探测方法、HotSpot的即时编译器、编译触发条件,以及如何从虚拟机外部观察分析JIT编译的数据结果;第五部分探讨了Java实现高效并发的原理,包括JVM内存模型的结构操作;原子、可见性和...
  • 但是在javascript中,由于 javascript的动态解释执行,当然也有简单的预编译过程),this的指向在运行时才确定。这个特性在给我们带来迷惑的同时也带来了编程上的 自由灵活,结合apply(call)方法,可以使JS变...
  • javascript this用法小结

    2012-10-30 11:39:06
    但是在javascript中,由于 javascript的动态解释执行,当然也有简单的预编译过程),this的指向在运行时才确定。这个特性在给我们带来迷惑的同时也带来了编程上的自由灵活,结合apply(call)方法,可以使JS变得...
  • javascript中this用法

    2012-04-14 12:06:55
    但是在javascript中,由于 javascript的动态解释执行,当然也有简单的预编译过程),this的指向在运行时才确定。这个特性在给我们带来迷惑的同时也带来了编程上的 自由灵活,结合apply(call)方法,可以使JS变...
  • this,小心!

    2014-08-18 23:58:00
    但是在JS中,由于 javascript的动态解释执行,当然也有简单的预编译过程),this的指向在运行时才确定。这个特性让我们有时会给乱了方向,如果掌握了它的工作原理,那么它给我们带来了编程上的 自由灵活,结合...
  • js中this 用法

    2011-03-11 14:58:49
    但是在javascript中,由于 javascript的动态解释执行,当然也有简单的预编译过程),this的指向在运行时才确定。这个特性在给我们带来迷惑的同时也带来了编程上的 自由灵活,结合apply(call)方法,可以使JS变...
  • 但是在javascript中,由于javascript的动态解释执行,当然也有简单的预编译过程),this的指向在运行时才确定。这个特性在给我们带来迷惑的同时也带来了编程上的自由灵活,结合apply(call)方法,可以使JS变得...
  • Python核心编程第二版(中文)

    热门讨论 2015-04-23 16:40:13
    1.3.12 解释性和(字节)编译性 1.4 下载安装Python 1.5 运行Python 1.5.1 命令行上的交互式解释器 1.5.2 从命令行启动脚本 1.5.3 集成开发环境 1.5.4 其他的集成开发环境执行环境 1.6 Python文档 1.7...
  • 但是在javascript中,由于 javascript的动态解释执行,当然也有简单的预编译过程),this的指向在运行时才确定。这个特性在给我们带来迷惑的同时也带来了编程上的自由灵活,结合apply(call)方法,可以使JS变得...
  • 深入理解Python中文版高清PDF

    热门讨论 2012-09-04 19:37:04
     1.3.12 解释性和(字节)编译性   1.4 下载安装Python   1.5 运行Python   1.5.1 命令行上的交互式解释器   1.5.2 从命令行启动脚本   1.5.3 集成开发环境   1.5.4 其他的集成开发环境...
  • Python核心编程(中文第二版)

    热门讨论 2009-10-02 12:08:14
     1.3.12 解释性和(字节)编译性   1.4 下载安装Python   1.5 运行Python   1.5.1 命令行上的交互式解释器   1.5.2 从命令行启动脚本   1.5.3 集成开发环境   1.5.4 其他的集成开发环境执行...
  • Python核心编程第二版(ok)

    热门讨论 2009-05-21 08:23:44
     1.3.12 解释性和(字节)编译性   1.4 下载安装Python   1.5 运行Python   1.5.1 命令行上的交互式解释器   1.5.2 从命令行启动脚本   1.5.3 集成开发环境   1.5.4 其他的集成开发环境执行...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 132
精华内容 52
关键字:

解释性异常和编译型异常