精华内容
下载资源
问答
  • 不可相比叫
    千次阅读
    2018-06-14 18:34:08

    不可变对象在并发程序中比较有用,由于其状态无法改变,因此无法被线程的干扰损坏或者被视为不一致状态。

    基本概念   

    *不可变对象(Immutable Objects)即对象一旦被创建它的状态(对象的数据,也即对象属性值)就不能改变,任何对它的改变都应该产生一个新的对象

    * 可变对象(Mutable Objects):相对于不可变类,可变类创建实例后可以改变其成员变量值,开发中创建的大部分类都属于可变类

    * 不可变对象的类即为不可变类(Immutable Class)。JAVA平台类库中包含许多不可变类,如String、基本类型的包装类、BigInteger和BigDecimal等。

    编写不可变类

    可以遵照以下几点来编写一个不可变类:

    A. 确保类不能被继承将类声明为final, 或者使用静态工厂并声明构造器为private。如果类可以被继承会破坏类的不可变性机制,只要继承类覆盖父类的方法并且继承类可以改变成员变量值,那么一旦子类以父类的形式出现时,不能保证当前类是否可变。

    B. 使用private和final修饰符来修饰该类的属性

    注:如果成员属性为变对象属性,不要使这些对象改变:

    1)不要提供更改可变对象的方法

    2)不要共享对可变对象的引用,不要存储传给构造器的外部可变对象的引用。因为引用可变对象的成员变量和外部可变对象的引用指向同一块内存地址,用户可以在不可变类之外通过修改可变对象的值

    public final class ImmutableDemo {  
        private final int[] myArray;  
        public ImmutableDemo(int[] array) {  
            this.myArray = array; // wrong  
        }  
    }

    为了保证内部的值不被修改,可以采用深度拷贝的方法来复制一个对象并传入副本的引用来确保类的不可变

    public final class MyImmutableDemo {  
        private final int[] myArray;  
        public MyImmutableDemo(int[] array) {  
            this.myArray = array.clone();   
        }   
    }

    有必要时类中的方法返回内部可变对象的副本而不是原对象

    C. 不要提供任何可以修改对象状态的方法不仅仅是set方法, 还有任何其它可以改变状态的方法

    举个例子:

    import java.util.Date;
    
    public final class Planet {
        //声明为final的基本类型数据总是不可变的
        private final double fMass;
        //不可变的对象属性 (String对象不可变)
        private final String fName;
        //可变对象的属性,因为可变属性只能被这个类改变,采用深度拷贝的方法来复制一个对象并传入副本的引用
        private final Date fDateOfDiscovery;
        
        public Planet(double aMass, String aName, Date aDateOfDiscovery) {
            fMass = aMass;
            fName = aName;
            //创建aDateOfDiscovery的一个私有拷贝
            //这是保持fDateOfDiscovery属性为private的唯一方式, 并且保护这个
            //类不受调用者对于原始aDateOfDiscovery对象所做任何改变的影响
            fDateOfDiscovery = new Date(aDateOfDiscovery.getTime());
        }
        //返回一个基本类型值.
        public double getMass() {
            return fMass;
        }
        //调用者得到内部属性的一个直接引用. 由于String是不可变的所以没什么影响
        public String getName() {
            return fName;
        }
        //返回一个可变对象的一个保护性拷贝.调用者可以任意改变返回的Date对象,但是不会
        //影响类的内部.为什么? 因为它们没有fDate的一个引用. 更准确的说, 它们
        //使用的是和fDate有着相同数据的另一个Date对象
        public Date getDateOfDiscovery() {
            return new Date(fDateOfDiscovery.getTime());
        }
    
        public static void main(String[] args) {
        	Planet planet = new Planet(1.0D, "earth", new Date());
        	Date date = planet.getDateOfDiscovery();
        	date.setTime(111111111L);
        	System.out.println("the value of fDateOfDiscovery of internal class : " + planet.fDateOfDiscovery.getTime());
        	System.out.println("the value of date after change its value : " + date.getTime());
    	}
    }

    运行结果:

    the value of fDateOfDiscovery of internal class : 1393943752205
    the value of date after change its value : 111111111

    不可变对象的优缺点

    优点

    * 构造、测试和使用都很简单

    * 不可变对象是线程安全的,在线程之间可以相互共享,不需要利用特殊机制来保证同步问题,因为对象的值无法改变。可以降低并发错误的可能性,因为不需要用一些锁机制等保证内存一致性问题也减少了同步开销。

    * 不可变对象可以被重复使用,可以将它们缓存起来重复使用,就像字符串字面量和整型数字一样。可以使用静态工厂方法来提供类似于valueOf()这样的方法,它可以从缓存中返回一个已经存在的Immutable对象,而不是重新创建一个。

    public class CacheImmutale {  
        private final String name;  
        private static CacheImmutale[] cache = new CacheImmutale[10];  
        private static int pos = 0;  
      
        public CacheImmutale(String name) {  
            super();  
            this.name = name;  
        }  
      
        public String getName() {  
            return name;  
        }  
      
        public static CacheImmutale valueOf(String name) {  
            // 遍历已缓存的对象  
            for (int i = 0; i < pos; i++) {  
                // 如果已有相同实例,直接返回该缓存的实例  
                if (cache[i] != null && cache[i].getName().equals(name)) {  
                    return cache[i];  
                }  
            }  
            // 如果缓冲池已满  
            if (pos == 10) {  
                // 把缓存的第一个对象覆盖  
                cache[0] = new CacheImmutale(name);  
                pos = 1;  
                return cache[0];  
            } else {  
                // 把新创建的对象缓存起来,pos加1  
                cache[pos++] = new CacheImmutale(name);  
                return cache[pos - 1];  
            }  
        }  
      
        @Override  
        public int hashCode() {  
            return name.hashCode();  
        }  
      
        @Override  
        public boolean equals(Object obj) {  
            if (obj instanceof CacheImmutale) {  
                CacheImmutale ci = (CacheImmutale) obj;  
                if (name.equals(ci.getName())) {  
                    return true;  
                }  
            }  
            return false;  
        }  
      
        public static void main(String[] args) {  
            CacheImmutale c1 = CacheImmutale.valueOf("hello");  
            CacheImmutale c2 = CacheImmutale.valueOf("hello");  
            System.out.println(c1 == c2);// 输出结果为true  
        }  
    }

    缺点:

    * 不可变对象最大的缺点就是创建对象的开销,因为每一步操作都会产生一个新的对象,制造大量垃圾,由于他们不能被重用而且对于它们的使用就是”用“然后”扔“,会创造很多的垃圾,给垃圾收集带来很大的麻烦

    更多相关内容
  • 滞回比较器一、滞回比较器原理二、电路设计三、仿真结果合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...

    一、滞回比较器原理

    滞回比较器,在单线电压中,通过引入正反馈,检测两个不同的电压值,使比较器输出高电平或者低电平。
    1、同相滞回比较器:同相端输入检测信号,反向端输入基准电压,当输入电压高于Uth时,比较器输出高电平,当输入电压低于Utl时比较器输出低电平,在两者之间保持。
    在这里插入图片描述
    2、反相滞回比较器:同相端输入基准电压,反向端输入检测信号,当输入电压高于Uth时,比较器输出低电平,当输入电压低于Utl时比较器输出高电平,在两者之间保持。
    在这里插入图片描述

    二、电路设计

    设计一个同相滞回比较器,电路如图所示:
    在这里插入图片描述
    电路分析:
    Vp=Vin*R2/(R1+R2)+Vout*R1/(R1+R2)

    其门限为
    Uh=Vref*(R1+R2)/R2
    Ul=(Vref-Vout* R1/(R1+R2))*(R1+R2)/R2
    门限宽度为:

    ∆U=Uh-Ul=Vout* R1/R2
    (也可以按照上述分析,类推反相滞回比较器,读者可自行推断)

    三、仿真结果

    在这里插入图片描述
    注意:
    1.这里基准电压由电源通过R3和R4分压产生,一般不能使基准电压和电源相同
    2. 以下网址,为电子发烧友迟滞比较电路参数计算器,输入已知的三个参数可计算出剩余的两个参数。
    link
    网址中的滞回比较器也为同相滞回比较器。
    在这里插入图片描述

    展开全文
  • 今天在用springboot框架开发用户管理模块 合代码的时候的时候,由于之前地实体类中id定义的...但是现在问题就出来了,值在本应该相等的地方进入相等体系中的逻辑,但却进入了相等的逻辑流程中。 最后发现是int和In...

    今天在用springboot框架开发用户管理模块 合代码的时候的时候,由于之前地实体类中id定义的是int类型, 而mybatis中自动生成的是Integer类型的,为了统一代码,都改成了Integer类型的。之前我的模块所有的数据(就是当时数据类型还是int)都测过,都没问题。
    但是现在问题就出来了,值在本应该相等的地方进入相等体系中的逻辑,但却进入了不相等的逻辑流程中。
    最后发现是int和Integer类型不匹配的原因。
    在用两个Integer对象比较数值的话,如果是整型值的话最好调用intValue方法来得到一个int类型的值,当然也可将其转变为
    float(floatValue),double(longValue)类型来比较。

    public int intValue() 以 int 类型返回该 Integer 的值。

    指定者:类 Number 中的 intValue返回:转换为 int 类型后该对象表示的数值。
    下面以一个例子详细说明:

    /**
     * 测试 两个Integer类型的值相比较的问题
     * 当给Integer直接赋值时,如果在-128到127之间相等的话,它们会共用一块内存,
     * 而超过这个范围,则对应的Integer对象有多少个就开辟多少个
     */
    public class ClassD {
        public static void main(String[] args) {
    
            // 两个new出来的Integer类型的数据比较,相当于把new出来的地址作比较
            Integer a0 = new Integer(1);// 普通的堆中对象
            Integer b0 = new Integer(1);
            System.out.println("new出来的 " + "a0==b0 :" + (a0 == b0));
            System.out.println("a0:"+a0+" b0:"+b0);
    
            // 调用intValue方法得到其int值
            System.out.println("调用intValue " + "a0.intValue() == b0.intValue() " +
                    (a0.intValue() == b0.intValue()));
    
            // 把Integer类型的变量拆箱成int类型
            int c = 1;
            System.out.println("将Integer自动拆箱 " + "a0==c: " + (a0 == c));
    
            // 其实也是内存地址的比较
            Integer a1 = 30; // 自动装箱,如果在-128到127之间,则值存在常量池中
            Integer b1 = 30;
            System.out.println("直接赋值的两个Integer类型的比较 " +
                    "a1 == b1: "+ (a1 == b1));
    
    
            Integer a3 = 128;
            Integer b3 = 128;
            System.out.println("直接赋值的两个Integer类型的比较 " +
                    "a3 == b3: " + (a3 == b3));
    
            Integer a4 = 412;
            Integer b4 = 412;
            System.out.println("直接赋值的两个Integer类型的比较 " +
                    "a4 == b4: " + (a4 == b4));
    
            System.out.println("调用intValue " + "a4.intValue() == b4.intValue(): "
                    + (a4.intValue() == b4.intValue()));
        }
    }
    
    

    控制台打印的结果如下图所示:
    在这里插入图片描述

    展开全文
  • 可数集合与不可数集合

    万次阅读 多人点赞 2015-07-22 00:16:30
    集合,set,就是将一些确定的东西...对于 S 中的元素 a,me 们说 a ∈ S (a 属于 S),当然如果 a 在 S 中,me 们就说 a ∉ S (a 属于 S)。 集合中元素的个数,有时候是有限 (finit) 的,有时候不是有限的,比如 {

    集合,set,就是将一些确定的东西放在一起形成的 object,比如 {1 2 3 4 5}、{张三 李四 王五 赵六}。集合中的元素不区分顺序,相同的元素认为是同一个元素。对于 S 中的元素 a,me 们说 a ∈ S (a 属于 S),当然如果 a 不在 S 中,me 们就说 a ∉ S (a 不属于 S)。

    集合中元素的个数,有时候是有限 (finit) 的,有时候不是有限的,比如 {1 2 3 4 5} 这个集合有 5 个元素,{1 2 3 4 5 6 7 8 ..} 自然数集合就不是有限集合。集合的元素的个数,又叫基数;之所以用基数这个说法,是因为对于无限集合来说“个数”是一个太容易引起混淆的词。有限集合的基数即是通常说的个数了,都是自然数,而且它们还可以比较大小,反映集合中元素的多少。对于无限集合肿么比较元素多少呢?O__O"…

    也许 me 们会说自然数是有无限多,正奇数也是无限多的,那这两个无限谁多呢?正奇数是自然数的真子集,me 们可能认为自然数数目要多一些。不过这种一个集合属于另一个集合真子集的判断标准,几乎不可以推广,而且矛盾也比较多。自然数包括正奇数和正偶数,正奇数个数和正偶数个数,me 们赶脚应该是“不相伯仲”的,而自然数的个数是不是就是正奇数个数的两倍呢?

    后来创立集合论的康托给出了一个评判标准:如果两个集合 A 、B 的元素可以建立一一对应关系,那 me 们就说它们的基数相等。这个标准对于有限集合来说是成立的,所有有 4 个元素的集合,比如 {1 3 5 7} 、{2 4 6 8}、{张、王、李、赵} 元素的个数相等,它们和 {1 2 3 4 5} 有 5 个元素的集合相比基数则不一样。现在拿“一一对应”来评判无限集合。按可以一一对应建立相等的观念,那么正奇数个数 (2N+1) 和正偶数 (2N) 个数,或是说基数是一样的,自然数 (N) 和正奇数的个数也是一样多的,因为自然数 N 可以和正奇数 2N+1 建立一一对应关系,比如 0 ↔ 1,1 ↔ 3,2 ↔ 5, 3 ↔ 7,4 ↔ 9,...

    有限集合与它的真子集的基数(个数)不可能相等,也就是不能建立一一对应关系;而且显而易见的是,真子集的基数要小。而对于无限集合来说,比如自然数来说,它可以与它的某一个真子集比如正奇数,建立一一对应关系,它们的基数相同。对于任意一个无限集合 S,毫无疑问 me 们可以抽取一个序列 e1, e2, e3, ... en,... ,所以 me 们应该很容易从 S 中抽取一个真子集,然后 S 和其真子集 S' 一一对应,比如 S 去掉 e1 形成 S' 。(对应关系应该很容易猜出来。)

    所以,me 们可以大胆滴说,有限集合和无限集合区分的标志特征(之一)就是,无限集合可以与自己的真子集等势。

    可数集合与不可数集合

    可数,或是可以枚举,就如名字所言,可以 one by one 滴数,能全部数到就是可数的,否则就是不可数的。有限集合是可数的,因为 10 个元素 me 数 10 次就数完了;自然数可以按着顺序一直数下去,虽然不会结束,但是 me 们能数到每一个自然数,所以也属于可数集合。对于无限集合,如果能和自然数建立一一对应的就是可数集合,否则就是不可数集合。

    有很多集合都是无限可数的,比如正奇数 1 3 5 7 9 11... 和 正偶数 2 4 6 8 10 12 集合。下面有一些可能意想不到的结论,可以围观一下:

    1. 整数集合是可数的,比如 0 -1 1 -2 2 -3 3 -4 4 -5 5 -6 6...
    2. 所有的自然数对 (m,n) 是可数的,比如 (0,0) (0,1) (1,0) (0 2) (1 1) (2 0) (0 3) (1 2) (2 1) (3 0) ,应该可以看出来规律的;
    3. 分数 m/n 的集合是可数的,如果将相同的分数视作一个的话,比如 1/2 = 2/4 = 3/6;因为有理数都可以表示成分数,可数集合的子集也是可数的,所以,有理数是可数的;

    实数集合是不可数的

    上面说的每个可数集合,me 们都可以用手指头一个一个地数下去,而且没有一个会遗漏。me 们武断滴认为实数集合比自然数集合多得多,但是是不是也会想有理数那么样可数呢?如果可数,me 们就得去找一一对应关系,不过不好找,找很多个到最后可能发现也不对。最后有人发现可以用反证法证明,实数集合是不可数的,其中会用到有名的对角化原理

    1. [0,1) 该实数集合是不可数的;
    2. [0,1) 和实数集合 R 是等势的,所以,实数集合也是不可数的;
    3. [0,1) 和自然数 N 的幂集 2N 也是等势的;

    证明 [0,1) 是不可数的

    [0,1) 之间的实数,实际上就是小于 1 的小数(非负),假设这里的实数都是可数的,me 们可以 n1 n2 n3 n4 n5 ... 把所有的 [0.1) 的实数数出来,现在构造一个实数 α,属于 [0,1) 但不等于任一个 nk 。

    me 们看 ni 这个数的第 i 个数字(0、1、2 或是其他),如果是 0 的话,me 们将 α 的第 i 位置为 1 ;如果是 1 的话,me 们将 α 的第 i 位置为 2 ;是 2 的置为 3;... ;是 9 的话置为 0。这样的话,α 不会等于任一个 ni,因为在第 i 个位置上它们的数字总是不一样的(因为改变过...)。但是呢,me 们构造的数确实是一个 [0,1) 的小数。

    也就是说,对于 [0,1) 中的数字,me 们一个一个地数,总会有一些数不到,O__O"…。所以,[0,1) 中的实数不可数。

    [0,1) 和 实数集 R 等势(基数相等,或是说个数相等)

    有了基数相等的判断标准之后,me 们发现自然数 N 和正偶数 2N 个数相等,N 和整数 Z 个数相等,N 和有理数 Q 个数相等。但是,N 和 [0,1) 之间的实数是不相等的,现在要说的是,[0,1) 之间的实数和 R 个数是相等的。

    1. 首先不关心 0,那么 (0,1) 可以很简单滴拉长,比如乘以系数 a 便有了 (0,a),me 们可以平移一下,比如 (-a/2, a/2),也就是 (0,1) 和任意的 (a,b) 都是等势的
    2. (0,1) 如果取倒数 1/x 的话,那么便是 (1, +∞),这也是一个一一的映射关系;
    3. (0,2) 中的 (0,1) 一一对应 (0,1),(1,2) 一一对应 (0,1) 进而一一对应 (1, +∞),所以 (0,2) 和所有的正实数等势
    4. (0.2) 和所有的正实数一一对应,(-2, 0) 和所有的负实数一一对应,那么 (-2,2) 可以和 R 一一对应; (-2,2) 可以和 (0,1) 一一对应,所以(0,1) 和 R 等势
    5. 0 肿么办的问题?实际上 [0,1) 和 (0,1) 等势,0 不是重点,因为如果 me 们抽取两个集合的自然数部分,实际上前者就是比后者多个 0,而 {0,1,2,3,...} 可以和 {1,2,3,4,...} 一一对应,所以,[0,1) 和 R 等势;

    前面说 [0,1) 之间的实数是不可数的,现在说 N 的幂集是不可数的,实际上 [0,1) 和 N 的幂集等势,也就是可以认为它们的个数相等。

    自然数 N 的幂集 (2N) 是不可数的

    1. [0,1) 之间的小数可以用十进制表示,也可以用二进制表示,表示形式是唯一的,0.5 D = 0.1 B,0.25 D = 0.01 B,....
    2. 任意一个小于1 的非负小数,me 们取其二进制形式,比如 0.1101001,如果将小数点后第 i 位对应的 0/1 看成是自然数 i 在某个集合比如 A 中的无/有,那么前面的那个小数就对应自然数的一个子集 {1, 2, 4, 7};所以,任一个小数便可以对应一个自然数的子集,当然,自然数的一个子集,me 们也可以很容易滴写出一个小数,这样的话,便有了 [0,1) 之间的小数与自然数 N 的所有子集的一一对应关系;
    3. 所以自然数的幂集,也就是自然数所有的子集形成的集合,它的基数,或是势,与 [0,1) 之间的实数相等,也有所有的实数的势相等;

    任何集合 S 的幂集 (2S) 都不和 S 等势

    对于有限集合来说是容易证明的的,2n > n (n ∈ {1, 2, 3, 4, .., ,k, ...}) 。对于自然数 N ,或是说可数无穷集合来说,上面也已证明。标题的意思是说,对于非可数无穷 S 来说,其幂集 2S 的势要比 S 的大。先不管怎么证明,这里至少给出了一种方法: 可以在一个集合上不断构造势更大的集合,只要不断滴构造幂集就可以。

    对于无限集合来说,最小的势就是 N 的势,记作 ℵ0。 其幂集的势(又是实数 R 的势) 20 记作 ℵ1,后面依次是 ℵ2,ℵ3,...

    这里的证明暂时略掉。(u 为什么这么吊,为什么 !)

    连续统假设

    前面说了, R 的势和 N 的幂集的势相等,是 20 = ℵ1。 连续统假设就是说,ℵ0 和 ℵ1 之间没有其他的势,这只是一个假设而已,目前既没有证明,也没有否证。

    关于 R 的势的其他一些结论

    前面说了,N 和 2N 的势是一样的,都是 ℵ0,也就是自然数个数和偶数个数是一样多的,下面是一些类似的结论:

    1. 直线上的点和二维平面、三维空间的点是一样多的;O__O"… (ℵ12 = ℵ1 3 = ℵ1)
    2. 10 = (20)0 = 2 0⋅ℵ0 = 20 = ℵ1

    最初只有自然数集合 N,也就是 {0, 1, 2, 3, 4, ...},这里面有没有 0 不是问题的重点,如果有 0 可以说一切都是“无中生有”,如果没有的话,可以说“一切都是从 1 开始”,喜欢闲扯的不妨扯一扯,O__O"…从自然数的加法,到自然数的乘法,到乘方,反过来减法、除法、开方,发现不够减产生了负数;发现不够除有了分数;发现开不尽,有了无理数;当然发现有些不能开方,又有了虚数,O__O"…。

    自然数集合 N,整数集合 Z,有理数集合 Q,实数集合 R,前者都是后者的真子集。关于这些集合,有一些结论 me 们是已经知道的,有一些可能不知道的,现在罗列一下:

    1. 有理数集合 Q 也就是分数集合 m/n,实数集合也就是小数集合;言外之意,所有的分数都有小数表示形式,但是有些小数却不能表示成分数
    2. 小数包括有限小数、无限循环小数和无限不循环小数,前两个都可以表示成分数,而后者,也就是无限不循环小数不可以表示成分数
    3. 无限不循环小数,也就是对应的无理数;实数包括有理数和无理数;π 是无理数;
    4. 代数方程的根,都是代数数;有些数不会是代数方程的根,这些数叫超越数;无理数根号 2 是 x2 = 2 的根,所以是代数数;π 是超越数;

    可数与不可数

    1. 自然数 N 是可数的,整数 Z 是可数的,有理数 Q 也是可数的,可以认为它们的个数都相等,或是说等势,基数相等;
    2. 实数 R 是不可数的,R 包括有理数和无理数;反证可以说明,无理数是不可数的;(两个可数的集合也是可数的)
    3. 代数数是可数的,n 次的代数方程有 n 个根,me 们可以按照 n 和方程的形式以及根的个数,一个一个地去数;超越数是不可数的
    4. N 是可数的,它的幂集 2N 是不可数的;实际上一个集合 S 和它的幂集 2S 不等势,也就是只要不断滴取幂集,那么就有越来越大的“无穷”集合;

    展开全文
  • 偶然看到一个问题,顺便总结一下std::...std::string 字符串可以初始化为NULL,虽然能通过编译,但是会出现运行错误。 std::string 使用以下两种初始化为空的方式:std::string s;//执行默认构造函数 std::string s
  • 在这篇文章中,我们将讨论Hadoop 2.x与Hadoop 3.x之间的比较。 Hadoop3版本中添加了哪些新功能,Hadoop3中兼容的Hadoop 2程序,Hadoop 2和Hadoop 3有什么区别? 我们希望Hadoop 2和Hadoop 3之间的这个功能的区别将...
  • 字符串(与数组进行比较

    千次阅读 2019-01-22 22:15:49
    JavaScript中的字符串和数组都是类数组(类数组就是包含有length属性,常见的是函数中的arguments的对象以及DOM方法返回的结果)。...二、与数组的不同点在js中,字符串是不可变的(可参考 链接描述 ),而...
  • 一般我们用strcmp比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按 ASCII 码值大小比较),直到出现不同的字符或遇到’\0’为止。如果全部字符都相同,则认为相同;如果出现相同的字符...
  • 迟滞比较

    千次阅读 2020-10-30 09:59:55
    迟滞比较器又理解为加正反馈的单限比较器。 单限比较器,如果输入信号Uin在门限值附近有微小的干扰,则输出电压就会产生相应的抖动(起伏)。在电路中引入正反馈可以克服这一缺点。 图1a给出了一个迟滞比较器,...
  • 什么是比较指令? 在PLC编程中,比较指令也是经常可以用到的指令之一,它的作用是可以把两个输出变量做一次判断,判断这两个数值是大于的关系还是等于,还是小于,...也就是这里,一定要选择对应的。 再应用上一节学
  • 收藏 |7本 Matlab入门经典教程书籍,不可错过!

    万次阅读 多人点赞 2019-04-03 21:21:27
    收藏 |7本 Matlab入门经典教程书籍,不可错过! Matlab的教程琳琅满目,一不小心就选的眼花缭乱。 选择Matlab参考书最关键的一点,就是参考书和自己目前能力要匹配。选的参考书过于简单或过于困难,既浪费钱,又...
  • 几大主流区块链开源技术的比较

    万次阅读 2019-05-18 08:12:01
    一、比特币体系 比特币(BitCoin)是最早也是全球最广泛使用和真正意义的去中心化区块链技术,因此他的开源技术体系非常值得参考。 比特币区块链的核心技术框架采用C++语言开发,共识算法...虽然说POW算法比较低效...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼鸿蒙的厉害在于 你可能非用不可瀑布先生06-05 09:52科技达人关注华为一直在研发一套操作系统,如果不是对手打压。可能大部分人,至今都不知道这个系统的存在。如果...
  • 比较器的使用方法的研究

    千次阅读 2018-05-09 20:09:36
    在同相比较电路中,当输入电压超过反相电压时,输出电压将从低电平转换到高电平。在反相比较电路中,当输入电压超过加到同相端参考电压时,输出将从高电平转变为低电平。 可以将比较器当作一个1位模/数转换器(ADC)...
  • JSON与XML的区别比较

    万次阅读 多人点赞 2019-06-20 09:19:52
     XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使借助工具也能写出JSON的代码,可是要写好XML就太容易了。 (4).解码难度方面。  XML的...
  • Matlab的教程琳琅满目,一小心就选的眼花缭乱。...第一本:《Matlab经典教程—从入门到精通》这本教程比较适合真正一点也懂的初学者,它有这样三个优点:(1) 概念讲的很清楚。(2) 命令归纳的全面。(3) 对照...
  • 电压比较电路

    万次阅读 多人点赞 2019-07-06 15:03:56
    一、电压比较器是对输入信号进行鉴幅与比较的电路,是组成非正弦波发生电路的基本单元电路。电压比较器可以用作模拟电路和数字电路的接口,还可以用作波形产生和变换电路等。由于比较器的输出只有低电平和高电平两种...
  • 摘要 python中的字典类似于js中的json,其实就...python中的集合,可以和列表相比较,因为它们只存储key,而存储value,但是列表有序而集合无序。同时它还可以和字典比较,因为集合和字典的实现方式一样,原因是在集
  • 某医生拟探讨药物以外的其他方法是否降低患者的胆固醇浓度,如增强体育锻炼、减少体重及改善饮食习惯等。 该医生随机招募了100位高胆固醇、生活习惯差的受试者,并将其随机分成两组。其中一组给予降胆固醇药物...
  • 一般我们用strcmp比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按\text{ASCII}ASCII码值大小比较),直到出现不同的字符或遇到'\0'为止。如果全部字符都相同,则认为相同;如果出现...
  • 比较器的简单介绍及应用

    万次阅读 2016-07-24 21:26:20
    在许多情况下,需要知道两个信号中哪个比较大...在同相比较电路中,当输入电压超过反相电压时,输出电压将从低电平转换到高电平。在反相比较电路中,当输入电压超过加到同相端参考电压时,输出将从高电平转变为低电平。
  • 为以后留个备用吧,博主最近在用七牛云存储,虽然有10G免费空间但每个月有10G的流量限制,敢放太多图片,只把一些重要图片放在上面,其他的基本上都是放在新浪微博图床上面的。 什么是图床? ...
  • lm339应用电路图集   lm339应用电路图:LM339集成块内部装有四个独立的电压比较器,该电压比较器的特点是: 失调电压小,典型值为2mV;...输出端电位灵活方便地选用。 LM339集成块采用C-14型封...
  • 复数与量法

    万次阅读 多人点赞 2018-09-05 16:49:13
    幅值、角(指数形式): (r是幅值,θ 是角 ) 两种形式相互转换: 【证明】 若 ,则 所以 ,实部 ,虚部 幅值 ,角 极坐标表示法: 一个非零复数z 的辐角有无穷多个值,它们相差 的整数倍,但...
  • 忽略大小写比较字符串大小

    千次阅读 2015-10-11 17:31:29
    一般我们用strcmp比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按ASCII码值大小比较),直到出现不同的字符或遇到’\0’为止。如果全部字符都相同,则认为相同;如果出现相同的字符,...
  • 事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都做 2 、一致性 (Consistency) 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,...
  • 原子性:指处于同一个事务中的多条语句是不可分割的。 一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。比如转账,转账前两个账户余额之和为2k,转账之后也应该是2K。 隔离性:指多线程环境下,...
  • 光学算法-相位提取算法(移干涉技术PSI)

    万次阅读 多人点赞 2021-04-25 15:39:17
    本文介绍了移干涉技术中最基础却也非常重要的一步——相位提取,主要阐述了移干涉测量原理、四步移法提取相位、多步平均法推导过程、多步解包裹后平均法这四个部分,希望能给同样从事该领域研究的你带来一点...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,008,837
精华内容 403,534
关键字:

不可相比叫