精华内容
下载资源
问答
  • 进程线程的区别(超详细)

    万次阅读 多人点赞 2019-10-03 21:57:46
    进程线程 进程 一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。 线程 进程中的一个执行任务(控制单元),负责...

    进程和线程

    进程

    一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。

    任务管理器

    线程

    进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。

    与进程不同的是同类的多个线程共享进程的方法区资源,但每个线程有自己的程序计数器虚拟机栈本地方法栈,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程。

    Java 程序天生就是多线程程序,我们可以通过 JMX 来看一下一个普通的 Java 程序有哪些线程,代码如下。

    public class MultiThread {
    	public static void main(String[] args) {
    		// 获取 Java 线程管理 MXBean
    		ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
    		// 不需要获取同步的 monitor 和 synchronizer 信息,仅获取线程和线程堆栈信息
    		ThreadInfo[] threadInfos = threadMXBean.dumpAllThreads(false, false);
    		// 遍历线程信息,仅打印线程 ID 和线程名称信息
    		for (ThreadInfo threadInfo : threadInfos) {
    			System.out.println("[" + threadInfo.getThreadId() + "] " + threadInfo.getThreadName());
    		}
    	}
    }
    

    上述程序输出如下(输出内容可能不同,不用太纠结下面每个线程的作用,只用知道 main 线程执行 main 方法即可):

    [6] Monitor Ctrl-Break //监听线程转储或“线程堆栈跟踪”的线程
    [5] Attach Listener //负责接收到外部的命令,而对该命令进行执行的并且把结果返回给发送者
    [4] Signal Dispatcher // 分发处理给 JVM 信号的线程
    [3] Finalizer //在垃圾收集前,调用对象 finalize 方法的线程
    [2] Reference Handler //用于处理引用对象本身(软引用、弱引用、虚引用)的垃圾回收的线程
    [1] main //main 线程,程序入口
    

    从上面的输出内容可以看出:一个 Java 程序的运行是 main 线程和多个其他线程同时运行

    进程与线程的区别总结

    线程具有许多传统进程所具有的特征,故又称为轻型进程(Light—Weight Process)或进程元;而把传统的进程称为重型进程(Heavy—Weight Process),它相当于只有一个线程的任务。在引入了线程的操作系统中,通常一个进程都有若干个线程,至少包含一个线程。

    根本区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位

    资源开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。

    包含关系:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。

    内存分配:同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的

    影响关系:一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。

    执行过程:每个独立的进程有程序运行的入口、顺序执行序列和程序出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制,两者均可并发执行

    从 JVM 角度说进程和线程之间的关系(重要)

    图解进程和线程的关系

    下图是 Java 内存区域,通过下图我们从 JVM 的角度来说一下线程和进程之间的关系。

    在这里插入图片描述

    从上图可以看出:一个进程中可以有多个线程,多个线程共享进程的方法区 (JDK1.8 之后的元空间)资源,但是每个线程有自己的程序计数器虚拟机栈本地方法栈

    程序计数器为什么是私有的?

    程序计数器主要有下面两个作用:

    1. 字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制,如:顺序执行、选择、循环、异常处理。
    2. 在多线程的情况下,程序计数器用于记录当前线程执行的位置,从而当线程被切换回来的时候能够知道该线程上次运行到哪儿了。

    需要注意的是,如果执行的是 native 方法,那么程序计数器记录的是 undefined 地址,只有执行的是 Java 代码时程序计数器记录的才是下一条指令的地址。

    所以,程序计数器私有主要是为了线程切换后能恢复到正确的执行位置

    虚拟机栈和本地方法栈为什么是私有的?

    • 虚拟机栈:每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,就对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程。
    • 本地方法栈:和虚拟机栈所发挥的作用非常相似,区别是: 虚拟机栈为虚拟机执行 Java 方法 (也就是字节码)服务,而本地方法栈则为虚拟机使用到的 Native 方法服务。 在 HotSpot 虚拟机中和 Java 虚拟机栈合二为一。

    所以,为了保证线程中的局部变量不被别的线程访问到,虚拟机栈和本地方法栈是线程私有的。

    一句话简单了解堆和方法区

    堆和方法区是所有线程共享的资源,其中堆是进程中最大的一块内存,主要用于存放新创建的对象 (所有对象都在这里分配内存),方法区主要用于存放已被加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

    多进程和多线程区别

    多进程:操作系统中同时运行的多个程序

    多线程:在同一个进程中同时运行的多个任务

    举个例子,多线程下载软件,可以同时运行多个线程,但是通过程序运行的结果发现,每一次结果都不一致。 因为多线程存在一个特性:随机性。造成的原因:CPU在瞬间不断切换去处理各个线程而导致的,可以理解成多个线程在抢CPU资源。

    多线程提高CPU使用率

    多线程

    多线程并不能提高运行速度,但可以提高运行效率,让CPU的使用率更高。但是如果多线程有安全问题或出现频繁的上下文切换时,运算速度可能反而更低。

    Java中的多线程

    Java程序的进程里有几个线程:主线程,垃圾回收线程(后台线程)等

    在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程。

    Java支持多线程,当Java程序执行main方法的时候,就是在执行一个名字叫做main的线程,可以在main方法执行时,开启多个线程A,B,C,多个线程 main,A,B,C同时执行,相互抢夺CPU,Thread类是java.lang包下的一个常用类,每一个Thread类的对象,就代表一个处于某种状态的线程

    展开全文
  • VMware我移动复制区别

    千次阅读 2019-08-25 23:24:20
    VMware我移动复制 使用从其他地方转过来的虚拟机文件,VMware会提示选择"我移动"或者"我复制"。 根据实际情况来选择 如果选择"我移动" :vmware不修改虚拟硬盘中的任何信息,网卡的MAC地址会保持不变;因为...

    VMware移动和复制虚拟机的选项说明

    VMware我已移动和复制

    使用从其他地方转过来的虚拟机文件,VMware会提示选择"我已移动"或者"我已复制"。

    根据实际情况来选择

    如果选择"我已移动" :vmware不修改虚拟硬盘中的任何信息,网卡的MAC地址会保持不变;因为始终只有一个MAC地址,不会造成冲突,所以虚拟机间通信没问题。

    如果选择"我已复制" :由于是复制了虚拟机,vmware会更改MAC地址,导致复制后网卡的MAC地址和操作系统中记录的mac地址不符,导致eth0启动不起来。操作系统记录了一个新网卡的添加,新网卡的名字eth1,mac地址就是vmware分配给的新的mac地址。

    推荐使用我已复制,然后更改Mac地址。

    VMware复制Linux虚拟机后修改MAC地址

    1. 更改MAC地址。
    vim /etc/udev/rules.d/70-persistent-net.rules
    

    删除掉 (或者注释掉)关于 eth0 的信息,修改 第二条 eth1 的网卡的名字为 eth0。

    1. 修改IP地址
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    

    mac地址修改为为 /etc/udev/rules.d/70-persistent-net.rules 上一步修改后的eth0的mac地址。

    1. 修改host文件
    vim /etc/hosts
    

    将hosts文件中一些不需要的映射去掉,增加自己需要的ip映射,也可等自己需要时再配置。

    1. 重启虚拟机
    reboot
    

    验证是否可以上网

    ping www.baidu.com
    
    展开全文
  • 用matlab的psd函数pwelch函数求功率谱密度,但是得到的结果为什么下差大约30db %在较早版本中PSD函数得到的是功率谱,不是功率谱密度,所以与pwelch的结果(计算功率谱密度)会有30db的差别
  • GET POST 的区别

    万次阅读 多人点赞 2019-04-07 22:30:29
    GET POST 的区别 二、HTTP 的请求报文 首先我们要解决的第一个问题是:GET POST 是什么? GET POST 其实都是 HTTP 的请求方法。除了这 2 个请求方法之外,HTTP 还有 HEAD、PUT、DELETE、TRACE...

    一、概述

    本文的内容源自其他博客的总结,属于笔者的读书笔记,结构如下:

    • HTTP 的请求报文
    • GET 方法的特点
    • POST 方法的特点
    • GET 和 POST 的区别

    二、HTTP 的请求报文

    首先我们要解决的第一个问题是:GET 和 POST 是什么?

    GET 和 POST 其实都是 HTTP 的请求方法。除了这 2 个请求方法之外,HTTP 还有 HEAD、PUT、DELETE、TRACE、CONNECT、OPTIONS 这 6 个请求方法。所以HTTP 的请求方法共计有 8 种,它们的描述如下所示:

    表格数据来源:菜鸟教程

    请求方法描述
    GET请求指定的页面信息,并返回实体主体。
    POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
    HEAD类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头。
    PUT从客户端向服务器传送的数据取代指定的文档的内容。
    DELETE请求服务器删除指定的页面。
    TRACE回显服务器收到的请求,主要用于测试或诊断。
    CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
    OPTIONS允许客户端查看服务器的性能。

    接下来我们解决第二个问题:请求方法如何使用?

    要解决这个问题,我们首先需要了解 HTTP 的请求报文结构:
    在这里插入图片描述
    可以看到 HTTP 的请求报文由三部分构成:

    • 请求行:由请求方法(Method)、URL 字段和 HTTP 的协议版本组成,注意其中的空格、回车符和换行符均不可省略,所以我们的请求方法实际上就是位于请求行中的了。
    • 请求头部:位于请求行之后,个数可以为 0~若干个,每个请求头部都包含一个头部字段名和一个值,它们之间用冒号 ":" 分隔,在最后用回车符和换行符表示结束。
    • 请求数据:如果请求方法为 GET,那么请求数据为空。它主要是在 POST 中进行使用,适用于需要填表单(FORM)的场景。

    我们通过一个实际的例子来看看 HTTP 的 GET 请求报文是什么样的,我们这里以访问 https://api.github.com/search/users?q=JakeWharton 为例,通过抓包我们得到的请求报文如下所示:

    GET /search/users?q=JakeWharton HTTP/1.1
    Host: api.github.com
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
    Accept-Encoding: gzip, deflate, br
    Accept-Language: zh-CN,zh;q=0.9
    Cookie: _octo=GH1.1.1623908978.1549006668; _ga=GA1.2.548087391.1549006688; logged_in=yes; dotcom_user=GoMarck; _gid=GA1.2.17634150.1554639136; _gat=1
    

    我们重点看到请求行:

    GET /search/users?q=JakeWharton HTTP/1.1

    可以看到请求方法用的是 GET 请求,URL为 /search/users?q=JakeWharton,协议为 HTTP1.1。

    请求行下面部分全都是请求头部,我们可以看到 host 为 api.github.com,连接方式为长连接等信息。值得注意的是我们这个例子中是不存在请求数据的。


    接下来我们在来看一下 POST 请求的报文(该例子源自其他博客):

    POST / HTTP/1.1
    Host: www.wrox.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
    Gecko/20050225 Firefox/1.0.1
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 40
    Connection: Keep-Alive
    
    name=Professional%20Ajax&publisher=Wiley
    

    可以看到请求行中请求方法为 POST,URL 为空,协议版本也是 HTTP1.1。它和上面 GET 方法例子不一样的地方在于它的请求参数是位于请求数据中的,可以看到 name=Professional%20Ajax&publisher=Wiley 就是它的请求数据。并且我们要注意到在请求数据和请求头之间是空出一行的,这是必不可少的。

    三、GET 方法的特点

    1. 前面的例子:https://api.github.com/search/users?q=JakeWharton 就是一个非常典型的 GET 请求的表现形式,即请求的数据会附在 URL 之后(放在请求行中),以 ? 分割 URL 和传输数据,多个参数用 & 连接。

    2. 除此之外,根据 HTTP 规范,GET 用于信息获取,而且应该是安全和幂等的 。

    安全性指的是非修改信息,即该操作用于获取信息而非修改信息。换句话说,GET请求一般不应产生副作用,也就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。


    幂等性 (Idempotence) 则指的是无论调用这个URL 多少次,都不会有不同的结果的 HTTP 方法。而在实际过程中,这个规定没有那么严格。例如在一个新闻应用中,新闻站点的头版不断更新,虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。

    1. GET 是会被浏览器主动缓存的,如果下一次传输的数据相同,那么就会返回缓存中的内容,以求更快地展示数据。
    2. GET 方法的 URL 一般都具有长度限制,但是需要注意的是 HTTP 协议中并未规定 GET 请求的长度。这个长度限制主要是由浏览器和 Web 服务器所决定的,并且各个浏览器对长度的限制也各不相同
    3. GET 方法只产生一个 TCP 数据包,浏览器会把请求头和请求数据一并发送出去,服务器响应 200 ok(返回数据)。

    四、POST 方法的特点

    1. 根据 HTTP 规范,POST 表示可能修改变服务器上的资源的请求。例如我们在刷知乎的时候对某篇文章进行点赞,就是提交的 POST 请求,因为它改变了服务器中的数据(该篇文章的点赞数)。

    2. POST 方法因为有可能修改服务器上的资源,所以它是不符合安全和幂等性的。

    3. 从前面关于 POST 的请求报文也可以看出,POST 是将请求信息放置在请求数据中的,这也是 POST 和 GET 的一点不那么重要的区别。有一些博客的说法是 GET 请求的请求信息是放置在 URL 的而 POST 是放置在请求数据中的所以 POST 比 GET 更安全。其实这种说法很有问题,随便抓下包 POST 中的请求报文就暴露无疑了,这又何来安全之说?

    4. 因为 POST 方法的请求信息是放置在请求数据中的,所以它的请求信息是没有长度限制的。

    5. POST 方法会产生两个 TCP 数据包,浏览器会先将请求头发送给服务器,待服务器响应100 continue,浏览器再发送请求数据,服务器响应200 ok(返回数据)。这么看起来 GET 请求的传输会比 POST 快上一些(因为GET 方法只发送一个 TCP 数据包),但是实际上在网络良好的情况下它们的传输速度基本相同。

    五、GET 和 POST 的区别

    上面说了那么多 GET 方法和 POST 方法各自的特点,它们在外在的表现上似乎是有着诸多的不同,但是实际上,它们的本质是一样的,并无区别!!!

    这似乎有些不可思议,但是我们重新回想一下 GET 和 POST 是什么?它们是 HTTP 请求协议的请求方法,而 HTTP 又是基于TCP/IP的关于数据如何在万维网中如何通信的协议,所以 GET/POST 实际上都是 TCP 链接

    也就是说,GET 和 POST 所做的事其实是一样的,如果你给 GET 加上请求数据,给 POST 加上 URL 参数,这在技术上是完全可行的,事实上确实有一些人为了贪图方便在更新资源时用了GET,因为用POST必须要到FORM(表单),这样会麻烦一点(但是强烈不建议这样子做!!!)。


    既然 GET 和 POST 的底层都是 TCP,那么为什么 HTTP 还要特别将它们区分出来呢?

    其实可以想象一下,如果我们直接使用 TCP 进行数据的传输,那么无论是单纯获取资源的请求还是修改服务器资源的请求在外观上看起来都是 TCP 链接,这样就非常不利于进行管理。所以在 HTTP 协议中,就会对这些不同的请求设置不同的类别进行管理,例如单纯获取资源的请求就规定为 GET、修改服务器资源的请求就规定为 POST,并且也对它们的请求报文的格式做出了相应的要求(例如请求参数 GET 位于 URL 而 POST 则位于请求数据中)。

    当然,如果我们想将 GET 的请求参数放置在请求数据中或者将 POST 的请求数据放置在 URL 中,这是完全可以的,虽然这样子做并不符合 HTTP 的规范。但是这样子做是否能得到我们期望的响应数据呢?答案是未必,这取决于服务器的行为。

    以 GET 方法在请求数据中放置请求参数为例,有些服务器会将请求数据中的参数读出,在这种情况下我们依然能获得我们期望的响应数据;而有些服务器则会选择直接忽略,这种情况下我们就无法获取期望的响应数据了。

    所以,对于 GET 和 POST 的区别,总结来说就是:它们的本质都是 TCP 链接,并无区别。但是由于 HTTP 的规定以及浏览器/服务器的限制,导致它们在应用过程中可能会有所不同

    参考

    本篇博客参考自以下公众号、网站以及博客:

    WebTechGarden: 99%的人都理解错了HTTP中GET与POST的区别

    菜鸟教程:HTTP教程

    HTTP POST GET 本质区别详解 (转)


    希望这篇文章能对您有所帮助~ 有问题的话可以在评论区下方给我留言或者直接私信我。

    展开全文
  • 机器学习(额外篇):聚类算法分类算法的区别

    千次阅读 多人点赞 2019-06-22 10:54:30
    在生活中,我们常常没有过多的去区分这两个概念,觉得聚类就是分类,分类也差不多就是聚类,感觉两个没什么太大的区别。下面,我们就具体来研究下分类与聚类之间在数据挖掘中本质的区别。 分类算法 1.分类算法的说法...

    机器学习中有两类的大问题,一个是分类,一个是聚类。
    在生活中,我们常常没有过多的去区分这两个概念,觉得聚类就是分类,分类也差不多就是聚类,感觉两个没什么太大的区别。下面,我们就具体来研究下分类与聚类之间在数据挖掘中本质的区别。

    分类算法

    1.分类算法的说法:

    1. 分类(classification):分类任务就是通过学习得到一个目标函数f,把每个属性集x映射到一个预先定义的类标号y中。
    2. 分类是根据一些给定的已知类别标号的样本,训练某种学习机器(即得到某种目标函数),使它能够对未知类别的样本进行分类。这属于supervised learning(监督学习)。
    3. 通过学习来得到样本属性与类标号之间的关系。
      用自己的话来说,就是我们根据已知的一些样本(包括属性与类标号)来得到分类模型(即得到样本属性与类标号之间的函数),然后通过此目标函数来对只包含属性的样本数据进行分类。
      对于这些分类算法的说法都大同小异,都提到了一个已知的类别标号。

    2.分类说法的应用背景

    分类问题是用于将事物打上一个标签,通常结果为离散值。例如判断一幅图片上的动物是一只猫还是一只狗,分类通常是建立在回归之上,分类的最后一层通常要使用softmax函数进行判断其所属类别。分类并没有逼近的概念,最终正确结果只有一个,错误的就是错误的,不会有相近的概念。最常见的分类方法是逻辑回归,或者叫逻辑分类。

    3.分类算法的局限性

    分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别与之对应。但是很多时候上述条件得不到满足,尤其是在处理海量数据的时候,如果通过预处理使得数据满足分类算法的要求,则代价非常大,这时候可以考虑使用聚类算法。

    聚类算法

    1.聚类算法的说法

    1. 而聚类指事先并不知道任何样本的类别标号,希望通过某种算法来把一组未知类别的样本划分成若干类别,聚类的时候,我们并不关心某一类是什么,我们需要实现的目标只是把相似的东西聚到一起,这在机器学习中被称作 unsupervised learning (无监督学习)
    2. 通常,人们根据样本间的某种距离或者相似性来定义聚类,即把相似的(或距离近的)样本聚为同一类,而把不相似的(或距离远的)样本归在其他类。
    3. 聚类的目标:组内的对象相互之间时相似的(相关的),而不同组中的对象是不同的(不相关的)。组内的相似性越大,组间差别越大,聚类就越好。

    分类算法和聚类算法之间的比较

    • 聚类分析是研究如何在没有训练的条件下把样本划分为若干类。
    • 在分类中,对于目标数据库中存在哪些类是知道的,要做的就是将每一条记录分别属于哪一类标记出来。
    • 聚类需要解决的问题是将已给定的若干无标记的模式聚集起来使之成为有意义的聚类,聚类是在预先不知道目标数据库到底有多少类的情况下,希望将所有的记录组成不同的类或者说聚类,并且使得在这种分类情况下,以某种度量(例如:距离)为标准的相似性,在同一聚类之间最小化,而在不同聚类之间最大化。
    • 与分类不同,无监督学习不依赖预先定义的类或带类标记的训练实例,需要由聚类学习算法自动确定标记,而分类学习的实例或数据样本有类别标记。
    展开全文
  • SOP 封装 SOIC 封装的区别,实际上仅有很小的区别,可以混用,还有其他一些封装的简介。
  • 首先将过期的xftpxshell卸载, 然后百度搜索[xshell-download](https://www.netsarang.com/en/all-downloads/), 进去进行下载, 勾选Evaluation user / Home & School user 将License type 选项选为 Home ...
  • 阻塞死锁的区别

    千次阅读 2018-05-25 08:35:20
    死锁:资源互不相让,具体可以看上一篇文章的代码例子。阻塞:由于资源短缺,而造成的部分程序暂停等待最后附上死锁的官方解释条件:阻塞:由于...2)请求保持条件:指进程已经保持至少一个资源,但又提出了新的资...
  • 想要理解PHPPython的差别,我们可以从二者的定义、利益短少以及受众人群三个方面的停止分析。PHPPython的差别之一:定义不同。PHP是一种通用开源脚本言语,语法混合了C、Java、Perl以及PHP自创的语法,因而...
  • “我移动该虚拟机” 表示打开后,虚拟机的网卡的mac地址不变,如果复制的是本地的虚拟机,复制前的虚拟机复制后的虚拟机同时开机会造成网络冲突。“我复制该虚拟机” 表示打开复制后的虚拟机的网卡的物理地址...
  • Python测试框架之unittestpytest 的区别

    万次阅读 多人点赞 2020-01-13 19:27:53
    一、Unittest Unittest是Python标准库中自带的单元测试...Unittest支持自动化测试,测试用例的初始化、关闭测试用例的聚合等功能,它有一个很重要的特性:它是通过类(class)的方式,将测试用例组织在一起。 示例...
  • 提交-Read committed 可重复读-Repeatable read–MySQL 序列化-Serializable 事务隔离级别 脏读 不可重复读 幻读 读未提交 √ √ √ 读提交 × √ √ 可重复读 × × √ 序列化 × × × 越...
  • Java中errorException区别

    千次阅读 2018-11-25 20:14:46
    Java中errorException区别
  • URIURL的区别比较与理解

    万次阅读 多人点赞 2018-06-04 10:12:03
     三、URIURL之间的区别 从上面的例子来看,你可能觉得URIURL可能是相同的概念,其实并不是,URIURL都定义了资源是什么,但URL还定义了该如何访问资源。URL是一种具体的URI,它是URI的一个子集,它不仅唯一...
  • SDHCSDXC的区别总结

    千次阅读 2019-08-17 10:12:55
    拆海康威视的执法记录仪,把原配的16G内存卡换成64G内存卡,开机显示存储满,也就是执法记录仪并未能识别64G内存卡,然后换上32G的内存卡,开机能识别并显示内存卡剩余空间大小。 仔细对比,发现这三张卡除了容量...
  • cookie、sessionStoragelocalStorage的区别

    万次阅读 多人点赞 2019-05-30 21:29:47
    1)webstorage是本地存储,存储在客户端,包括localStoragesessionStorage 2)localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。存放数据大小...
  • 浅谈MySQLmariadb区别

    千次阅读 2020-08-21 17:24:24
    这两个数据库究竟有什么本质的区别,我看mariadb文件夹BIN中还是mysql*.exe,除了MySQL会被ORACLE闭源外,而mariadb则开源,他俩之间到底还有什么本质区别没有? 区别一: MariaDB不仅仅是Mysql的一...
  • CookieToken的区别

    千次阅读 2020-11-23 11:39:16
    两者的共同点都是用来判断用户是否“登录”,至于判断具体是哪个用户,服务器的做法不一样: Cookie 验证是服务器在用户登录时生成 用户唯一标识 即 Sessionid 并映射表的形式保存在该台服务器的内存上(一般...
  • 汇编反汇编的区别

    千次阅读 2019-01-16 00:04:09
    汇编与反汇编的区别 我们先看一个图,一个c程序如何变成一个可执行程序 1.汇编 动词,指的是把汇编语言翻译成机器语言的过程。 名词,指的便是汇编语言 在linux查看.s文件(Ps:源程序为test.c)  ...
  • 数组链表的区别

    千次阅读 2018-04-29 18:10:20
    它采用动态分配内存的形式实现,需要时可以用new分配内存空间,不需要时用delete释放分配的空间,不会造成内存空间的浪费。适合插入删除,查询操作开销较大。区别总结:数组静态分配内存,链表动态分配...
  • 面试官:兄弟,说说基本类型包装类型的区别

    万次阅读 多人点赞 2019-09-29 08:36:07
    Java 的每个基本类型都对应了一个包装类型,比如说 int 的包装类型为 Integer,double 的包装类型为 Double。基本类型包装类型的区别主要有以下 4 点。
  • 接口抽象类有什么区别

    千次阅读 2019-04-19 14:06:15
    接口抽象类有什么区别? 抽象类可以有构造方法;接口中不能有构造方法。 抽象类中可以有普通成员变量;接口中没有普通成员变量。 抽象类中可以包含非抽象普通方法;接口中的所有方法必须都是抽象的。 抽象类...
  • SocketHttp之间的区别和概述

    万次阅读 多人点赞 2018-03-01 14:39:31
    sockethttp的区别:Http协议:简单的对象访问协议,对应于应用层。Http协议是基于TCP链接的。tcp协议:对应于传输层ip协议:对应与网络层TCP/IP是传输层协议,主要解决数据如何在网络中传输;而Http是应用层...
  • isEmptynull有什么区别

    千次阅读 2019-06-24 09:19:56
    isEmptynull的区别: 1.isEmpty是对象是否为空(IsNull),null是值为空(IsEmpty) 2.isEmpty() 用于判断List内容是否为空,必须在 list 本身不是空的引用的情况下才行; null 用于判断有没有这个集合对象; 是否为...
  • 在应用开发中有时会碰到操作蓝牙设备的需求,这时就...其中的区别就是connected状态,用int表示其区别共有三个值 10表示无绑定也无链接 11表示绑定 12表示链接。 如果通过标准协议api获取连接的设备由于其实现...
  • UAT测试SIT测试的区别

    万次阅读 2019-02-21 17:55:24
    区别如下: 1、UAT:终端用户集成测试,主要是要求用户参与进测试流程,并得到用户对软件的认可,鼓励用户自己进行测试设计进行破坏性测试,充分暴露系统的设计功能问题,显然,用户的认可破坏性测试是难点。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,019,384
精华内容 407,753
关键字:

以和已的区别