精华内容
下载资源
问答
  • 将带大家快速理解Java引用文章介绍的很详细,对大家学习Java很有帮助哦,有需要的可以参考借鉴。
  • LaTeX如何引用参考文献

    千次阅读 2020-10-13 18:09:56
    在文章文章末尾写好需要插入的参考文献,逐一写出,例如: \begin{thebibliography}{99} \bibitem{ref1}郭莉莉,白国君,尹泽成,魏惠芳. “互联网+”背景下沈阳智慧交通系统发展对策建议[A]. 中共沈阳市委、沈阳...

    LaTeX插入参考文献,可以使用BibTex,也可以不使用BibTex。

    不使用BibTeX

    先在文章文章末尾写好需要插入的参考文献,逐一写出,例如:

    \begin{thebibliography}{99}  
    
    \bibitem{ref1}郭莉莉,白国君,尹泽成,魏惠芳. “互联网+”背景下沈阳智慧交通系统发展对策建议[A]. 中共沈阳市委、沈阳市人民政府.第十七届沈阳科学学术年会论文集[C].中共沈阳市委、沈阳市人民政府:沈阳市科学技术协会,2020:4.
    \bibitem{ref2}陈香敏,魏伟,吴莹. “文化+人工智能”视阈下文化创意产业融合发展实践及路径研究[A]. 中共沈阳市委、沈阳市人民政府.第十七届沈阳科学学术年会论文集[C].中共沈阳市委、沈阳市人民政府:沈阳市科学技术协会,2020:4.
    \bibitem{ref3}田晓曦,刘振鹏,彭宝权. 地方高校开展教育人工智能深度融合的路径探究[A]. 中共沈阳市委、沈阳市人民政府.第十七届沈阳科学学术年会论文集[C].中共沈阳市委、沈阳市人民政府:沈阳市科学技术协会,2020:5.
    \bibitem{ref4}柏卓君,潘勇,李仲余.彩色多普勒超声在早期胚胎停育诊断中的应用[J].影像研究与医学应用,2020,4(18):129-131.
    \bibitem{ref5}杨芸.我院2018年人血白蛋白临床应用调查与分析[J].上海医药,2020,41(17):34-35+74.
    
    \end{thebibliography}
    

    上面列出了5个参考文献,{thebibliography}的选项99指的是参考文献的个数最大为99,可以设置为别的数。

    在正文中引用参考文献的方法是:

    \cite{ref1}

    \cite{ref1, ref5}

    这样编译后就可以得到:

    [1]

    [1, 5]

    使用BibTeX

    这种方法需要建立参考文献数据库,引用的时候调用所需要的参考文献

    BibTeX 是一种格式和一个程序,用于协调LaTeX的参考文献处理. BibTeX 使用数据库的的方式来管理参考文献. BibTeX 文件的后缀名为 .bib . 先来看一个例子

    @article{name1,
    author = {作者, 多个作者用 and 连接},
    title = {标题},
    journal = {期刊名},
    volume = {卷20},
    number = {页码},
    year = {年份},
    abstract = {摘要, 这个主要是引用的时候自己参考的, 这一行不是必须的}
    }
    @book{name2,
    author ="作者",
    year="年份2008",
    title="书名",
    publisher ="出版社名称"
    }
    

    说明:

    • 第一行@article 告诉 BibTeX 这是一个文章类型的参考文献,还有其它格式, 例如 article, book, booklet, conference, inbook, incollection, inproceedings,manual, misc, mastersthesis, phdthesis, proceedings, techreport, unpublished 等等.
    • 接下来的"name1",就是你在正文中应用这个条目的名称.
    • 其它就是参考文献里面的具体内容啦.

    在LaTeX中使用BibTeX

    在论文最末,\end{document}之前,插入如下两行命令:

    \bibliographystyle{plain}
    \bibliography{ref}
    
    • 命令1的作用是插入参考文献的样式,不同的杂志期刊的样式不一样,视个人情况。

    • 命令2的作用是插入ref.bib文件

    常见的预设样式的可选项有8种,分别是:

    • plain,按字母的顺序排列,比较次序为作者、年度和标题;

    • unsrt,样式同plain,只是按照引用的先后排序;

    • alpha,用作者名首字母+年份后两位作标号,以字母顺序排序;

    • abbrv,类似plain,将月份全拼改为缩写,更显紧凑;

    • ieeetr,国际电气电子工程师协会期刊样式;

    • acm,美国计算机学会期刊样式;

    • siam,美国工业和应用数学学会期刊样式;

    • apalike,美国心理学学会期刊样式;

    引用文献:

    \cite {引用文章名称}
    

    如何编译

    然后重头戏来了,编译(此处有巨坑):

    我当时查了网上很多教程,反复编了好几回,非常混乱,说什么的都有。

    我的代码:

     引用了wangyi2018 \cite{wangyi2018}
     引用了liangjun2015 \cite{liangjun2015}
    
    
    \bibliographystyle{IEEEtran}
    \bibliography{a} 
    

    我编译的做法是:

    先用 pdflatexmk 编译,再用 XeLaTex 编译,效果如下:

    image-20201012210806903

    网上还有一些教程说按照 xetex->bibtex->xetex 的顺序编译的也有,也有按照四个步骤编译的也有,但我照他们的做法都没成功过,我也不知道为啥LaTex把这个东西搞这么复杂。

    一开始我只用XeLaTex编译,出现了各种混乱,效果如下:

    image-20201012211116503

    如果你也出现这种情况,估计在编译上出了问题。

     

    参考资料

    1、https://www.moonpapers.com/blog/5f8502bc30a4195e92ccc6db

    展开全文
  • #解决引用jquery文件始终不起作用的相关原因 能力有限,欢迎补充、修正。 这几天想入手jquery,就自己弄了个入门级的demo,但从官网下载jquery-3.3.1.min.js,并使用<script type="text/javascript"...

    #解决引用jquery文件始终不起作用的相关原因
    能力有限,欢迎补充、修正。
    这几天想入手jquery,就自己弄了个入门级的demo,但从官网下载jquery-3.3.1.min.js,并使用<script type="text/javascript" src="../lib/jquery-3.3.1.min.js"></script>后。死活效果出现不了。工程目录结构如下:
    在这里插入图片描述
    (jquery
    .js和jquery*.min.js文件作用上没有什么区别。只是jquery*.min.js是编译后的js文件体积更小,建议使用jquery*.min.js)
    1.网上看了许多文章,说引用的jquery*.min.js文件不能够放在WEB-INF目录下。因为放在WEB-INF下,会导致访问不到文件。一般都是放在WebContent文件下。
    2.关于路径,是根据所使用的jsp,html文件等的位置所确定的,应根据自己工程的实际位置来确定引用的位置。
    由于我的demo,是通过index.jsp中跳转到应用界面的,所以应该以index.jsp的位置来确定,jquery*.js的引用位置。index.jsp的路径为WebContent/index.jsp,所以引用jquery应为:<script src="lib/jquery-3.3.1.min.js"></script>
    在这里插入图片描述
    (*该种长片区报错,不影响使用,未做修改)
    在这里插入图片描述
    要保证在引用语句没有黄色下划波浪线,并在左侧有黄色三角感叹号的情况下执行代码(eclipse中);我起先在;但不知道什么原因,提示找不到引用的jquery.js文件;后来去掉type="java/javascript"后,竟然没有了黄色下划波浪线;
    建议使用<script src="lib/jquery-3.3.1.min.js"></script>即可,避免不必要的错误,反正html和html5,默认的脚本语言都是javascript。
    但是,后来我又加上了type=“java/javascript”,仍然可以执行动作,非常奇怪(可能是1.我引用的语法出现了问题,2:eclipse运行环境没有刷新)。总之,提醒大家,注意引用的时候,在eclipse中,一定要保证不报黄色下划波浪线;在使用F12时能够找到相应的引用文件。
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 引用WeakReference作用与使用场景

    千次阅读 2019-12-29 16:56:03
    分析threadLocal源码时,发现有使用弱引用WeakReference,之前总结GC的时候,也曾简单介绍java引用类型(《jvm GC算法类型》第6节),本文详细总结下WeakReference的使用方法。 java4种引用类型: 强:A a=...

    文章目录

    在分析threadLocal源码时,发现有使用弱引用WeakReference,在之前总结GC的时候,也曾简单介绍java引用类型(《jvm GC算法类型》第6节),本文在详细总结下WeakReference的使用方法。

    java4种引用类型:

    • 强:A a=new A(); 此时引用a强引用对象A;不会被GC
    • 软:SoftReference.java,在内存不够时引用对象会被GC;
    • 弱:WeakReference.java,每次GC都会被回收;
    • 虚:PhantomReference.java,每次GC都会被回收;

    弱引用指向的对象,每次GC时,对象都会被作为垃圾回收。

    看下源码

    public class WeakReference<T> extends Reference<T> {
    
        /**
         * 创建一个弱引用,指向给定对象,不使用队列
         *
         * @param referent 弱引用指向的对象
         */
        public WeakReference(T referent) {
            super(referent);
        }
    
        /**
         * 创建一个弱引用,指向给定对象;引用在指定队列中注册
         *
         * @param referent 弱引用指向的对象
         * @param q the 注册弱引用的队列
         */
        public WeakReference(T referent, ReferenceQueue<? super T> q) {
            super(referent, q);
        }
        
    }
    

    只有两个构造方法,不废话了,针对中两种构造放方法,直接上使用demo:

    1. Demo

    先看WeakReference第一种使用方式:

    • WeakReference(T referent)
    public class WeakReferenceDemo {
        public static void main(String[] args) {
            //强引用
            RoleDTO role = new RoleDTO(1, "CEO");
    
            //弱引用
            WeakReference<RoleDTO> weakReference = new WeakReference<>(new RoleDTO(1, "CTO"));
            //主动让出发GC
            System.gc();
            try {
                //给GC留点时间,保证GC执行完成
                TimeUnit.SECONDS.sleep(2);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            if (role == null) {
                System.out.println("强引用指向的RoleDTO对象 已经被回收");
            }
            
            //weakReference.get()获取弱引用指向的对象,如果对象是null,表示被回收
            if (weakReference.get() == null) {
                System.out.println("弱引用指向的RoleDTO对象 已经被回收");
            }
     
        }
    }
    
    //随便创建个对象
    import lombok.Data;
    @Data
    @AllArgsConstructor
    public class RoleDTO {
        private Integer id;
        private String type;
    }
    

    输出如下:
    在这里插入图片描述
    上述demo中,创建了两个对象,使用两种引用方式:
    在这里插入图片描述

    • RoleDTO role = new RoleDTO();此role变量属于强引用,GC发生后,它指向的对象不被回收;通过后边打印,已经证明;
    • WeakReference< RoleDTO> weakReference= new WeakReference<>(new RoleDTO());此weakReference是弱引用,GC发生后,它指向的对象被回收,通过打印输出已经证明。

    下面继续分析WeakReference第二种使用方式:

    • WeakReference(T referent, ReferenceQueue<? super T> q)
      这个构造方法多了个参数,是个引用队列类型;当发生GC后,被弱引用指向的对象被回收,同时这些弱引用将会被添加的这个引用队列当中。

    下面看demo:

    public class WeakReferenceDemo {
        public static void main(String[] args) {
           ReferenceQueue<RoleDTO> referenceQueue = new ReferenceQueue<>();
            WeakReference<RoleDTO> weakReference = new WeakReference<>(new RoleDTO(3, "CFO"), referenceQueue);
    
            System.out.println("GC执行前----");
            Reference<? extends RoleDTO> reference;
            while ((reference = referenceQueue.poll()) != null) {
                //如果使用继承的方式就可以包含其他信息了
                System.out.println("referenceQueue中:" + reference);
            }
    
            System.gc();
            try {
                //给GC留点时间,保证GC执行完成
                TimeUnit.SECONDS.sleep(2);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("GC执行后----");
            if (weakReference.get() == null) {
                System.out.println("弱引用指向的RoleDTO对象 已经被回收");
            }
            Reference<? extends RoleDTO> reference2;
            while ((reference2 = referenceQueue.poll()) != null) {
                //如果使用继承的方式就可以包含其他信息了
                System.out.println("referenceQueue中:" + reference2);
            }
     
        }
    }
    
    最后输出:
    GC执行前----
    GC执行后----
    弱引用指向的RoleDTO对象 已经被回收
    referenceQueue中:java.lang.ref.WeakReference@377dca04
    

    执行前后,我们都打印了引用队列种的内容,GC之前没有打印输出;GC之后,弱引用被放入队列中,被打印输出。

    2. 使用场景

    直接看ThreaLocal中的map实现(请参考一个场景Demo分析ThreadLocal使用方法和原理),此map继承了弱引用WeakReference,防止map中的key引用的对象无法被回收;

    除了ThreaLocal,还有一些高速缓存场景;因为缓存数据时用来加快执行速度,但是又不能无限制的将数据存入缓存,因为内存容量是有限的,这时可以使用弱引用,GC时及时清理缓存对象。

    展开全文
  • C++中引用符&详解

    千次阅读 2017-07-22 19:18:46
    对于习惯使用C进行开发的朋友们,看到c++出现的&符号,可能会犯迷糊,因为C语言这个符号表示了取地址符,但是C++它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的...

    本文转载自http://www.cnblogs.com/Mr-xu/archive/2012/08/07/2626973.html


    对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。在 c++学习提高篇(3)---隐式指针的文章中我详细介绍了在隐式指针&的用法,其实这两个概念是统一的。


    引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅 是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛砖 引玉的作用。

      一、引用简介

      引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。

      引用的声明方法:类型标识符 &引用名=目标变量名;

      【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名

      说明:

      (1)&在此不是求地址运算,而是起标识作用。

      (2)类型标识符是指目标变量的类型。

      (3)声明引用时,必须同时对其进行初始化。

      (4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。

                 ra=1; 等价于 a=1;

      (5)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引

    用分配存储单元。故:对引用求地址,就是对目标变量求地址。&ra与&a相等。

      (6)不能建立数组的引用。因为数组是一个由若干个元素所组成的集合,所以无法建立一个数组的别名。

     二、引用应用

       1、引用作为参数

      引用的一个重要作用就是作为函数的参数。以前的C语言中函数参数传递是值传递,如果有大块数据作为参数传递的时候,采用的方案往往是指针,因为 这样可以避免将整块数据全部压栈,可以提高程序的效率。但是现在(C++中)又增加了一种同样有效率的选择(在某些特殊情况下又是必须的选择),就是引 用。

      【例2】:

    void swap(int &p1, int &p2) //此处函数的形参p1, p2都是引用

    { int p; p=p1; p1=p2; p2=p; }

      为在程序中调用该函数,则相应的主调函数的调用点处,直接以变量作为实参进行调用即可,而不需要实参变量有任何的特殊要求。如:对应上面定义的swap函

    数,相应的主调函数可写为:

    main( )
    {
     int a,b;
     cin>>a>>b; //输入a,b两变量的值
     swap(a,b); //直接以变量a和b作为实参调用swap函数
     cout<<a<< ' ' <<b; //输出结果
    }

     上述程序运行时,如果输入数据10 20并回车后,则输出结果为20 10。

      由【例2】可看出:

      (1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。

      (2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;而使用一般变量传递函数的参数,当发生函数调用时,需要给 形参分配存储单元,形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数。因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效 率和所占空间都好。

      (3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用"*指针变量名"的 形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地址作为实参。而引用更容易使用,更清晰。

      如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。

       2、常引用

      常引用声明方式:const 类型标识符 &引用名=目标变量名;

      用这种方式声明的引用,不能通过引用对目标变量的值进行修改,从而使引用的目标成为const,达到了引用的安全性。

      【例3】:

    int a ;
    const int &ra=a;
    ra=1; //错误
    a=1; //正确

     这不光是让代码更健壮,也有些其它方面的需要。

      【例4】:假设有如下函数声明:

    string foo( );

    void bar(string & s);

      那么下面的表达式将是非法的:

    bar(foo( ));

    bar("hello world");

      原因在于foo( )和"hello world"串都会产生一个临时对象,而在C++中,这些临时对象都是const类型的。因此上面的表达式就是试图将一个const类型的对象转换为非const类型,这是非法的。
        引用型参数应该在能被定义为const的情况下,尽量定义为const 。


       3、引用作为返回值

      要以引用返回函数值,则函数定义时要按以下格式:

    类型标识符 &函数名(形参列表及类型说明)
    {函数体}

      说明:

      (1)以引用返回函数值,定义函数时需要在函数名前加&

      (2)用引用返回一个函数值的最大好处是,在内存中不产生被返回值的副本。

      【例5】以下程序中定义了一个普通的函数fn1(它用返回值的方法返回函数值),另外一个函数fn2,它以引用的方法返回函数值。

    #include <iostream.h>
    float temp; //定义全局变量temp
    float fn1(float r); //声明函数fn1
    float &fn2(float r); //声明函数fn2
    float fn1(float r) //定义函数fn1,它以返回值的方法返回函数值
    {
     temp=(float)(r*r*3.14);
     return temp;
    }
    float &fn2(float r) //定义函数fn2,它以引用方式返回函数值
    {
     temp=(float)(r*r*3.14);
     return temp;
    }
    void main() //主函数
    {
     float a=fn1(10.0); //第1种情况,系统生成要返回值的副本(即临时变量)
     float &b=fn1(10.0); //第2种情况,可能会出错(不同 C++系统有不同规定)
     //不能从被调函数中返回一个临时变量或局部变量的引用
     float c=fn2(10.0); //第3种情况,系统不生成返回值的副本
     //可以从被调函数中返回一个全局变量的引用
     float &d=fn2(10.0); //第4种情况,系统不生成返回值的副本
     //可以从被调函数中返回一个全局变量的引用
     cout<<a<<c<<d;
    }

       引用作为返回值,必须遵守以下规则:

      (1)不能返回局部变量的引用。这条可以参照Effective C++[1]的Item 31。主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了"无所指"的引用,程序会进入未知状态。

      (2)不能返回函数内部new分配的内存的引用。这条可以参照Effective C++[1]的Item 31。虽然不存在局部变量的被动销毁问题,可对于这种情况(返回函数内部new分配内存的引用),又面临其它尴尬局面。例如,被函数返回的引用只是作为一 个临时变量出现,而没有被赋予一个实际的变量,那么这个引用所指向的空间(由new分配)就无法释放,造成memory leak。

      (3)可以返回类成员的引用,但最好是const。这条原则可以参照Effective C++[1]的Item 30。主要原因是当对象的属性是与某种业务规则(business rule)相关联的时候,其赋值常常与某些其它属性或者对象的状态有关,因此有必要将赋值操作封装在一个业务规则当中。如果其它对象可以获得该属性的非常 量引用(或指针),那么对该属性的单纯赋值就会破坏业务规则的完整性。

      (4)引用与一些操作符的重载:

      流操作符<<和>>,这两个操作符常常希望被连续使用,例如:cout << "hello" << endl; 因此这两个操作符的返回值应该是一个仍然支持这两个操作符的流引用。可选的其它方案包括:返回一个流对象和返回一个流对象指针。但是对于返回 一个流对象,程序必须重新(拷贝)构造一个新的流对象,也就是说,连续的两个<<操作符实际上是针对不同对象的!这无法让人接受。对于返回一 个流指针则不能连续使用<<操作符。因此,返回一个流对象引用是惟一选择。这个唯一选择很关键,它说明了引用的重要性以及无可替代性,也许这 就是C++语言中引入引用这个概念的原因吧。 赋值操作符=。这个操作符象流操作符一样,是可以连续使用的,例如:x = j = 10;或者(x=10)=100;赋值操作符的返回值必须是一个左值,以便可以被继续赋值。因此引用成了这个操作符的惟一返回值选择。

      【例6】 测试用返回引用的函数值作为赋值表达式的左值。

    #include <iostream.h>
    int &put(int n);
    int vals[10];
    int error=-1;
    void main()
    {
    put(0)=10; //以put(0)函数值作为左值,等价于vals[0]=10;
    put(9)=20; //以put(9)函数值作为左值,等价于vals[9]=20;
    cout<<vals[0];
    cout<<vals[9];
    }
    int &put(int n)
    {
    if (n>=0 && n<=9 ) return vals[n];
    else { cout<<"subscript error"; return error; }
    }

      (5)在另外的一些操作符中,却千万不能返回引用:+-*/ 四则运算符。它们不能返回引用,Effective C++[1]的Item23详细的讨论了这个问题。主要原因是这四个操作符没有side effect,因此,它们必须构造一个对象作为返回值,可选的方案包括:返回一个对象、返回一个局部变量的引用,返回一个new分配的对象的引用、返回一 个静态对象引用。根据前面提到的引用作为返回值的三个规则,第2、3两个方案都被否决了。静态对象的引用又因为((a+b) == (c+d))会永远为true而导致错误。所以可选的只剩下返回一个对象了。

       4、引用和多态

      引用是除指针外另一个可以产生多态效果的手段。这意味着,一个基类的引用可以指向它的派生类实例。

      【例7】:

    class  A;
    class  B:public A{……};
    B  b;
    A  &Ref = b; // 用派生类对象初始化基类对象的引用

      Ref 只能用来访问派生类对象中从基类继承下来的成员,是基类引用指向派生类。如果A类中定义有虚函数,并且在B类中重写了这个虚函数,就可以通过Ref产生多态效果。

       三、引用总结

      (1)在引用的使用中,单纯给某个变量取个别名是毫无意义的,引用的目的主要用于在函数参数传递中,解决大块数据或对象的传递效率和空间不如意的问题。

      (2)用引用传递函数的参数,能保证参数传递中不产生副本,提高传递的效率,且通过const的使用,保证了引用传递的安全性。

      (3)引用与指针的区别是,指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。

      (4)使用引用的时机。流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它情况都推荐使用引用。
    展开全文
  • Java基础篇 - 强引用、弱引用、软引用和虚引用

    万次阅读 多人点赞 2018-09-09 08:58:21
    JDK 1.2以前的版本,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于(reachable)可达状态,程序才能使用它。 从JDK 1.2版本开始,对象的引用被划分为4...
  • 前面有一篇文章讲了指针与引用。并且还提到不能定义指向引用的指针(因为引用不是对象,没有实际的地址)。那么,能否定义指针的引用呢?答案是肯定的,因为指针本身就是一个对象。即然是对象,就能定义一个引用邦定该...
  • 详解 Java 的四种引用

    千次阅读 2018-10-13 23:00:36
    Java 引用随处可见,我们通过类似 Object obj = new Object(); 的代码就可以创建一个引用,而我们直接通过这个代码段创建的引用被称为强引用(StrongReference),这种引用的特点是其指向的对象无论如何都...
  • Java基础知识面试题(2020最新版)

    万次阅读 多人点赞 2020-02-19 12:11:27
    文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的...
  • C++/C++11左值、左值引用、右值、右值引用的使用
  • 文章转载自https://www.cnblogs.com/skywang12345/p/3154474.html 1 Java引用介绍 Java从1.2版本开始引入了4种引用,这4种引用的级别由高到低依次为: 强引用 > 软引用 > 弱引用 > 虚引用 ⑴强引用...
  • Java四种引用类型

    万次阅读 多人点赞 2019-05-12 19:01:34
    文章目录引用类型简介对象可达性判断GC Roots对象可达性判断可达性状态类型可达性判断规则状态转换Reference类定义状态变化四种引用类型实现强引用FinalReference软引用SoftReference弱引用WeakReference虚引用...
  • Java引用对象

    千次阅读 2018-12-11 10:09:03
    写了15年C/C++之后,我于1999年开始写Java。借助指针切换(pointer handoffs)等编码实践或者Purify等工具,我认为自己对C风格的内存管理已经得心应手了,甚至已经不记得上次发生内存泄露是什么时候了。所以起初我...
  • 可能看起来有点枯燥,但引用JNI最容易出错的一个点,如果使用不当,容易使程序造成内存溢出,程序崩溃等现象。所以讲得比较细,有些地方看起来可能比较啰嗦,还请轻啪!下一篇文章会写一个Andro
  • Java 存在四种引用,分别是强引用(StrongReference)、软引用(SoftReference)、弱引用(WeakReference)和虚引用(PhantomReference)。
  • Word 2016 撰写论文(2): 交叉引用

    万次阅读 多人点赞 2018-08-17 16:58:29
    以及对插入图片的顺序进行变更,这就产生一个问题,为了是文档产生图文并茂的效果除了需要为图表添加适当的图注之外,还需要文档经常为指明某一图片其他地方引用图注的名称(如文档:“由图1、图2可知”等...
  • 前言:满纸荒唐言,一把辛酸泪;都云作者痴,谁解其中味。 一、概述 早JDK1.2就把对象引用分为四种级别,从而使程序能更灵活控制它的生命周期,级别由高到底依次为:强...Java,一切被视为对象,引用则是用...
  • 用IEEE官方模板写文章的过程,遇到的另一个问题便是: 我winedt使用“ eqref{} ” 引用了某个公式,然后用pdflatex编译出来的pdf该公式的引用处显示为 “ (??) ”。 编辑调用 \eqref{1} 文中显示...
  • 上一篇文章[《基本类型 TypeScript 的应用》](https://webbj97.github.io/summary/blog/ts/1.html)地址这里,本篇文章将继续聊一聊“复杂”类型是如果定义的。
  • python 弱引用

    千次阅读 2019-04-21 17:40:40
    文章目录创建弱引用创建代理对象循环引用缓存对象 (WeakValueDictionary) 垃圾回收 和许多其它的高级语言一样,Python使用了垃圾回收器来自动销毁那些不再使用的对象。每个对象都有一个引用计数,当这个引用计数为...
  • C++引用以及结构体

    千次阅读 2019-03-04 23:00:55
    引用在C++编程极为实用。 函数的参数是属于局部变量,如果想要修改传入的参数,那就要用到指针。 C++,还可以使用“引用”。引用不会产生副本,相当于给原来的变量又取了个别名,二者其实都是指同一个东西,...
  • c++引用”的底层实现原理详解

    万次阅读 多人点赞 2018-05-17 16:44:10
    初学c++的“引用”这一概念的时候,很多人都是懵的,大家大概都会产生这样的疑问? 什么是引用引用占用内存吗? …… 于是,为了验证你的猜想,你可能会写出下面这样的代码来验证: #include&amp;lt;...
  • 理解Java的弱引用

    千次阅读 2019-04-15 14:07:41
    引用(Strong Reference) ... 上面创建了一个StringBuffer对象,并将这个对象的(强)引用存到变量buffer。是的,就是这个小儿科的操作(请原谅我这样的说法)。强引用最重要的就是它能够让...
  • 最近工作需要,强化一下C++, ...提示错误:错误:‘strcpy’作用尚未声明 修改方法: 把原来的 #include 改为: #include 问题就解决了。接触C和C++比较少,现在还不明白要为什么这么改,是编译器版
  • 专注于Java领域优质技术号,欢迎关注作者:absfree本篇文章尝试从What、Why、How这三个角度来探索Java的弱引用,帮助大家理解Java引用的定义、基本使用场景和使用方法。由于个人水平有限,叙述难免存在不...
  • 作者 | Jeskson 来源 | 达达前端小酒馆 1 ...引用类型的值是保存内存的对象,JavaScript不允许直接操作对象的内存空间,实际上操作对象的引用而不是实际对象。 var dada = new Object(); u...
  • Java面试题大全(2020版)

    万次阅读 多人点赞 2019-11-26 11:59:06
     HashMap的数据结构: java编程语言,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的...
  • 面试——final java 有什么作用

    万次阅读 多人点赞 2019-09-17 22:16:33
    final作为Java的关键字可以用于三个地方。用于修饰类、类属性和类方法。 特征:凡是引用final关键字的地方皆不可修改! (1)修饰类:表示该类不能被继承; (2)修饰方法:表示方法不能被重写; (3)修饰变量:...
  • 与局部引用对比 : 全局引用与局部引用相对应 , 其作用域是全局的 , 局部引用只能当前方法使用 ; 空间 : 可以 跨方法 , 跨线程使用 ; 时间 : 创建后可以使用 , 手动释放后全局引用失效 ; ( 手动释放前全局可用 ) .....
  • ?... $x =&$a; $b=$a++; ?> 问: $b和$x的值分别是什么... 您可能感兴趣的文章:PHP函数内引用全局变量的方法浅谈PHP变量作用域以及地址引用问题PHP变量引用与变量销毁机制分析浅谈PHP关于foreach使用引用变量的坑

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 309,069
精华内容 123,627
关键字:

引用在文中的作用