精华内容
下载资源
问答
  • 如何判断信号是否为周期函数

    万次阅读 2016-09-21 14:54:45
    最近在重新学习《信号与线性系统》这本书,作者是管致中。 作为一个测控毕业大学生,很囧,19页第一章的习题就不会做。...习题:1.2说明下列信号是周期信号还是非周期信号。若是周期信号,求其周期T。
    最近在重新学习《信号与线性系统》这本书,作者是管致中。
    作为一个测控毕业大学生,很囧,19页第一章的习题就不会做。
    习题:1.2说明下列信号是周期信号还是非周期信号。若是周期信号,求其周期T。
    (1)asint-bsin(3t)
    看到这题,简单,不就是用f(t)=f(t+t0)带进去,肯定能根据正余弦定理球出来嘛。
    结果,什么玩意儿,根本求不出来。
    万能的百度了以后,知道了有这么一个老师告诉我们的定理:用最小公倍数法求周期函数的周期。就是先判断两个周期的比值,如果为有理数,则为周期信号,两个周期的最小公倍数为其周期
    也就是说:

    T_1=2π/1  T_2=2π/3

    T1/T2=3:1比值为有理数

    T1和T2的最小公倍数为2π,所以这道题的答案是:

    是周期信号,且周期为2π


    然后问题来了。老师告诉我们的这个定理,我会用啊,但是你怎么证明你说的是对的呢。

    然后搜到了2006年第1期的中学数学杂志(高中),上面又有了证明。如下所示:


    这下大概就懂了吧。记住了呦。




    展开全文
  • jni如何判断两个jobject是否为同一个java对象 jni开发时有时候需要将java对象缓存到native层,方便native层通过jni的反射方法进行回调操作。通常我们会将回调接口callback在native层存放为global reference全局...

      jni如何判断两个jobject是否为同一个java对象

     

        jni开发时有时候需要将java对象缓存到native层,方便native层通过jni的反射方法进行回调操作。通常我们会将回调接口callback在native层存放为global reference全局引用,熟悉jni开发的都知道,jni传入到native 层的jobject生命周期仅仅是函数的生命周期,当jni函数返回后对应的jobject对象就会失效,不能再操作,所以就必须申请为global reference。

    NewGlobalRef 将变量申请为全局引用,此时java虚拟机会保留jobject所指向的对象防止被垃圾回收器回收。 DeleteGlobalRef 释放全局引用,允许java虚拟机回收该引用指向的java对象,对于不需要使用的global reference必须调用该方法,否则会引起java虚拟机内存泄漏。

          既然global reference的实质是指向java对象,那么我们在将某个变量声明为global reference时如何判断该jobject是否已经是当前设置的global reference呢。经过一番查询,看到了一下方法

    IsSameObject 如果两个jobject指向同一个java 对象那么返回true,否则返回false。

     

    既然有方法了,接下来就是验证工作了。

    Hello.h

    /* DO NOT EDIT THIS FILE - it is machine generated */
    #include <jni.h>
    /* Header for class Hello */
    
    #ifndef _Included_Hello
    #define _Included_Hello
    #ifdef __cplusplus
    extern "C" {
    #endif
    /*
     * Class:     Hello
     * Method:    native_setObjectToGlobalRef
     * Signature: (LHello/Book;)V
     */
    JNIEXPORT void JNICALL Java_Hello_native_1setObjectToGlobalRef
      (JNIEnv *, jclass, jobject);
    
    /*
     * Class:     Hello
     * Method:    native_release
     * Signature: ()V
     */
    JNIEXPORT void JNICALL Java_Hello_native_1release
      (JNIEnv *, jclass);
    
    #ifdef __cplusplus
    }
    #endif
    #endif
    

    Hello.cpp

    #ifdef __cplusplus
    extern "C" {
    #endif
    
    #include <cstdio>
    #include "Hello.h"
    
    // 全局变量,用于存储全局引用的
    jobject g_book_ref = NULL; 
    
    /*
     * Class:     Hello
     * Method:    native_setObjectToGlobalRef
     * Signature: (LHello/Book;)V
     */
    JNIEXPORT void JNICALL Java_Hello_native_1setObjectToGlobalRef
      (JNIEnv *env, jclass jclazz, jobject jbook) {
    
    	// 如果输入参数为null,那么不需要继续操作
    	if (NULL == jbook) {
    		printf("native_setObjectToGlobalRef jbook is NUll and g_book_ref is NOT NULL. we need to delete reference of old g_book_ref\n");
    		if (NULL != g_book_ref) {
                env->DeleteGlobalRef(g_book_ref);  // 删除老的全局引用
    		    g_book_ref = NULL;
            }
    		return;
    	}
    
       // 如果全局引用已经设置了,那么需要判断jni函数参数的jbook是否与当前的全局引用指向同一个java对象
       if (NULL != g_book_ref) {
            // 如果指向同一个对象,那么不需要再次为该jbook申请全局引用
    		if (env->IsSameObject(g_book_ref, jbook)) {
    			printf("native_setObjectToGlobalRef isSameObject: true, g_book_ref: %p, jbook: %p\n", g_book_ref, jbook);
    		} else {
                // 如果指向不同对象,那么先释放老的全局引用,再为jbook申请全局引用
    			printf("native_setObjectToGlobalRef isSameObject: false\n");
    			printf("native_setObjectToGlobalRef g_book_ref and jbook is not same object. we need to delete reference of old g_book_ref\n");
    			env->DeleteGlobalRef(g_book_ref);
    			printf("native_setObjectToGlobalRef create global reference to g_book_ref\n");
    			g_book_ref = env->NewGlobalRef(jbook);
    		}
    	} else {
    		printf("native_setObjectToGlobalRef g_book_ref is NULL\n");
    		printf("native_setObjectToGlobalRef create global reference to g_book_ref\n");
    		g_book_ref = env->NewGlobalRef(jbook);
    	}
    }
    
    /*
     * Class:     Hello
     * Method:    native_release
     * Signature: ()V
     */
    JNIEXPORT void JNICALL Java_Hello_native_1release
      (JNIEnv *env, jclass jclazz) {
        printf("native_release g_book_ref: %p\n", g_book_ref);
    	if (NULL != g_book_ref) {
    		env->DeleteGlobalRef(g_book_ref);
    		g_book_ref = NULL;
    	}
    }
    
    
    #ifdef __cplusplus
    }
    #endif
    


    Hello.java

    public class Hello {
    	static {
    		try {
    			String sysName = System.getProperty("os.name");
    			if (sysName.contains("Linux")) {
    		        System.load(System.getProperty("user.dir") + "/libHello.so");
    			} else if (sysName.contains("Drawin") || sysName.contains("Mac")) {
    		        System.load(System.getProperty("user.dir") + "/libHello.dylib");
    			}
    		} catch (java.lang.UnsatisfiedLinkError e) {
    			e.printStackTrace();
    			System.err.println("load so failed.");
    			System.exit(1);
    		}
    	}
    
    	static class Book {
    		public String name;
    
    		public Book() {}
    		public Book(String name) {
    			this.name = name;
    		}
    	}
    
    	public native static void native_setObjectToGlobalRef(Book book);
    	public native static void native_release();
    
    	public static void main(String args[]) {
    		Book b1 = new Book();
    		Book b2 = new Book();
    		System.out.println("set b1");
    		native_setObjectToGlobalRef(b1);
    		System.out.println("set b2");
    		native_setObjectToGlobalRef(b2);
    		System.out.println("##set b2");
    		native_setObjectToGlobalRef(b2);
    		System.out.println("##set null");
    		native_setObjectToGlobalRef(null);
    		native_release();
    	}
    }
    

     

    makefile

    UNAME_S := $(shell uname -s)
    ifeq ($(UNAME_S),Darwin)
    main:
    	gcc -I"${JAVA_HOME}/include" -I"${JAVA_HOME}/include/darwin" Hello.cpp -dynamiclib -o libHello.dylib
    endif
    
    ifeq ($(UNAME_S),Linux)
    main:
    	gcc -I"${JAVA_HOME}/include" -I"${JAVA_HOME}/include/linux" Hello.cpp -shared -fPIC -o libHello.so
    endif
    

     

    运行命令

    $ make

    $ javac Hello.java

     

    运行程序

    $ java -Djava.library.path=".:${JAVA_HOME}" Hello

    输出结果

    set b1
    native_setObjectToGlobalRef g_book_ref is NULL
    native_setObjectToGlobalRef create global reference to g_book_ref
    set b2
    native_setObjectToGlobalRef isSameObject: false
    native_setObjectToGlobalRef g_book_ref and jbook is not same object. we need to delete reference of old g_book_ref
    native_setObjectToGlobalRef create global reference to g_book_ref
    ##set b2
    native_setObjectToGlobalRef isSameObject: true, g_book_ref: 0x7fb16ae08e90, jbook: 0x70000ce4a900
    ##set null
    native_setObjectToGlobalRef jbook is NUll and g_book_ref is NOT NULL. we need to delete reference of old g_book_ref
    native_release g_book_ref: 0x0

    1. set b1时

    因为是首次设置,此时native的g_book_ref还是null,没有被指向java对象,所以需要用全局引用为jbook保存java对象引用;

    2. set b2时

    isSameObject返回false,证明g_book_ref和jbook指向的对象不一样(此时jbook指向b2,而g_book_ref指向步骤1设置的b1),所以需要先删除老的b1全局引用再为b2申请全局引用;

    3. 再次设置b2时

    isSameObject返回true,证明g_book_ref和jbook指向的对象一样(此时jbook和g_book_ref都指向b2,注意两者的native地址不一样),为了节省操作,所以不需要在为jbook申请全局引用;

    4. 设置为null

    因为jbook为null,所以需要释放全局引用g_book_ref。

    5. native释放

    在Book native释放时因为步骤4已经提前释放了全局引用,所以不需要再释放了。

     

     

    展开全文
  • 技术,生活主,偶尔撒点鸡汤不作,不敷衍,意在真诚吐露,用心分享点击左上方,可关注本刊标星公众号(ID:itclanCoder)如果不知道如何操作点击这里,标星不迷路(这张图是整个vue的生命周期过程)生命周期函数(钩子函数):...

    虽互不曾谋面,但希望能和您成为笔尖下的朋友

    以读书,技术,生活为主,偶尔撒点鸡汤

    不作,不敷衍,意在真诚吐露,用心分享

    点击左上方,可关注本刊

    标星公众号(ID:itclanCoder)

    如果不知道如何操作

    点击这里,标星不迷路

    34f448f4609d03c69d475c0155312a91.png

    (这张图是整个vue的生命周期过程)

    生命周期函数(钩子函数):在特定的阶段,能够自动执行的函数,总共分为 8 个阶段:创建前/后,载入前/后,更新前/后,销毁前/后

    1. beforeCreate阶段: vue实例挂载元素el和数据对象data都为undefined,还未初始化

    注意

    在当前阶段data,methods,computed以及watch上的数据和方法都不能被访问

    应用场景

    1. 可以在此时加一些loading效果,在created时进行移除

    2. 也可以在此阶段做一些页面拦截,当进入一个路由时,可以判断是否有权限进去,是否安全,携带参数是否完整,参数是否安全,使用好这个钩子的时候就避免了让页面去判断,省掉了创建一个组件vue实例

    3. 做自定义重定向,当路由还没有进去时,判断是否正确进去,若不正确则可以重定向到指定的页面

    4. 想要在实例化数据之前做什么事情,都可以在这个钩子函数里设置

    5. created阶段: vue实例的数据对象data有了,el还没有,在实例创建完成后会被立即调用。在这一阶段,实例已完成,数据观测(data observer),property 和方法的运算,watch/event 事件回调

    然而,挂载阶段还没开始,``$el property`目前尚不可用

    在这一阶段可以做一些初始化数据的获取,在当前阶段无法与DOM进行交互,如果非要做,可以通过vm.$nextTick来访问DOM

    应用场景: 需要异步请求数据的方法可以在此时执行,完成数据的初始化(Ajax请求放在这个阶段也是可以的)

    挂载时

    • beforeMount: 在挂载开始之前被调用,相关的render函数首次被调用
    • mounted: 实例已经挂载完成,可以进行一些DOM操作

    载入前/后

    1. beforeUpdate阶段: 在挂载开始之前被调用: 相关的 render 函数首次会被调用,监测到data发生变化,在变化的数据重新渲染视图之前会触发,这也是重新渲染之前最后修改数据的机会 可以在当前阶段进行更改数据,不会造成重渲染
    2. updated: 监测到data发生变化,并完成渲染更新视图之后触发,虚拟 DOM 重新渲染和打补丁之后调用,组合新的DOM已经更新,避免在这个钩子函数中操作数据,防止死循环

    销毁前/后

    1. beforeDestory阶段: 实例销毁前调用,实例还可以用,this能获取到实例,常用于销毁定时器,解绑事件

    在当前阶段实例完全可以被使用,我们可以在时进行善后收尾工作,比如:清除计时器

    1. destoryed阶段: 实例销毁后调用,调用后所有事件监听器会被移除,所有的子实例都会被销毁,当前阶段组件被拆解,数据绑定被卸除,监听被移出,子实例也统统被销毁
    在代码里,把这些生命周期函数写上去,打开控制台,测试一下,就知道这些生命周期函数具体的执行顺序了的,还是要理解上面的一张生命周期图谱

    如遇到什么问题,也欢迎小伙伴们下方留言,一起学习探讨~

    d67a3e6e7b18bda17cc41077d36e14f2.png

    记账就用轻记账


    ccafaf41a2b39b62d2659df4ee6a86d8.png

    公众号(ID:itclanCoder)

    码能让您早脱菜籍,文能让您洗净铅华

      可能您还想看更多:

    1e2d0bebea12767da401b00d0df96a00.png

    小程序-云开发-实现生成小程序码

    e90d3b00b14c2a2b7a919cad1667fd4d.png

    Js篇-面试题12-如何解析 URL 提取 params 参数

    165a7bd8a52059c73086b13f253eb292.png

    Js篇-面试题11-比较下for..of与for..in的区别

    29a6099d40cdf71232fb647aa82b327d.png

    Js篇-面试题9-请说一下Js中的事件循环机制

    57cf6ad60bd3afa90d47f5da90fbd682.png

    vuepress建站过程中遇到的一些问题

    展开全文
  • 通过生命周期的钩子函数sholdComponentUpdate()进行判断是否进行更新渲染,这个钩子函数在render()方法调用之前调用,如果该钩子函数的返回值true,代表需要重新渲染,如果false,代表不需要重新渲染。...

    如何实现不必要的重新渲染:

    通过生命周期的钩子函数sholdComponentUpdate()进行判断是否进行更新渲染,这个钩子函数在render()方法调用之前调用,如果该钩子函数的返回值为true,代表需要重新渲染,如果为false,代表不需要重新渲染。

    这个是在父组件中直接进行state的比较是否进行了更新

    import React from 'react'
    import ReactDOM from 'react-dom'
    
    /* 
      组件性能优化:
    */
    
    // 生成随机数
    class App extends React.Component {
      state = {
        number: 0
      }
    
      handleClick = () => {
        this.setState(() => {
          return {
            number: Math.floor(Math.random() * 3)
          }
        })
      }
    
      // 因为两次生成的随机数可能相同,如果相同,此时,不需要重新渲染
      shouldComponentUpdate(nextProps, nextState) {
        console.log('最新状态:', nextState, ', 当前状态:', this.state)
    
        return nextState.number !== this.state.number
    
        // if (nextState.number !== this.state.number) {
        //   return true
        // }
        // return false
    
        // if (nextState.number === this.state.number) {
        //   return false
        // }
        // return true
      }
    
    
      render() {
        console.log('render')
        return (
          <div>
            <h1>随机数:{this.state.number}</h1>
            <button onClick={this.handleClick}>重新生成</button>
          </div>
        )
      }
    }
    
    ReactDOM.render(<App />, document.getElementById('root'))

    这个是将父组件进行了拆分,在子组件中进行比较props前后两个值,其中nextProps和nextState都是为当前组件最新的值

    import React from 'react'
    import ReactDOM from 'react-dom'
    
    /* 
      组件性能优化:
    */
    
    // 生成随机数
    class App extends React.Component {
      state = {
        number: 0
      }
    
      handleClick = () => {
        this.setState(() => {
          return {
            number: Math.floor(Math.random() * 3)
          }
        })
      }
    
      // 因为两次生成的随机数可能相同,如果相同,此时,不需要重新渲染
      // shouldComponentUpdate(nextProps, nextState) {
      //   console.log('最新状态:', nextState, ', 当前状态:', this.state)
      //   return nextState.number !== this.state.number
      // }
    
      render() {
        // console.log('render')
        return (
          <div>
            <NumberBox number={this.state.number} />
            <button onClick={this.handleClick}>重新生成</button>
          </div>
        )
      }
    }
    
    class NumberBox extends React.Component {
      shouldComponentUpdate(nextProps) {
        console.log('最新props:', nextProps, ', 当前props:', this.props)
        // 如果前后两次的number值相同,就返回false,不更新组件
        return nextProps.number !== this.props.number
    
        // if (nextProps.number === this.props.number) {
        //   return false
        // }
        // return true
      }
      render() {
        console.log('子组件中的render')
        return <h1>随机数:{this.props.number}</h1>
      }
    }
    
    ReactDOM.render(<App />, document.getElementById('root'))
    

     

    展开全文
  • [面经]CVTE2018秋招(嵌入式开发)

    千次阅读 2017-09-23 11:04:42
    这是实验室小伙伴的经历。...如判断单链表是否有环?给定一个字符串,如何高效地将内部个空格替换成%20?strcpy实现原理? 面试者2 一面 进程与线程的区别子进程继承了什么进程间通信智能指针C++
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    0192 判断字符串是否为日期或时间 125 0193 获得指定月的最后一天 127 0194 在指定的日期上加上3月 127 0195 实现倒计时功能 128 0196 判断指定年份是否为闰年 129 0197 调用系统设置日期对话框 129 ...
  • 28、 什么是闭包(closure),什么要用它?简单的理解是函数的嵌套形成闭包,闭包包括函数...意思是使用严格模式,使用严格模式,一些不规范的语法将不再支持30、如何判断一个对象是否属于某个类? Instanceof c...
  • JVM之GC(一)

    2019-09-28 14:47:22
    堆是对象和数组分配内存的地方,有些对象可能会伴随着程序运行的完整生命周期,但大部分对象都是朝生夕死的,如何判断对象是否有必要“占坑”呢?首先我们要来说一下判别方法:Java中对象的活性判别主...
  • C++单例模式

    2020-08-17 08:45:00
    在很多时候,我们整个项目工程当中,某个类的对象是有且仅有一个,生命周期是整个项目程序,如果是这种情况下,我们还去...3、当需要访问这个类时,就只需要对instance进行判断是否为nullptr: (1)当instance为nul
  • Next.js 中的特有生命周期hook 函数 getInitialProps会在页面渲染的时候判断浏览器是否为首次渲染,如果是则是服务端渲染网页,如果不是则是客户端渲染。在页面首次渲染的时候,会加载 commons.x
  • C#编程经验技巧宝典

    热门讨论 2008-06-01 08:59:33
    79 <br>0115 如何判断是否为数字 79 <br>0116 如何在字符串中查找指定字符 79 <br>0117 如何在字符串中用一子串替换另一子串 80 <br>0118 将新字符串添加到已有字符串中 80 <br>0119 如何在...
  • 前端知识汇总2020-07-13

    2020-07-13 20:35:50
    Vue3.0 生命周期3.1 created和mounted的区别3.2 mounted中页面什么可见3.3 如何在created中求到挂载的实例对象4.ES64.1 箭头函数写法 1. 数组 1.1 数组排序,取数组前5位,将数组倒序 let arr = [8, 9, 3, 7, 6
  • MFC的程序框架剖析

    2015-03-05 09:53:19
    紧接着就会有一个判断,用来确定该链表中是否只有一项,如果链表中保存了多个文档模版,则会弹出一个对话框,来让我们选择到底是使用哪一套文档模版来构建应用程序,相信大家也都见到过这种情况吧。对了,还有一点要...
  • 3.5.3 给40亿个不重复的unsigned int的整数,没排过序的,然后再给几个数,如何快速判断这几个数是否在那40亿个数当中? 3.5.4 在一个文件中有10G个整数,乱序排列,要求找出中位数。内存限制2G。 3.5.5 时分秒针...
  • 17.1.3. 如何判定是否须要创建索引 44 17.2. 复合索引优化 45 17.3. 下面是一些常见的索引限制问题 45 17.3.1. 使用不等于操作符(, !=) 45 17.3.2. 使用 is null 或 is not null 45 17.3.3. 使用函数 45 17.3.4. ...
  • 带你手写微前端框架

    2020-12-28 06:04:01
    | MOUNTED | app的<code>mount或<code>update(service独有)生命周期函数执行成功,意味着此app已挂载成功,可执行Vue的$mount()或ReactDOM的render() |UNMOUNTING、UPDATEING| | UNMOUNTING | app的...
  • java面试题典 java 面试题 经典

    热门讨论 2010-06-18 13:42:36
    9. 编程:编写一个截取字符串的函数,输入一个字符串和字节数,输出按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”而不是“我...
  • java面试题

    2018-01-01 15:35:15
    84.7. 编写一个截取字符串的函数,输入一个字符串和字节数,输出按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”而不是“我ABC+...
  • 语句if(x == 3)首先判断x的值是否为3,若相等条件表达式的值为ture,否则为false。 2-15 什么叫做作用域?什么叫做局部变量?什么叫做全局变量,如何使用全局变量? 解: 作用域是一个标识符在程序正文中有效的...
  • LINGO软件的学习

    2009-08-08 22:36:50
    #eq#是逻辑运算符,用来判断是否“相等”,可参考§4. &1可看作派生集的第1个原始父集的索引,它取遍该原始父集的所有成员;&2可看作派生集的第2 个原始父集的索引,它取遍该原始父集的所有成员;&3,&4,……,...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    判断一个文件或目录是否存在 如何读写文件 7.Java多态的实现(继承、重载、覆盖) 8.编码转换,怎样实现将GB2312编码的字符串转换ISO-8859-1编码的字符串。 9.Java中访问数据库的步骤,Statement和...
  • 实例194 判断文件是否正在被使用 250 实例195 提取文件中的图标资源 251 实例196 在程序中调用.HLP文件 253 实例197 采用API实现文件拖放 254 实例198 文件比较 255 第6章 操作系统与Windows相关程序 ...
  • 那就必须自己判断控件是否还存在。 这个地方我觉得是不是<code>Dialog处于隐藏状态就别去<code>hide()了,或者起码不触发<code>hide事件。 虽然从严谨的角度来讲,操作页面控件的时候是要先判断一下控件...
  • // 并且判断originalCallback是不是个函数,如果是函数,便执行 if (responseData && $.isFunction(originalCallback)) originalCallback(responseData[0]) // 清空闭包,释放空间 ...
  • 15、怎么判断指定路径是否为目录 65 16、怎么获取指定路径下的全部文件 65 17、Java怎么读取文件和写入文件 65 18、java怎么复制文件 68 19、用JDBC如何调用存储过程 69 20、JDBC中的PreparedStatement相比Statement...
  • Java面试宝典2010版

    2011-06-27 09:48:27
    3、编写一个截取字符串的函数,输入一个字符串和字节数,输出按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...
  • 程序开发范例宝典>>

    2012-10-24 10:41:28
    实例227 判断文件是否正在被使用 316 实例228 在程序中调用.HLP文件 317 实例229 C#中实现文件拖放 317 实例230 文件比较 318 实例231 获取文件夹中的图标资源 319 实例232 获取文件夹下的所有...
  • 软件测试经典面试题 (超实用)

    热门讨论 2012-02-16 13:48:08
    48、在配置测试中,如何判断发现的缺陷是普通问题还是特定的配置问题? 15 49、什么尽量不要让时间有富裕的员工去做一些测试? 16 50、完全测试程序是可能的吗? 16 51、软件测试的风险主要体现在哪里? 16 52、...
  • 实例280 判断计算机中是否安装了SQL软件 378 第8章 注册表 380 8.1 个性桌面 381 实例281 禁用桌面选项卡 381 实例282 禁用外观选项卡 382 实例283 禁用屏幕保护选项卡 383 实例284 设置...
  • 实例280 判断计算机中是否安装了SQL软件 378 第8章 注册表 380 8.1 个性桌面 381 实例281 禁用桌面选项卡 381 实例282 禁用外观选项卡 382 实例283 禁用屏幕保护选项卡 383 实例284 设置...

空空如也

空空如也

1 2 3 4
收藏数 78
精华内容 31
关键字:

如何判断是否为周期函数