DNS欺骗:网站克隆实现网站钓鱼攻击

1 DNS

1.1 DNS是什么?

域名系统(Domain Name System)是互联网使用的命名系统,用来将主机域名转换为 ip 地址,属于应用层协议,使用 UDP 传输。

1.2 为什么需要DNS?

DNS协议提供域名到IP地址之间的解析服务。计算机既可以被赋予IP地址,也可以被赋予主机名和域名。用户通常使用主机名或域名来访问对方的计算机,而不是直接通过IP地址访问。因为与IP地址的一组纯数字相比,用字母配合数字的表示形式来指定计算机名更符合人类的记忆习惯。但要让计算机去理解名称,相对而言就变得困难了。因为计算机更擅长处理一长串数字。
为了解决上述的问题,DNS服务应运而生。DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务。

1.3 DNS工作原理

①客户机提出域名解析请求,并将该请求发送给本地的域名服务器。

②当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。

③如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。

④本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。

⑤重复第四步,直到找到正确的纪录。

⑥本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

2 网站克隆实现网站钓鱼攻击

2.1 DNS欺骗的原理及实现步骤

当客户主机向本地DNS服务器查询域名的时候,如果服务器的缓存中已经有相应记录,DNS服务器就不会再向其他服务器进行查询,而是直接将这条记录返回给用户。
而入侵者欲实现DNS欺骗,关键的一个条件就是在DNS服务器的本地Cache中缓存一条伪造的解析记录。
在上面的例子中,假如dhs.com域DNS服务器返回的是经过黑客篡改的信息,比如将www.dhs.com指向另一个IP地址5.6.7.8,nipc.com域DNS服务器将会接受这个结果,并将错误的信息存储在本地Cache中。以后在这条记录被缓存的生存期内,再向nipc.com域DNS服务器发送的对www.dhs.com的域名解析请求,所得到的IP地址都将是被篡改过的。

2.2 网络钓鱼

网络钓鱼是一种电子信息欺骗,攻击者创造了一个完整的令人信服的Web世界,但实际上它却是一个虚假的复制。

虚假的Web看起来十分逼真,它拥有相同的网页和链接。然而攻击者控制着这个虚假的Web站点,这样受害者的浏览器和Web之间的所有网络通信就完全被攻击者截获。

2.3 实践

1.先检查能不能ping通靶机
image
image

2.配置dns
image
vi etter.dns
image
:wq
3.进入var/www/html目录,编辑index.html网页文件
image
image

重启apache服务:
image

设置IP转发:
image

打开ettercap图形界面,并扫描局域网内的主机,添加欺骗主机,将网关地址设为 Target1,要欺骗的 IP 地址设为 Target2:
image

选择欺骗类型:
image

点击插件,选择 dns_spoof
image

点击左上角start开始攻击:
image

可以看到我加的这行字:
image

使用ifconfig查看攻击机IP:
image

编辑/etc/ettercap/etter.dns文件,添加伪造网站的本地DNS解析记录:
image

接下来使用setoolkit伪造目标网站:
输入命令(1),进入钓鱼攻击页面:
image

(2)输入命令2,进入web钓鱼攻击页面
image

输入命令3,进入到设置钓鱼页面选项
image
image

输入命令2,进入到克隆网页界面,回车继续,设置网页如下:
image

输入要克隆的URL:
image

此时在靶机中的浏览器尝试访问攻击机IP:
image

访问成功,可以对靶机进行下一步的DNS欺骗操作:
启动ettercap:
image

靶机ping网站地址,响应IP为攻击机的IP,DNS欺骗成功:
image

靶机浏览器访问攻击机网站,并且输入相关信息:
image

点击登录之后,攻击机的setoolkit中捕捉到输入的数据:
image

在实验换验证码输入登录一次:
image
image

本文转载于网络 如有侵权请联系删除

相关文章

  • QQ群关系可视化3D查询搭建[通俗易懂]

    大家好,又见面了,我是你们的朋友全栈君。一、配置数据库(需要300GB以上磁盘剩余空间)下载并安装SqlServer2008R2,配置好用户名以及登录密码,如果远程连接数据库的话,需配置数据库允许远程登录(SqlServer数据库配置请自行搜索教程)下载数据库备份文件(现目前暂时不公布,需要的可私聊)解压下载的压缩包,得到数据库备份文件,恢复数据库备份文件到SqlServer(SqlServer恢复数据库恢复操作请自行搜索教程,这里的目标数据的名称可自定写入)二、搭建服务端(需要支持Nodejs的操作系统,CPU1核以上剩余内存1GB以上)下载安装Node.js环境npm全局安装webpack和webpack-dev-server1.全局安装webpack npminstallwebpack-g复制2.全局安装webpack-dev-server npminstallwebpack-dev-server-g复制三、配置数据库连接1.下载项目源码:https://github.com/backlion/qqgroup-visualization2.进入项目目录下3.打开db.json文件

  • Android开机动画bootanimation

    大家好,又见面了,我是你们的朋友全栈君。android开机动画详细分析可以参见http://blog.csdn.net/luoshengyang/article/details/7691321 引用老罗的文章,写的太好了。以下介绍一些相关的点。 这里的开机动画指的是以bootanimation.zip方式存在,不包括BootVideo这种方式。1、开机动画路径:bootanimation.zip路径有两个:a、”/data/local/bootanimation.zip” b、”/system/media/bootanimation.zip” 标准流程会以a路径优先,也就是/data分区下的那个,没有的话才是会加载、/system分区下的动画。也就是可以再/data下就更新开机动画,恢复出厂会回到原本的/system下的动画。2、bootanimation.zip内容: “desc.txt”:用来描述用户自定义的开机动画是如何显示的。 desc.txt的内容格式如下面的例子所示:12807201 p11part0 p01part1复制第一行的三个数字分别表示开机动画在屏幕中的显示宽度、

  • Java虚拟机的面试准备(二)什么是调优,如何调优

    目录调优工具下载jar包执行代码并且启动jar包什么是调优为什么调优为什么在进行垃圾回收的时候,要停止用户线程什么情况会发生fullgc如何解决这种情况的fullgc调优工具下载jar包 这个阿里巴巴的jvm的调优工具,这个就是一个jar包,只要下载下来,执行这个jar包就可以了Arthas启动的前提是要启动你的java项目,因为Arthas启动时会自动扫描机器上运行的java项目执行代码并且启动jar包 以上是我们运行的代码 以上是官网因为这个工具是监控我们的Java代码,所以启动之前要执行Java代码java-jararthas-boot.jar复制启动这个jar包,那么我们看见的就是当前本级里面,有多少的Java程序执行 我们自己写的Java程序在第三个 想要监控哪个,就输入序号 出现以上的logo,就已经启动成功了。具体使用看官网,这个只是一个工具,帮你找问题什么是调优减少垃圾回收(GC),最核心的就是减少fullgc,减少性能,并且避免内存溢出 当老年代也满了,就会生成一个fullgc,这个垃圾回收器就会全局收集垃圾,但是全局没有垃圾,但是还有对象一直创建,那么就会内存溢

  • HDFS 客户端读写超时时间解析

    背景前段我们Hadoop集群磁盘使用率比较高,部分硬盘空间使用超过了70%,这部分服务器的DataNode服务读写负载就比较高,造成部分数据同步任务因为读写超时而失败。具体场景和异常跟这篇博客里描述的很像。DFSClient客户端与HDFS交互进行数据读写,需要从NameNode拿到元数据信息,再和DataNode交互,因此,超时时间也同时涉及这两个服务。以下分别是客户端与这两个服务交互的超时时间的解析。客户端与NameNode超时时间客户端与NameNode的操作超时时间由以下两个配置控制:ipc.client.ping:默认值是true。当配置为true时,客户端会尽力等待服务端响应,定期发送ping消息,使得连接不会因为tcptimeout而断开。当配置为false时,客户端会使用配置项ipc.ping.interval对应的值,作为timeout时间,在该时间内没有得到响应,即会超时。 ipc.ping.interval:以毫秒为单位,默认值是1分钟。当ipc.client.ping配置为true时,表示发送ping消息的周期。当ipc.client.ping设置为false时

  • 动态代理的介绍(非aop) 基于接口 基于子类 举例说明

    动态代理方式动态代理: 特点:字节码随用随创建,随用随加载 作用:不修改源码的基础上对方法增强 分类: 基于接口的动态代理 基于子类的动态代理复制一、基于接口的动态代理基于接口的动态代理: 涉及的类:Proxy 提供者:JDK官方 如何创建代理对象: 使用Proxy类中的newProxyInstance方法 创建代理对象的要求: 被代理类最少实现一个接口,如果没有则不能使用 newProxyInstance方法的参数: ClassLoader:类加载器 它是用于加载代理对象字节码的。和被代理对象使用相同的类加载器。 固定写法: 代理是谁就写谁的XXX.getClass().getClassLoader() Class[]:字节码数组 它是用于让代理对象和被代理对象有相同的方法 固定写法: 代理谁就写谁的XXX.getClass().getInterfaces() InvocationHandler: 他是让我们写如何代理。一般是写一个该接口的实现类,通常情况下都是匿名内部类,但不是必须的 此接口的实现类都是谁用谁写。 注意:如果我们的类不实现任何接口的时候,执行Client会报代

  • 服务端JSON内容中有富文本时

    问题背景如果使用的Newtonsoft等第三方库,请无视此问题,第三方库已经帮你处理好了,不会存在此问题。 由于数据中存在复杂的富文本,包含各种引号和特殊字符,导致后端和前端通过JSON格式进行数据交互引发前端JSON解析出错。解决方案后端将富文本内容ConvertToBase64String 前端引入jQuery扩展插件jquery.base64.js,对后端传来的富文本数据进行解析。示例代码后端(以C#为例)stringcontent="我是富文本"; byte[]bytes=System.Text.Encoding.UTF8.GetBytes(content); context.Response.Write(Convert.ToBase64String(bytes));复制前端(以JavaScript为例)//data为ajax接收到的数据 varcontent=$.base64('atob',data,true); $('#content').html(content);复制

  • Python急转弯-2-面试篇

    在面对算法,小菜都会摸不到头脑。学了那么多基础知识,连一个算法题都做不出来,甚至会怀疑是不是学到的知识都是水货呀。在前一节,遇到的第一个小题就像是在把一个大饼不断地二等分掰开,掰到连渣都不剩。①替换空格题目:将一个字符串中的空格替换成“%20”例如,当字符串为WeAreHappy.则经过替换之后的字符串为We%20Are%20Happy。最简单能实现的地方法就是,字符串的replace替换方法。Pythonreplace()方法把字符串中的old(旧字符串)替换成new(新字符串),如果指定第三个参数max,则替换不超过max次。classSolution: #words源字符串 defreplace_space(self,words): returnwords.replace('','%20')复制②数组中重复的数字题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组(2,3,1,0,2,5,3),

  • 谷歌最强NLP模型BERT如约开源,12小时GitHub标星破1500,即将支持中文

    BERT终于来了!今天,谷歌研究团队终于在GitHub上发布了万众期待的BERT。代码放出不到一天,就已经在GitHub上获得1500多星。项目地址:https://github.com/google-research/bert#fine-tuning-with-bert就在半个月前,谷歌才发布这个NLP预训练模型的论文(https://arxiv.org/abs/1810.04805)。BERT一出现,就技惊四座碾压了竞争对手,在11项NLP测试中刷新了最高成绩,甚至全面超越了人类的表现。BERT的出现可以说是NLP领域最重大的事件,谷歌团队的ThangLuong认为BERT标志着NLP新时代的开始。BERT是什么? BERT全称BidirectionalEncoderRepresentationsfromTransformers,是预训练语言表示的方法,可以在大型文本语料库(如维基百科)上训练通用的“语言理解”模型,然后将该模型用于下游NLP任务,比如机器翻译、问答。BERT是第一个无监督的用于预训练NLP的深度双向系统。无监督意味着BERT仅使用文本语料库进行训练,也就是说网络上

  • 手把手 | 数据科学速成课:给Python新手的实操指南

    大数据文摘作品编译:王梦泽、丁慧、笪洁琼、Aileen数据科学团队在持续稳定的发展壮大,这也意味着经常会有新的数据科学家和实习生加入团队。我们聘用的每个数据科学家都具有不同的技能,但他们都具备较强的分析背景和在真正的业务案例中运用此背景的能力。例如,团队中大多数人都曾研究计量经济学,这为概率论及统计学提供了坚实的基础。典型的数据科学家需要处理大量的数据,因此良好的编程技能是必不可少的。然而,我们的新数据科学家的背景往往是各不相同的。编程环境五花八门,因此新的数据科学家的编程语言背景涵盖了R,MatLab,Java,Python,STATA,SPSS,SAS,SQL,Delphi,PHPtoC#和C++。了解许多不同的编程语言在有些时候确实很有必要,然而我们更希望使用一种编程语言来完成大多数的项目,这样我们可以在项目上更容易的进行合作。由于无人知晓一切,一种首选的编程语言让我们有机会互相学习。我们公司更倾向于使用Python。在开源社区的大力支持下,Python已经成为了处理数据科学强有力的工具。Python容易使用的语法,强大的数据处理能力和极好的开源统计库,例如Numpy,Panda

  • Linux下MySQL的彻底卸载和安装配置字符集

    前言:Linux环境下MySQL的安装和配置在网上已经有很多教程了。之所以写这篇文章是因为在配置字符集的时候找了网上的一些教程发现并不能用导致折腾了一阵子。下面的教程均是亲自实践。MySQL的彻底卸载首先查看一下自己是否已经安装了MySQL。代码如下:1ps-aux|grepmysql复制如未安装则不显示任何内容,若安装则会显示如下的信息:关于mysql的彻底卸载有很多方法,人工去卸载和删除冗余文件比较麻烦,只需依次执行以下三条指令即可:1sudoapt-getautoremove--purgemysql-server-5.523sudoapt-getremovemysql-common45dpkg-l|grep^rc|awk'{print$2}'|sudoxargsdpkg-P复制这里一定要注意你的Mysql版本!MySQL的安装最简单的安装方式就是命令行方式,依次输入一下代码即可:1sudoapt-getinstallmysql-server23sudoapt-getinstallmysql-client复制MySQL字符集的配置首先我们在终端打开mysql:1

  • Nature 子刊:生物信息挖掘单细胞数据金矿

    单细胞转录组测序(scRNA-Seq)已成为目前最炙手可热的科研技术之一,在揭示细胞间状态、转变和细胞间差异表达中有重要的意义。目前已广泛应用于肿瘤、神经、发育等领域。2021年1月,上海长海医院任善成教授与加拿大多伦多大学HoushengHansenHe教授、复旦大学附属肿瘤医院王建华教授合作在NatureCellBiology杂志发表了题为「Single-cellanalysisrevealstranscriptomicremodellingsindistinctcelltypesthatcontributetohumanprostatecancerprogression」论文。(图片来源:NatureCellBiology)文章通过单细胞转录组测序技术,解析了前列腺癌肿瘤微环境的高度异质性,发现了临床病理和影像学无法识别的微转移灶,还揭示了癌细胞通过外泌体的方式驯化免疫细胞转录组使其表达肿瘤基因,这些都对前列腺癌治疗靶点的确定和侵袭性肿瘤生物标志物的研发开拓了思路。下文主要针对单细胞测序如何应用于肿瘤研究,如何设计实验样本、分析研究数据等问题进行解析。文章概览研究结果展示通过对B

  • peoplesoft笔记「建议收藏」

    PeopleCode语言结构本主题假定您熟悉一种编程语言,例如C、VisualBasic或Java。在其基础上,PeopleCode语法类似于其他编程语言。但是,PeopleCode语言的某些方面与PeopleTools环境特别相关。例如,定义名称引用使您能够在不使用硬编码字符串文字的情况下引用PeopleTools定义,例如记录定义或页面。其他语言特性,如PeopleCode数据类型和元字符串,反映了PeopleTools和SQL的密切交互。PeopleCode中的点符号、类和方法类似于其他面向对象的语言,如Java。数据类型常规数据类型包括数字、日期、字符串。将它们用于基本计算。对象数据类型从PeopleTools类实例化对象。在文档讨论使用该数据类型的PeopleCode的地方演示了每种数据类型的适当使用。在使用变量之前声明变量。本节讨论:常规数据类型。对象数据类型。常规数据类型PeopleCode包括这些常规数据类型:any 当变量和函数返回值声明为any时,数据类型是不确定的,使PeopleTools能够根据上下文确定适当的值类型。默认情况下,未声明的局部变量是any。 bo

  • 《算法竞赛入门到进阶》再次获选“清华大学出版社年度畅销书”

      《算法竞赛入门到进阶》2019.8月出版,先后获得2019、2020年“清华大学出版社年度畅销书”。   感谢读者支持!网购:京东当当  作者签名书:点我 新书《算法竞赛专题解析》   2021年将出版新书《算法竞赛专题解析》(暂名),这是一本深度解析重要算法知识点的书,是2019年出版的《算法竞赛入门到进阶》的续篇。   新书的大部分草稿在本博客连载,请读者多提意见。 2019年度畅销书 2020年度畅销书

  • 不同场景下 MySQL 的迁移方案

    本文内容为什么要迁移MySQL迁移方案概览MySQL迁移实战注意事项技巧总结一、为什么要迁移MySQL迁移是DBA日常维护中的一个工作。迁移,是把实际存在的物体挪走,保证该物体的完整性以及延续性。生产环境中,有以下情况需要做迁移:1、磁盘空间不够。比如一些老项目,选用的机型并不一定适用于数据库。随着时间的推移,硬盘很有可能出现短缺;2、业务出现瓶颈。比如项目中采用单机承担所有的读写业务,业务压力增大,不堪重负。如果IO压力在可接受的范围,会采用读写分离方案;3、机器出现瓶颈。机器出现瓶颈主要在磁盘IO能力、内存、CPU,此时除了针对瓶颈做一些优化以外,选择迁移是不错的方案;4、项目改造。某些项目的数据库存在跨机房的情况,可能会在不同机房中增加节点,或者把机器从一个机房迁移到另一个机房。再比如,不同业务共用同一台服务器,为了缓解服务器压力以及方便维护,也会做迁移。一句话,迁移工作是不得已而为之。实施迁移工作,目的是让业务平稳持续地运行。二、MySQL迁移方案概览MySQL迁移就是在保证业务平稳持续地运行的前提下做备份恢复。那问题就在怎么快速安全地进行备份恢复。首先,备份。针对每个主节点的

  • 《挑战程序设计竞赛(第2版)》译者访谈问题有奖征集

    8月12日,图灵社区和CSDN将联合推出一期访谈,本期的嘉宾是《挑战程序设计竞赛(第2版)》的译者巫泽俊、庄俊元和李津羽。如果你对程序设计竞赛感兴趣请赶快提问,请把问题以评论的形式告诉我们。只要您的问题在当天被主持人采纳,将会获得我们送出的《挑战程序设计竞赛(第2版)》(带译者签名)一本。 访谈时间:2013年8月12日(周一)访谈地点:CSDN总部(北京市朝阳区广顺北大街33号院1号楼福码大厦B座12层) 嘉宾简介: ★巫泽俊ACM-ICPCWorldFinals2009第6名ACM-ICPCWorldFinals2011冠军GoogleCodeJam2012第7名昵称watashi和rejudge ★庄俊元ACM-ICPCAsiaPhuketRegional2011冠军2012年跻身ACM-ICPCWorldFinals以及百度Astar总决赛昵称navi和navimoe ★李津羽浙江大学2011级计算机系博士生在浙大CAD&CG实验室从事科研工作 参与活动地址:http://www.ituring.com.cn/article/51223 --------------

  • 软工网络15结对编程

    结对成员: 范阳斌:201521123016 朱潞潞:201521123008 码云地址:https://gitee.com/qiuyuer/pair_programming___four_operations 需求分析 需增加乘方开根号功能 重复式子的审查 括号运算符 思维导图 核心代码 packagetest; importjava.util.*; publicclassCalc{ publicstaticvoidmain(Stringargs[]){ ArrayListquestion=newArrayList(); System.out.println("请输入要计算的式子个数:"); Scannersc=newScanner(System.in); intcount=sc.nextInt(); System.out.println("请输入你要求解的式子:"); for(inti=0;i<count;i++){ sc=newScanner(System.in); question.add(sc.nextLine()); } for(inti=0;i<cou

  • 什么是cookie,token和session?它们之间有什么关系?

    token:令牌,是用户身份的验证方式。 最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名)。 对Token认证的五点认识: 一个Token就是一些信息的集合; 在Token中包含足够多的信息,以便在后续请求中减少查询数据库的几率; 服务端需要对cookie和HTTPAuthrorizationHeader进行Token信息的检查; 基于上一点,你可以用一套token认证代码来面对浏览器类客户端和非浏览器类客户端; 因为token是被签名的,所以我们可以认为一个可以解码认证通过的token是由我们系统发放的,其中带的信息是合法有效的; session:会话,代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以时断时续。 cookie中存放着一个sessionID,请求时会发送这个ID; session因为请求(request对象)而产生; session是一个容器,可以存放会话过程中的任何对象; session的创建与使用总是在服务端,浏览器从来都没有得到过session对象; session是一种http存储机制,目的是

  • 如何同时编辑2个多边形?

    我们利用鼠标工具来实现多边形编辑,引入鼠标工具插件: <scriptsrc="http://webapi.amap.com/maps?v=1.3&key=您申请的key值&plugin=AMap.PolyEditor"></script>复制   绘制多边形,如此绘制2个。您也可以绘制多个。 //在地图上绘制折线 vareditor={}; editor._polygon1=(function(){ vararr=[//构建多边形经纬度坐标数组 [116.403322,39.920255], [116.410703,39.897555], [116.402292,39.892353], [116.389846,39.891365] ] returnnewAMap.Polygon({ map:map, path:arr }); })();复制   绘制完毕,打开多边形可编辑属性。即可编辑多边形。 editor._polygonEditor1=newAMap.PolyEditor(map,editor._polygon1

  • word中已删除设置是否显示

       我们打开别人发过来的文档时经常会出现如下图所示,其实这个不是文档的异常,只是word设置显示了修订版标记,如果我们需要去除这个,只需要在审阅-修订功能下面选择显示最终版即可(测试用的10版,其他类似)

  • 三月反思四月计划

    目录3月份干了什么?3.8-14跟着无常老师学习后渗透基础接触了一些安全工具自己整合了些字典从Onenote转到为知笔记,开始用markdown遗憾4月要干什么?审计啊审计,代码啊代码总结python反思私货 3月份干了什么? 3.8-14跟着无常老师学习后渗透基础 第二次跟着无常老师学习后渗透基础,相比第一次,学的内容又多一些 不像第一次学的懵懵懂懂,只能跟着复现,这一次能尝试去理解所学内容的意义,也对后渗透各阶段要做什么,为什么要这么做,要注意什么有了一些了解 接触了一些安全工具 之前常用的安全工具其实蛮少的,除了burp,sqlmap,nmap,antsword好像也没什么了,收集子域名用的工具主要是subdomain,wydomain和Layer,目录敏感文件用的是7kb和BBscan,扫端口用的是nmap,其余的信息收集如备案,c段,组件用的是在线网站和浏览器插件,工具很杂产出的结果也很杂,这就导致了我要开始挖前要花相当多的时间在启动工具等待结果还有处理结果上,手上的vps只有2台还是学生机的性能(发出没钱的叹息),其实最让我感到麻烦的是工具启动和结果处理了,工具启动就不说了

  • 设计模式 --单例模式

    //饿汉式:类加载就创建对象packageRun; classMain{ publicstaticvoidmain(String[]args){ Singles=Single.getInstance(); Singless=Single.getInstance(); System.out.println(s); System.out.println(ss); } } classSingle{ staticSingles=newSingle(); privateSingle(){} publicstaticSinglegetInstance(){returns;} }复制 note: 1.两个对象引用的地址一样,说明来自于同一对象。注意书写getInstance方法时,需要将其静态化,因为外界无法new对象,那么只能通过类来访问。 因为getInstance方法静态了,所以其访问的成员变量s也必须为静态。 2.饿汉式在开发中更为常用,因为其线程安全. 3.缺点:类加载就实例化,提前占用了系统资源.   /* *懒汉模式,类加载还没有对象 *延迟加载:delay-lo

相关推荐

推荐阅读