202111-14 正则表达式分组与引用的使用 目录0.写在前面1.分组与编号2.不保存子组3.分组引用4.查找与替换 查找替换5.在文本编辑器中使用查找替换6.写在最后0.写在前面今天我们来讲下正则中的分组与引用,其实在第一篇文章中,我们在实战环节就已经用到分组这个功能了,回顾下IPv4地址的正则表达式:复制代码代码如下:^([1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.(0|[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$可以简写下:复制代码代码如... 继续阅读 >
202108-22 解析C++引用 目录引言背景结论引言我选择写C++中的引用是因为我感觉大多数人误解了引用。而我之所以有这个感受是因为我主持过很多C++的面试,并且我很少从面试者中得到关于C++引用的正确答案。那么c++中引用到底意味这什么呢?通常一个引用让人想到是一个引用的变量的别名,而我讨厌将c++中引用定义为变量的别名。这篇文章中,我将尽量解释清楚,c++中根本就没有什么叫做别名的东东。背景在c/c++中,访问一个变量只能通过两种方式被访问,传递... 继续阅读 >
202106-19 PHP 弱引用的相关总结 之前的文章中,我们已经学习过引用和引用传值相关的知识。我们知道,PHP中没有纯引用(指针),不管是对象,还是用引用符号&赋值的变量,都是对一个符号表的引用。而今天,我们要学习的是另一种引用形式:弱引用。什么是弱引用弱引用允许程序员保留对对象的引用,而该对象不会阻止对象被销毁;它们对于实现类似缓存的结构非常有用。这是比较官方的解释。从这个说明中,我们可以看出,弱引用也是一种引用形式,但是,如果我们销... 继续阅读 >
202106-05 PHP 引用的概念 什么是引用?在PHP中引用意味着用不同的名字访问同一个变量内容。它不是C的指针,保存的并不是内存地址,无法进行指针运算。引用只是符号表的别名。就像Unix系统中的硬链接,Windows系统中的快捷方式。上面是官方手册中的原文,怎么说呢,引用其实和我们印象中的C里面的指针并不是相同的概念。指针是针对真实内存的操作,引用是针对指向这个内存的符号表的操作。还是从操作系统的快捷方式来说,快捷方式是可以删的,这就是PH... 继续阅读 >
202104-27 简述Java中的四种引用类型 简介从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用,下面分别介绍下这四种引用。强引用强引用是最常用的引用类型,如下所示,newObject()会创建一个Object对象并存储在堆上,变量object存储对该对象的强引用。Objectobject=newObject();强引用不会被垃圾回收,所以要想回收该对象,则应该将指向该对象的变量显示设为nul... 继续阅读 >
202101-08 Java 中的弱引用是什么 Java里一个对象obj被创建时,被放在堆里。当GC运行的时候,发现没有任何引用指向obj,那么就会回收obj对象的堆内存空间。换句话说,一个对象被回收,必须满足两个条件:(1)没有任何引用指向它(2)GC被运行。在实际开发中,我们可以通过把所有指向某个对象的referece置空来保证这个对象在下次GC运行的时候被回收,类似下面:Objectc=newCar();c=null;但是,这样做是一件很繁琐并且违背GC自动回收原则的事。对于简单的情况,... 继续阅读 >
202010-10 python闭包与引用以及需要注意的陷阱 python闭包关于闭包,很多blog中都这样解释:对于一个嵌套定义的函数,外层的函数的返回值是内层函数,而在内层函数中又引用了外层函数的局部变量,在外层函数执行后,其局部变量并非被回收,而会同返回的内层函数一同存在,而这一现象被称为闭包(closure)。不过以上的理解有些繁琐和局限,在计算机科学中,闭包(Closure)词法闭包(LexicalClosure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在... 继续阅读 >
202010-10 js在HTML的三种引用方式详解 1.内联样式内联样式分为两种,一是直接写入元素的标签内部<html><title>js样式内联写法</title><metahttp-equiv="content-type"content="text/html;charset=utf-8"/><body><!--js内联写法01开始--><!--当鼠标点击图片时跳出弹窗显示1223--><divclass="img">单击事件:<imgsrc="images/001.jpg"onclick="alert(1223)"></img></div><!--js内联写法01结束--></body></html>二是写入到<scrip... 继续阅读 >
202010-09 深入了解JAVA 软引用 定义软引用是使用SoftReference创建的引用,强度弱于强引用,被其引用的对象在内存不足的时候会被回收,不会产生内存溢出。说明软引用,顾名思义就是比较“软”一点的引用。当一个对象与GCRoots之间存在强引用时,无论何时都不会被GC回收掉。如果一个对象与GCRoots之间没有强引用与其关联而存在软引用关联时,那么垃圾回收器对它的态度就取决于内存的紧张程度了。如果内存空间足够,垃圾回收器就不会回收这个对象,但如果内存空... 继续阅读 >
202010-09 详解JAVA 强引用 定义强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器宁愿抛出OOM(OutOfMemoryError)也不会回收它。说明不要被这个强字吓到,以为这个引用就很厉害,其实强引用就是程序中使用的一般引用类型。举个简单的栗子:Strings=newString("HelloFrank!"); 强可达如果一个对象与GCRoots之间存在强引用,则称这个对象为强可达(strongreachable)对象。当你声明一个变量并指向一个实例的时候,其实就是在创造... 继续阅读 >
202010-09 深入了解JAVA 虚引用 定义虚引用是使用PhantomReference创建的引用,虚引用也称为幽灵引用或者幻影引用,是所有引用类型中最弱的一个。一个对象是否有虚引用的存在,完全不会对其生命周期构成影响,也无法通过虚引用获得一个对象实例。说明虚引用,正如其名,对一个对象而言,这个引用形同虚设,有和没有一样。如果一个对象与GCRoots之间仅存在虚引用,则称这个对象为虚可达(phantomreachable)对象。当试图通过虚引用的get()方法取得强引用时,总是... 继续阅读 >
202010-09 详解JAVA 弱引用 定义弱引用是使用WeakReference创建的引用,弱引用也是用来描述非必需对象的,它是比软引用更弱的引用类型。在发生GC时,只要发现弱引用,不管系统堆空间是否足够,都会将对象进行回收。说明弱引用,从名字来看就很弱嘛,这种引用指向的对象,一旦在GC时被扫描到,就逃脱不了被回收的命运。但是,弱引用指向的对象也并不一定就马上会被回收,如果弱引用对象较大,直接进到了老年代,那么就可以苟且偷生到FullGC触发前,所以弱引用... 继续阅读 >
202010-08 详解C++ 引用 引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。C++引用vs指针引用很容易与指针混淆,它们之间有三个主要的不同:不存在空引用。引用必须连接到一块合法的内存。一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。引用必须在创建时被初始化。指针可以在任何时间被初始化。C++中创... 继续阅读 >
202010-08 通过实例解析传统jar包引用方式 一、首先编写一个工具类Hello:publicclassHello{publicstaticvoidsay(Stringmessage){System.out.printf("Hello%s\n",message);}}这个类有一个对外暴露的say方法,可以用来打招呼,于是把它打成一个jar包供以后引用。二、打jar包:javacHello.javajar-cvfhello.jarHello.class三、引用jar包Jar包的引用非常简单,放到系统设置的环境变量classpath中去就行了,也可以在命令行手动引用,下面是一个手动引用的... 继续阅读 >
202010-08 基于java读取并引用自定义配置文件 首先在resources目录创建自定义的配置文件配置文件的格式:写工具类,得到配置参数importjava.io.IOException;importjava.io.InputStream;importjava.util.Properties;publicclassMyConfig{publicstaticPropertiesmyProp=newProperties();publicstaticInputStreammyResource=MyConfig.class.getResourceAsStream("/myConfig.properties");static{try{myProp.load(myResource);}catch(IOE... 继续阅读 >
202009-29 Python参数传递对象的引用原理解析 大家都知道在python中,一切皆对象,变量也不再具有类型,变量仅仅是对象的一个引用,我们通常用变量来测类型,通常测得就是被这个变量引用得对象的类型。python采用的是传递对象的引用,为了方便说明,我们来看一个例子:test=[1]defchange1(a):a=[2]defchange2(a):a.append(3)change1(test)change2(test)printtest我们来看一下最后的输出:[1,3]是不是有人误以为是[2,3]?那你可得好好看接下来的内容。传参传的... 继续阅读 >