精华内容
下载资源
问答
  • 2020-10-04 22:19:27

    C语言中的void类型,代表任意类型,而不是空的意思。任意类型的意思不是说想变成谁就变成谁,而是说它的类型是未知的,是还没指定的。
    void * 是void类型的指针。void类型的指针的含义是:这是一个指针变量,该指针指向一个
    void类型的数。void类型的数就是说这个数有可能是int,也有可能是float,也有可能是个结构体,哪种类型都有可能,只是我当前不知道。
    void型指针的作用就是,程序不知道那个变量的类型,但是程序员自己心里知道。程序员如何知道?当时给这个变量赋值的时候是什么类型,现在取的时候就还是什么类型。这些类型对不对,能否兼容,完全由程序员自己负责。编译器看到void就没办法帮你做类型检查了。
    在函数的参数列表和返回值中,void代表的含义是:
    一个函数形参列表为void,表示这个函数调用时不需要给它传参。
    返回值类型是void,表示这个函数不会返回一个有意义的返回值。所以调用者也不要想着去使用该返回值。

    更多相关内容
  • 本文主要给大家介绍了关于mysql执行计划id为空(UNION关键字)的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的 介绍吧 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。例如,我有两个...
  • 主要介绍了PHP正则表达式替换站点关键字链接后空白的问题解决,需要的朋友可以参考下
  • 听到不推荐with关键字后,我们很多人都会忽略掉with关键字,认为不要去管它用它就可以了。但是有时候,我们在看一些代码或者面试题的时候,其中会有with关键字的相关问题,很多坑是你没接触过的,所以还是有必要说说...
  • VBScript 关键字

    2021-01-19 21:37:06
    当第一次创建变量时或变量值显式设置为空时,变量值未初始化且变量被赋值。 实例: Dim x ‘变量 x 未初始化! x=”ff” ‘变量 x 不再是未初始化 x=Empty ‘变量 x 未初始化! 注意:这和 Null 不一样!! ...
  • 如下图所示,有一个近2000行的数据表,需要把其中含有关键字‘颈廓清术,中央组(VI组)’的数据所在行都都给抽取出来,且提取后的表格不能改变原先的顺序。 问题分析: 一开始想用excel的筛选功能,但是发现只提供...
  • 主要介绍了PHP屏蔽过滤指定关键字的方法,包含了字符串的过滤处理与数组的遍历等技巧,非常具有实用价值,需要的朋友可以参考下
  • 主要大家详细介绍了vue input输入框关键字筛选检索列表数据展示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 问题:在谷歌浏览器使用xpath helper插件时有匹配结果,但在程序里面使用python内带的xpath匹配却为空的原因。 原因:不同服务器会对不同的浏览器返回不同的数据,导致在谷歌浏览器看到的和服务器返回的有区别 ...
  • Java关键字

    2021-03-05 13:18:33
    在Eclipse中,我们输入某些词时,这些词会自动变色,这些就是Java关键字。当然也有例外情况:const和goto虽然也变了颜色,但是却会报错,这两个词称为Java的保留字。除了这两个保留字之外,Java还有51 个关键字。...

    在Eclipse中,我们输入某些词时,这些词会自动变色,这些就是Java关键字。当然也有例外情况:

    const和goto虽然也变了颜色,但是却会报错,这两个词称为Java的保留字。

    除了这两个保留字之外,Java还有51 个关键字。

    首先是基本数据类型:int 定义整型变量

    short 定义短整型变量

    long 定义长整型变量

    byte 定义字节型变量

    float 定义单精度字符型变量

    double 定义双精度浮点型变量

    boolean 定义布尔型变量

    char 定义字符型变量

    外加返回值为空的:void

    然后是循环结构:while

    do...while

    if

    else

    for

    continue

    break选择结构:

    1. switch

    2.case

    访问修饰符:public

    default

    protected

    private

    与包相关:package

    import

    与类相关:class :类的定义

    extends :类的继承

    interface :接口的定义

    implements :接口的继承

    abstract :抽象类的定义

    final :用final修饰的属性或者方法都不能被继承

    super:

    this:

    static:

    return:

    new: 实例化对象

    volatile:用于表示可以被多个线程异步修改的成员变量。

    与异常有关:try

    catch

    finally

    throw

    throws

    其他:true

    false

    null

    instanceof:判断其左边对象是否为其右边类的实例,返回boolean类型的数据。

    native: 可以应用于方法,以指示该方法是用Java以外的语言实现的,例如C语言, C++。

    synchronized: 可以应用于方法或语句块,并为一次只应由一个线程执行的关键代码段提 供保护。

    transient: 可以应用于类的成员变量,以便指出该成员变量不应在包含它的类实例已序列 化时被序列化。

    enum: 枚举,列举类别

    asset :断言

    strictfp: 严格,精确

    这里重点说一下static和final关键字:

    static关键字

    静态的,可用来修饰属性、方法以及内部类。用static修饰的属性称为全局属性,也称静态属性。

    public class Test {

    public static int count = 2;

    public static void main(String[] args) {

    Test t = new Test();

    System.out.println(t.count);

    Test t1 = new Test();

    t1.count++;

    System.out.println(t.count+"\t"+t1.count+"\t"+Test.count);

    }

    }

    运行结果:2

    333

    可见,static定义的属性是类的所有对象共享的,静态变量既能被对象调用,也能被类名调用。

    2.用static修饰的方法称为静态方法,调用时不用实例化对象,可直接使用类名调用。

    public class Test1 {

    public static int lh(){

    return 250;

    }

    public static void main(String[] args) {

    System.out.print("ABC智商"+Test1.lh());

    }

    }

    运行结果:ABC智商250

    3.静态类

    一般来说,一个普通类是不允许被声明为static的,但是,在内部类中可以将其声明为static的,这个时候,外部类可以直接调用内部类,因为static的内部类是在加载外部类的同时加载的,所以也就是说,并不要实例化外部类就能直接调用静态内部类。

    final关键字

    使用final关键字要注意三点:使用final修饰的类不能有子类

    使用final修饰的方法不能被重写

    使用final修饰的变量即为常量,不能修改

    展开全文
  • <SCRIPT LANGUAGE="JavaScript"> <!-- function post_search(){ if(document.getElementById("search_keyword").value==''){ ...alert("关键字不能为空"); ...

    <SCRIPT LANGUAGE="JavaScript">

     

    <!--

     

    function post_search(){

     

    if(document.getElementById("search_keyword").value==''){

     

    alert("关键字不能为空");

     

    return false;

     

    }

     

    document.getElementById("form_search").submit();

     

    }

     

    //-->

     

    </SCRIPT>

    转载于:https://www.cnblogs.com/ninelife/p/4253008.html

    展开全文
  • cpp多个关键字请用

    2011-05-02 10:05:33
    勿上传小说、mp3、图片等与技术无关的内容勿上传小说、mp3、图片等与技术无关的内容
  • synchronized 关键字详解

    千次阅读 热门讨论 2021-04-07 14:08:27
    构造方法可以使用 synchronized 关键字修饰么?4. JDK1.6 之后的 synchronized 关键字底层做了哪些优化?5. synchronized 和 ReentrantLock 的区别6. synchronized 关键字与Lock的区别 synchronized 关键字解决的是...

    synchronized 关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。另外,在 Java 早期版本中,synchronized 属于重量级锁,效率比较低。
     

    1. synchronized 关键字的三种使用方法

    1.1. 修饰实例方法

    作用于当前对象实例加锁,进入同步代码前要获得当前对象实例的锁

    synchronized void method() {
      //业务代码
    }
    

    2.2. 修饰静态方法

    给当前类加锁,会作用于类的所有对象实例 ,进入同步代码前要获得 当前 class 的锁。因为静态成员不属于任何一个实例对象,是类成员( static 表明这是该类的一个静态资源,不管 new 了多少个对象,只有一份)。

    所以,如果一个线程 A 调用一个实例对象的非静态 synchronized 方法,而线程 B 需要调用这个实例对象所属类的静态 synchronized 方法,是允许的,不会发生互斥现象,因为访问静态 synchronized 方法占用的锁是当前类的锁,而访问非静态 synchronized 方法占用的锁是当前实例对象锁。

    synchronized static void method() {
    //业务代码
    }
    

    3.3. 修饰代码块

    指定加锁对象,对给定对象/类加锁。synchronized(this|object) 表示进入同步代码库前要获得给定对象的锁。synchronized(类.class) 表示进入同步代码前要获得 当前 class 的锁

    synchronized(this) {
      //业务代码
    }
    

    总结:

    1. synchronized 关键字加到 static 静态方法和 synchronized(class) 代码块上都是是给 Class 类上锁。
    2. synchronized 关键字加到实例方法上是给对象实例上锁。
    3. 尽量不要使用 synchronized(String a) 因为 JVM 中,字符串常量池具有缓存功能!

     

    2. 双重检验锁方式实现单例模式

    public class Singleton {
    
        private volatile static Singleton uniqueInstance;
    
        private Singleton() {
        }
    
        public  static Singleton getUniqueInstance() {
           //先判断对象是否已经实例过,没有实例化过才进入加锁代码
            if (uniqueInstance == null) {
                //类对象加锁
                synchronized (Singleton.class) {
                    if (uniqueInstance == null) {
                        uniqueInstance = new Singleton();
                    }
                }
            }
            return uniqueInstance;
        }
    }
    

    为什么是双重校验锁实现单例模式呢?

    第一次校验:

    也就是第一个if (uniqueInstance == null),这个是为了代码提高代码执行效率,由于单例模式只要一次创建实例即可,所以当创建了一个实例之后,再次调用getUniqueInstance()方法就不必要进入同步代码块,不用竞争锁。直接返回前面创建的实例即可。

    第二次校验:

    也就是第二个if (uniqueInstance == null),这个校验是防止二次创建实例,假如有一种情况,当uniqueInstance还未被创建时,线程 t1 调用getUniqueInstance()方法,由于第一次判断uniqueInstance == null,此时线程 t1 准备继续执行,但是由于资源被线程t2抢占了。

    此时线程 t2 也调用getUniqueInstance()方法,同样的,由于uniqueInstance并没有实例化,线程 t2 同样可以通过第一个 if,然后继续往下执行,第二个 if 也通过。然后线程 t2 创建了一个实例uniqueInstance。此时线程 t2 完成任务,资源又回到线程 t1,t1此时也进入同步代码块。

    如果没有这个第二个 if,那么,t1 就也会创建一个uniqueInstance实例。此时就会出现创建多个实例的情况,但是加上第二个 if,就可以完全避免这个多线程导致多次创建实例的问题。

    所以说:两次校验都必不可少。

    另外,需要注意 uniqueInstance 采用 volatile 关键字修饰也是很有必要。 uniqueInstance = new Singleton(); 这段代码其实是分为三步执行:

    1. 为 uniqueInstance 分配内存空间
    2. 初始化 uniqueInstance
    3. 将 uniqueInstance 指向分配的内存地址

    但是由于 JVM 具有指令重排的特性,执行顺序有可能变成 1->3->2。指令重排在单线程环境下不会出现问题,但是在多线程环境下会导致一个线程获得还没有初始化的实例。

    例如,线程 T1 执行了 1 和 3,此时 T2 调用 getUniqueInstance() 后发现 uniqueInstance 不为空,因此返回 uniqueInstance,但此时 uniqueInstance 还未被初始化。

    使用 volatile 可以禁止 JVM 的指令重排,保证在多线程环境下也能正常运行。

    3. 构造方法可以使用 synchronized 关键字修饰么?

     

    构造方法本身就属于线程安全的,不存在同步的构造方法一说。因此,构造方法不能使用 synchronized 关键字修饰。

     

    4. JDK1.6 之后的 synchronized 关键字底层做了哪些优化?

    JDK1.6 对锁的实现引入了大量的优化,如偏向锁、轻量级锁、自旋锁、适应性自旋锁、锁消除、锁粗化等技术来减少锁操作的开销。

    锁主要存在四种状态,依次是:无锁状态、偏向锁状态、轻量级锁状态、重量级锁状态,他们会随着竞争的激烈而逐渐升级。注意锁可以升级不可降级,这种策略是为了提高获得锁和释放锁的效率。

    关于这几种优化的详细信息可以查看下面这篇文章:Java6及以上版本对synchronized的优化

     

    5. synchronized 和 ReentrantLock 的区别

    5.1. synchronized 和 ReentrantLock都是可重入锁

    可重入锁指的是自己可以再次获取自己的内部锁。比如一个线程获得了某个对象的锁,此时这个对象锁还没有释放,当其再次想要获取这个对象的锁的时候还是可以获取的。

    如果不可锁重入的话,就会造成死锁。同一个线程每次获取锁,锁的计数器都自增 1,所以要等到锁的计数器下降为 0 时才能释放锁。

    5.2.synchronized 依赖于 JVM 而 ReentrantLock 依赖于 API

    synchronized 是依赖于 JVM 实现的,也就是说它是一个关键字,前面也讲到了虚拟机团队在 JDK1.6 为 synchronized 关键字进行了很多优化,但是这些优化都是在虚拟机层面实现的,并没有直接暴露给我们。ReentrantLock 是 JDK 层面实现的(也就是 API 层面,需要 lock() 和 unlock() 方法配合 try/finally 语句块来完成),所以我们可以通过查看它的源代码,来看它是如何实现的。

    5.3.ReentrantLock 比 synchronized 增加了一些高级功能

    主要来说有三点:

    1. 等待可中断 :

    ReentrantLock提供了一种能够中断等待锁的线程的机制,通过 lock.lockInterruptibly() 来实现这个机制。也就是说正在等待的线程可以选择放弃等待,改为处理其他事情。

    1. 可实现公平锁 :

    ReentrantLock可以指定是公平锁还是非公平锁。而synchronized只能是非公平锁。

    所谓的公平锁就是先等待的线程先获得锁。ReentrantLock默认情况是非公平的,可以通过 ReentrantLock类的ReentrantLock(boolean fair)构造方法来制定是否是公平的。

    1. 可实现选择性通知(锁可以绑定多个条件):

    synchronized关键字与wait()和notify()/notifyAll()方法相结合可以实现等待/通知机制。ReentrantLock类也可以实现,但是需要借助于Condition接口与newCondition()方法。

    Condition是 JDK1.5 之后才有的,它具有很好的灵活性,比如可以实现多路通知功能也就是在一个Lock对象中可以创建多个Condition实例(即对象监视器),线程对象可以注册在指定的Condition中,从而可以有选择性的进行线程通知,在调度线程上更加灵活。 在使用notify()/notifyAll()方法进行通知时,被通知的线程是由 JVM 选择的。

    ReentrantLock类结合Condition实例可以实现“选择性通知” ,这个功能非常重要,而且是 Condition 接口默认提供的。而synchronized关键字就相当于整个 Lock 对象中只有一个Condition实例,所有的线程都注册在它一个身上。如果执行notifyAll()方法的话就会通知所有处于等待状态的线程这样会造成很大的效率问题,而Condition实例的signalAll()方法只会唤醒注册在该Condition实例中的所有等待线程。

    如果你想使用上述功能,那么选择 ReentrantLock 是一个不错的选择。性能已不是选择标准

     

    6. synchronized 关键字与Lock的区别

    1. synchronized是java内置关键字,在jvm层面;Lock是个java类

    2. synchronized无法判断是否获取锁的状态;Lock可以判断是否获取到锁

    3. synchronized会自动释放锁(a线程执行完同步代码会释放锁;b线程执行过程中发生异常会释放锁);Lock需在finally中手工释放锁(unlock()方法释),否则容易造成线程死锁;

    4. synchronized关键字的两个线程1和线程2,如果当前线程1获得锁,线程2线程等待。如果线程1阻塞,线程2则会一直等待下去。Lock锁就不一定会等待下去,如果尝试获取不到锁,线程可以不用一直等待就结束了;

    5. synchronized的锁可重入、不可中断、非公平。而Lock锁可重入、可中断、可公平

    6. synchronized锁适合代码少量的同步问题,Lock锁适合大量同步的代码的同步问题

     

    7. synchronized 关键字和volatile 关键字

    7.1. volatile 关键字

    在 JDK1.2 之前,Java 的内存模型实现总是从主存(即共享内存)读取变量,是不需要进行特别的注意的。

    而在当前的 Java 内存模型下,线程可以把变量保存本地内存(比如机器的寄存器)中,而不是直接在主存中进行读写。

    这就可能造成一个线程在主存中修改了一个变量的值,而另外一个线程还继续使用它在寄存器中的变量值的拷贝,造成数据的不一致。

    在这里插入图片描述

    要解决这个问题,就需要把变量声明为volatile,这就指示 JVM,这个变量是共享且不稳定的,每次使用它都到主存中进行读取。

    所以,volatile 关键字 除了防止 JVM 的指令重排 ,还有一个重要的作用就是保证变量的可见性。

    在这里插入图片描述

    7.3. 并发编程的三个重要特性

    1. 原子性 : 一个的操作或者多次操作,要么所有的操作全部都得到执行并且不会收到任何因素的干扰而中断,要么所有的操作都执行,要么都不执行。synchronized 可以保证代码片段的原子性。
    2. 可见性 :当一个变量对共享变量进行了修改,那么另外的线程都是立即可以看到修改后的最新值。volatile 关键字可以保证共享变量的可见性。
    3. 有序性 :代码在执行的过程中的先后顺序,Java 在编译器以及运行期间的优化,代码的执行顺序未必就是编写代码时候的顺序。volatile 关键字可以禁止指令进行重排序优化。

    7.4. synchronized 关键字和 volatile 关键字的区别

    synchronized 关键字和 volatile 关键字是两个互补的存在,而不是对立的存在!

    1. volatile 关键字是线程同步的轻量级实现,所以volatile 性能肯定比synchronized关键字要好。但是volatile 关键字只能用于变量而 synchronized 关键字可以修饰方法以及代码块。
    2. volatile 关键字能保证数据的可见性,但不能保证数据的原子性。synchronized 关键字两者都能保证。
    3. volatile关键字主要用于解决变量在多个线程之间的可见性,而 synchronized 关键字解决的是多个线程之间访问资源的同步性。
    4. 多线程访问volatile关键字不会发生阻塞,而synchronized关键字可能会发生阻塞

     
    参考:

    https://blog.csdn.net/yuan_qh/article/details/99962482

    https://www.cnblogs.com/iyyy/p/7993788.html

    https://github.com/Snailclimb/JavaGuide

    展开全文
  • db.getCollection('fjh9').find({ item_dict: { $exists: true, $ne: {} } }) 查询字典是否为空
  • C语言关键字

    2021-05-23 10:16:51
    该楼层疑似违规已被系统折叠隐藏此楼查看此楼C语言关键字我们学习了C语言提供的“基本数据类型”,例如char、int这样的数据类型,我们可以使用这个数据类型来定义一个变量,例如:char c = 'A';此时,定义了一个字符...
  • java 关键字详解

    千次阅读 2021-03-06 13:57:35
    一、关键字总览:访问控制privateprotectedpublic类,方法和变量修饰符abstractclassextendsfinalimplementsinterfacenativenewstaticstrictfpsynchronizedtransientvolatile程序控制...
  • 多个关键字请用空格分隔,最多填写5个。点击右侧Tag快速添加
  • C语言——关键字

    千次阅读 2021-05-22 04:34:04
    C语言——关键字宗旨:技术的学习是有限的,分享的精神是无限的。【谨记:尽量不要用printf函数,要去看变量的值,内存的值。】auto,int,double,long,char,float,short,signed,unsigned,struct,union,...
  • abstract关键字

    千次阅读 2020-07-10 11:34:04
    自行车2个轮子需要人踩着跑,三轮车有3个轮子可以人踩、也能电动,汽车发动机推动跑等等,那么“车”的表达抽象的。 特点: abstract可以修饰类,也可以修饰方法; abstract修饰的类可以被继承和实现,但是这个类...
  • 如果这些业务逻辑的实现并非截然不同的话,显然不符合oop编程思想,极不利于维护,当然,我们也可以通过将相同的逻辑部分封装成一个方法,但还有一种更为合理简单的方法,下面就通过this关键字来实现串联构造函数做一简单...
  • return 关键字

    千次阅读 2020-09-02 20:01:48
    C语言提供了return关键字可以用于退出函数的运行,而且,可以在退出函数的时候,返回一个数据。 例如while循环语句中的break关键字一样,break语句可以跳出while循环语句,结束while循环语句的运行。那么,return...
  • Java--static关键字修饰属性和方法

    多人点赞 2022-04-14 09:45:08
    static关键字 static关键词与对象无关。 static关键字主要修饰四个部分的内容 这里我们主要介绍static修饰属性和修饰方法。 1.static修饰属性(静态属性) 1.1.哪些成员属性可以被static修饰。 我们把static修饰的...
  • Oracle期末复习题目,带标准答案和部分解释,考试必备良品
  • v-if为空判断模块消失 搜索条效果 <div class="search-input"> <icon type='search' size='16'/> <input placeholder="请输入关键字" /> </div> <button class="cancel">取消<...
  • C语言关键字解析

    千次阅读 2021-05-22 11:28:16
    C语言关键字解析C语言关键字有32个,如表1所示。...表1 C语言标准定义的32个关键字关键字意义auto声明自动变量,缺省时编译器一般默认autoint声明整型变量double声明双精度变量long声明长整型变量cha...
  • SearchView(可以进行关键字搜索,代码已设置展开,解决部分机型展开后有两个搜索图标的问题,可以自定义编辑框内文字颜色,去掉底部下划线,去掉焦点,编辑框内容为空时不显示delete键,不为空时显示,delete键的...
  • DCL什么要用volatile关键字

    千次阅读 2020-04-25 18:04:23
    //Singleton对象属性,加上volatile关键字是为了防止指定重排序,要知道singleton = new Singleton()拆分成cpu指令的话,有足足3个步骤 private volatile static Singleton singleton; //对外...
  • static关键字你真的懂了吗?

    千次阅读 多人点赞 2022-03-17 18:35:28
    Java和C/C++中Static关键字的详细解读

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 561,848
精华内容 224,739
关键字:

关键字可以为空吗