博客园 - Air Support
uuid:7d267088-5232-4821-9010-8cd5fdd6cd4f;id=1077751
2014-10-20T04:49:20Z
Air Support
https://www.cnblogs.com/sjlove/
feed.cnblogs.com
https://www.cnblogs.com/sjlove/p/4036939.html
解决Tomcat: Can't load IA 32-bit .dll on a AMD 64-bit platform问题 - Air Support
引用地址:http://blog.sina.com.cn/s/blog_65f1519f0100sdzg.html错误如下:[java]view plaincopyjava.lang.UnsatisfiedLinkError:E:\ProgramFiles\MyEclipse10\apache-to...
2014-10-20T04:49:00Z
2014-10-20T04:49:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】引用地址:http://blog.sina.com.cn/s/blog_65f1519f0100sdzg.html错误如下:[java]view plaincopyjava.lang.UnsatisfiedLinkError:E:\ProgramFiles\MyEclipse10\apache-to... <a href="https://www.cnblogs.com/sjlove/p/4036939.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/4025033.html
Eclipse集成Tomcat的配置步骤实例 - Air Support
使用Eclipse开发B/S结构Web应用时,必须使用Web应用服务器,常见的应用服务器有Tomcat, Jboss, WebLogic, WebSphere, SUN System Application Server等。这次需要在Eclipse开发工具中进行struts2的测试,才刚发现自己机器...
2014-10-14T11:08:00Z
2014-10-14T11:08:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】使用Eclipse开发B/S结构Web应用时,必须使用Web应用服务器,常见的应用服务器有Tomcat, Jboss, WebLogic, WebSphere, SUN System Application Server等。这次需要在Eclipse开发工具中进行struts2的测试,才刚发现自己机器... <a href="https://www.cnblogs.com/sjlove/p/4025033.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/4025030.html
搭建Eclipse+MyEclipse开发环境 - Air Support
Eclipse+MyEclipse区别: 一个是开源免费的软件,一个是基由开源免费而开发的收费软件. MyEclipse是在Eclipse的基础上添加了更多插件... 我觉得MyEclipse比Eclipse更容易操作,使用方便.但它是收费的~-_ myEclipse是商业用途, 要注册的, 而且不...
2014-10-14T11:06:00Z
2014-10-14T11:06:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】Eclipse+MyEclipse区别: 一个是开源免费的软件,一个是基由开源免费而开发的收费软件. MyEclipse是在Eclipse的基础上添加了更多插件... 我觉得MyEclipse比Eclipse更容易操作,使用方便.但它是收费的~-_ myEclipse是商业用途, 要注册的, 而且不... <a href="https://www.cnblogs.com/sjlove/p/4025030.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3701075.html
Win7的64位系统如何搭建安卓Android开发环境 - Air Support
程序开发者往往搭建安卓Android开发环境,那么现在比较主流的Win7的64位操作系统如何搭建呢?其实很简单,不需要设置任何环境变量,只需要下载两个程序包,下载的时候注意选择相应的64位程序包即可。步骤阅读 工具/原料ADTJDK 方法/步骤1第一步,下载Android开发的程序现在简称ADT,...
2014-04-30T04:36:00Z
2014-04-30T04:36:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】程序开发者往往搭建安卓Android开发环境,那么现在比较主流的Win7的64位操作系统如何搭建呢?其实很简单,不需要设置任何环境变量,只需要下载两个程序包,下载的时候注意选择相应的64位程序包即可。步骤阅读 工具/原料ADTJDK 方法/步骤1第一步,下载Android开发的程序现在简称ADT,... <a href="https://www.cnblogs.com/sjlove/p/3701075.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3414756.html
某公司的笔试题 - Air Support
第一部分编程题:1)编写一段代码:Memmove(char* src, char* dest,int len)2)编写一段程序,实现string strReplacestr1,str2,str3)例如:strReplace(“abcdefcdef","cd","123")输出:"abc123ef123ef"要求:不能使用系统自带的正则,字符串替换相关函数第二部分算法与设计:1.请设计相应的数据结构预算法,尽量高效的统计文章中每个单词出现的次数,并按照文章中首次出现的顺序打印输出该单词和他的出现的次数,并分析此程序的复杂度2.
2013-11-08T09:50:00Z
2013-11-08T09:50:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】第一部分编程题:1)编写一段代码:Memmove(char* src, char* dest,int len)2)编写一段程序,实现string strReplacestr1,str2,str3)例如:strReplace(“abcdefcdef","cd","123")输出:"abc123ef123ef"要求:不能使用系统自带的正则,字符串替换相关函数第二部分算法与设计:1.请设计相应的数据结构预算法,尽量高效的统计文章中每个单词出现的次数,并按照文章中首次出现的顺序打印输出该单词和他的出现的次数,并分析此程序的复杂度2. <a href="https://www.cnblogs.com/sjlove/p/3414756.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3412875.html
Tomcat for Eclipse - Air Support
转载~~Java1.7.0_01 + Eclipse3.7.1 +Tomcat7.0.231、安装开发环境。安装JDK,Eclipse IDE for Java EE Developers,Tomcat7.0.23为了配置方便请安装Eclipse Java EE版本,Tomcat使用Windows安...
2013-11-07T09:26:00Z
2013-11-07T09:26:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】转载~~Java1.7.0_01 + Eclipse3.7.1 +Tomcat7.0.231、安装开发环境。安装JDK,Eclipse IDE for Java EE Developers,Tomcat7.0.23为了配置方便请安装Eclipse Java EE版本,Tomcat使用Windows安... <a href="https://www.cnblogs.com/sjlove/p/3412875.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3412551.html
Java JDK 及 Tomcat的环境变量配置 - Air Support
下载安装tomcat,如何配置环境变量?配置过程中是否和作者一样经常出现错误? 请仔细读文及注意事项。 工具/原料1,JDK:版本为jdk-7-windows-i586.exe 下载地址http://www.oracle.com/technetwork/java/javase/downloads/...
2013-11-07T07:17:00Z
2013-11-07T07:17:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】下载安装tomcat,如何配置环境变量?配置过程中是否和作者一样经常出现错误? 请仔细读文及注意事项。 工具/原料1,JDK:版本为jdk-7-windows-i586.exe 下载地址http://www.oracle.com/technetwork/java/javase/downloads/... <a href="https://www.cnblogs.com/sjlove/p/3412551.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3317149.html
学习网站 - Air Support
很好的学习网站,在此和大家分享一下。1.http://www.cqytkj.com/逸天科技(谋定而后动)分为几个模块,还有丰富强大的连接资源,值得一看。2. http://coolshell.cn/ 阿里巴巴资深工程师的个人博客3.http://www.raychase.net/206很不错的网站,膜拜啊
2013-09-12T08:12:00Z
2013-09-12T08:12:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】很好的学习网站,在此和大家分享一下。1.http://www.cqytkj.com/逸天科技(谋定而后动)分为几个模块,还有丰富强大的连接资源,值得一看。2. http://coolshell.cn/ 阿里巴巴资深工程师的个人博客3.http://www.raychase.net/206很不错的网站,膜拜啊 <a href="https://www.cnblogs.com/sjlove/p/3317149.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3269330.html
虚函数多态性小练习 - Air Support
#include class A{public: virtual void print() { coutprint();}void printS(A &a){ a.print();}void main(){ A a,*pa,*pb,*pc; B b; C c; pa=&a; pb=&b; pc=&c; a.print(); b.print(); c.print(); pa->print(); pb->print(); pc->print(); print(a); print(b); print(c); print(pa); print(pb);
2013-08-19T23:46:00Z
2013-08-19T23:46:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】#include class A{public: virtual void print() { coutprint();}void printS(A &a){ a.print();}void main(){ A a,*pa,*pb,*pc; B b; C c; pa=&a; pb=&b; pc=&c; a.print(); b.print(); c.print(); pa->print(); pb->print(); pc->print(); print(a); print(b); print(c); print(pa); print(pb); <a href="https://www.cnblogs.com/sjlove/p/3269330.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3200584.html
The Road Less Traveled - Air Support
首先,给各位说明一下,我看的书中文版本,英语对我来说已经是很遥远的事情了,中文名字叫做少有人走的路,副标题是心智成熟的旅程,作者是M·斯科特·派克,据说是我们这个时代最杰出的心理医生,书上介绍时候没有加之一。之所以用英文版的书名是因为我不想让我的标题太过醒目了。 心理学,不知道从什么时候开始兴起的学科,但是,在我接触的时候,肯定已经很流行了,因为我接触信息总有一定的滞后性。尽管这样,我觉得心理学非常重要,尤其是在我们这种环境中,尤其重要。生活以及工作中出现的各种各样的问题总是会让我们的思想和心理有所变化,甚至会让我们价值观之类的发生改变,所以,对于我们来说,ZW这个职位的重
2013-07-19T07:04:00Z
2013-07-19T07:04:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】首先,给各位说明一下,我看的书中文版本,英语对我来说已经是很遥远的事情了,中文名字叫做少有人走的路,副标题是心智成熟的旅程,作者是M·斯科特·派克,据说是我们这个时代最杰出的心理医生,书上介绍时候没有加之一。之所以用英文版的书名是因为我不想让我的标题太过醒目了。 心理学,不知道从什么时候开始兴起的学科,但是,在我接触的时候,肯定已经很流行了,因为我接触信息总有一定的滞后性。尽管这样,我觉得心理学非常重要,尤其是在我们这种环境中,尤其重要。生活以及工作中出现的各种各样的问题总是会让我们的思想和心理有所变化,甚至会让我们价值观之类的发生改变,所以,对于我们来说,ZW这个职位的重 <a href="https://www.cnblogs.com/sjlove/p/3200584.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3180323.html
进制之间的转换 - Air Support
直接上代码吧,当然很不完善,留待日后进行修改。。。#includeusing namespace std;void change(char * arr,int a,int b){ //arr 是操作数组,a是操作数进制,b是目标进制 int value=0,i=0; int temp; int len=strlen(arr); /*所有的进制先转化为十进制*/ while(len--) { value=value*a+*(arr+len)-'0'; } while(value) { temp=value%b; value=v...
2013-07-09T08:16:00Z
2013-07-09T08:16:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】直接上代码吧,当然很不完善,留待日后进行修改。。。#includeusing namespace std;void change(char * arr,int a,int b){ //arr 是操作数组,a是操作数进制,b是目标进制 int value=0,i=0; int temp; int len=strlen(arr); /*所有的进制先转化为十进制*/ while(len--) { value=value*a+*(arr+len)-'0'; } while(value) { temp=value%b; value=v... <a href="https://www.cnblogs.com/sjlove/p/3180323.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3174697.html
某公司笔试题 - Air Support
1.从字符串中查找子串并进行替换,如字符串abcdefg子串 cd替换成 1232.将数字转换成汉字。(正整数,最大为亿位)思路:将数字转化成字符串形式,计算其长度strlen(strnum);3.TCP的三次握手4.进程和线程的区别5.什么是重载,构造函数和析构函数是否可以被重载?
2013-07-05T15:42:00Z
2013-07-05T15:42:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】1.从字符串中查找子串并进行替换,如字符串abcdefg子串 cd替换成 1232.将数字转换成汉字。(正整数,最大为亿位)思路:将数字转化成字符串形式,计算其长度strlen(strnum);3.TCP的三次握手4.进程和线程的区别5.什么是重载,构造函数和析构函数是否可以被重载? <a href="https://www.cnblogs.com/sjlove/p/3174697.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3172868.html
C++ 虚继承之小议 - Air Support
C++虚继承的作用C++虚继承可以防止多重继承产生的二义性问题。 虚继承,就是在被继承的类前面加上virtual关键字,这时被继承的类称为虚基类,如下面代码中的base类。虚继承在多重继承的时可以防止二义性。 class base class derived1 : virutal public base class derived2 : virtual public base class derived3 : public derived1, public derived2以上的代码如果用到了base中的某个成员变量就不会产生二义性。和#progma once在头文件中的作用类似。请看下面的例
2013-07-04T15:54:00Z
2013-07-04T15:54:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】C++虚继承的作用C++虚继承可以防止多重继承产生的二义性问题。 虚继承,就是在被继承的类前面加上virtual关键字,这时被继承的类称为虚基类,如下面代码中的base类。虚继承在多重继承的时可以防止二义性。 class base class derived1 : virutal public base class derived2 : virtual public base class derived3 : public derived1, public derived2以上的代码如果用到了base中的某个成员变量就不会产生二义性。和#progma once在头文件中的作用类似。请看下面的例 <a href="https://www.cnblogs.com/sjlove/p/3172868.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3172771.html
设计模式之工厂模式 - Air Support
设计模式--工厂模式在软件系统中,经常面临着“某个对象”由于需求的变化,对象的具体实现面临着剧烈的变化。为了应对这种变化我们抽象出它比较稳定的接口,隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变,这就是要说的Factory Method模式了。定义一个用户创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。简单工厂:例子:如果生活中有两种灯一种是灯泡,另一种是灯管,它们都有两个方法TurnOn()和TurnOff(),有两个人,一个人会做灯泡,一个人会做灯管,他们两个各自做各自的。 如果我要订两批灯一批
2013-07-04T15:22:00Z
2013-07-04T15:22:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】设计模式--工厂模式在软件系统中,经常面临着“某个对象”由于需求的变化,对象的具体实现面临着剧烈的变化。为了应对这种变化我们抽象出它比较稳定的接口,隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变,这就是要说的Factory Method模式了。定义一个用户创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。简单工厂:例子:如果生活中有两种灯一种是灯泡,另一种是灯管,它们都有两个方法TurnOn()和TurnOff(),有两个人,一个人会做灯泡,一个人会做灯管,他们两个各自做各自的。 如果我要订两批灯一批 <a href="https://www.cnblogs.com/sjlove/p/3172771.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3169661.html
友元函数和友元类 - Air Support
采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。一、友元函数友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加
2013-07-03T07:54:00Z
2013-07-03T07:54:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。一、友元函数友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加 <a href="https://www.cnblogs.com/sjlove/p/3169661.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3169646.html
static_cast、dynamic_cast、reinterpret_cast和const_cast之间的区别 - Air Support
1、C++中的static_cast执行非多态的转换,用于代替C中通常的转换操作。因此,被做为隐式类型转换使用。比如:int i;float f = 166.7f;i = static_cast(f);此时结果,i的值为166。2、C++中的reinterpret_cast主要是将数据从一种类型的转换为另一种类型。所谓“通常为操作数的位模式提供较低层的重新解释”也就是说将数据以二进制存在形式的重新解释。比如:int i;char *p = "This is a example.";i = reinterpret_cast(p);此时结果,i与p的值是完全相同的。reinte
2013-07-03T07:49:00Z
2013-07-03T07:49:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】1、C++中的static_cast执行非多态的转换,用于代替C中通常的转换操作。因此,被做为隐式类型转换使用。比如:int i;float f = 166.7f;i = static_cast(f);此时结果,i的值为166。2、C++中的reinterpret_cast主要是将数据从一种类型的转换为另一种类型。所谓“通常为操作数的位模式提供较低层的重新解释”也就是说将数据以二进制存在形式的重新解释。比如:int i;char *p = "This is a example.";i = reinterpret_cast(p);此时结果,i与p的值是完全相同的。reinte <a href="https://www.cnblogs.com/sjlove/p/3169646.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3169539.html
面向对象的基本特征及分析 - Air Support
面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composi
2013-07-03T07:08:00Z
2013-07-03T07:08:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composi <a href="https://www.cnblogs.com/sjlove/p/3169539.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3168654.html
多态之参数多态:模板的应用 - Air Support
函数模板可以用来创建一个通用的函数,以支持多种不同形参,避免重载函数的函数体重复设计。它的最大的特点就是吧函数实用的数据类型作为参数。定义的一般形式:template 函数返回值类型 函数名(参数表){ 函数体 }例如:templat T1 fun(T1 a,T2 b){ T2=d;、、、、、、}如果主调函数中有:int x; double y;、、、、fun(x,y);则系统将用实参x的数据类型int和y的数据类型double的代替函数模板中的T1和T2,生成模板函数int fun(int a,double b){ double d;、、、、}# include # include temp
2013-07-02T15:40:00Z
2013-07-02T15:40:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】函数模板可以用来创建一个通用的函数,以支持多种不同形参,避免重载函数的函数体重复设计。它的最大的特点就是吧函数实用的数据类型作为参数。定义的一般形式:template 函数返回值类型 函数名(参数表){ 函数体 }例如:templat T1 fun(T1 a,T2 b){ T2=d;、、、、、、}如果主调函数中有:int x; double y;、、、、fun(x,y);则系统将用实参x的数据类型int和y的数据类型double的代替函数模板中的T1和T2,生成模板函数int fun(int a,double b){ double d;、、、、}# include # include temp <a href="https://www.cnblogs.com/sjlove/p/3168654.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3168593.html
C++多态性的总结 - Air Support
抽空总结下对一直以来对C++多态性的一点个人理解:1.什么叫早绑定和晚绑定?早绑定指在对象声明的时候就和它的类型建立了关联。晚绑定是指代码在运行时再检查对象是否提供了我们所需要的方法和属性。静态关联(早绑定)和动态关联(晚绑定)。2.什么叫多态性?一个接口,多种方法。3.多态性和非多态性的区别?多态与非多态的实质区别就是函数地址是早绑定还是晚绑定。如果函数的调用,在编译器编译期间就可以确定函数的调用地址,并产生代码,是静态的,就是说地址是早绑定的。而如果函数调用的地址需要在运行时才确定,这就属于晚绑定。4.一个不带虚函数的类(无成员变量)大小?空类大小不为0,为1。5.一个带虚函数的类(无成员
2013-07-02T14:48:00Z
2013-07-02T14:48:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】抽空总结下对一直以来对C++多态性的一点个人理解:1.什么叫早绑定和晚绑定?早绑定指在对象声明的时候就和它的类型建立了关联。晚绑定是指代码在运行时再检查对象是否提供了我们所需要的方法和属性。静态关联(早绑定)和动态关联(晚绑定)。2.什么叫多态性?一个接口,多种方法。3.多态性和非多态性的区别?多态与非多态的实质区别就是函数地址是早绑定还是晚绑定。如果函数的调用,在编译器编译期间就可以确定函数的调用地址,并产生代码,是静态的,就是说地址是早绑定的。而如果函数调用的地址需要在运行时才确定,这就属于晚绑定。4.一个不带虚函数的类(无成员变量)大小?空类大小不为0,为1。5.一个带虚函数的类(无成员 <a href="https://www.cnblogs.com/sjlove/p/3168593.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjlove/p/3163552.html
维恩图 - Air Support
2013-06-30T06:20:00Z
2013-06-30T06:20:00Z
Air Support
https://www.cnblogs.com/sjlove/
【摘要】 <a href="https://www.cnblogs.com/sjlove/p/3163552.html" target="_blank">阅读全文</a>