精华内容
下载资源
问答
  • 上面Car 是我们自己定义的一个类 mycar则先看作是变量名。 其实也就叫做对象,在C#入门经典一书里称它为命名实例。 书中说对象和类的实例的含义相同。 那么怎么完成实例呢。我们创建一个对象需要对它初始...

    Car mycar;
    上面Car 是我们自己定义的一个类 mycar则先可看作是变量名。
    其实也就叫做对象,在C#入门经典一书里称它为命名实例。
    书中说对象和类的实例的含义相同。
    那么怎么完成实例化呢。我们创建一个对象需要对它初始化数据。能够有这一作用的是什么呢?——构造函数。所以就有了 Car mycar= new Car();
    当我们自己定义了与类同名的有参构造函数时,假设参数类型是整型的,则是这样的
    Car mycar= new Car(2);
    所以 说这一整个过程才能说是实例化对象。
    构造函数就是初始化这个类的对象的所有数据成员;

    多态性

    在多态性中,可以用子类对象创建父类对象
    mycar= new ModelCar();
    虽然初始化了MOdelCar里的全部成员,当时创建的对象的类型却是父类 ,所以父类不存在的成员则不能通过子类的对象访问。

    这里要说一下的构造函数是无返回值的 默认void
    在这里插入图片描述

    展开全文
  • 什么串行MVCC

    万次阅读 2020-11-25 18:27:23
    而多个事务并发可能会同时存取同一数据,产生数据不一致的情况:读“脏”数据,不可重复读等。所以数据库管理系统(Database Management System,DBMS)必须提供并发控制机制,使得并发的事务在冲突的时候被串行...

    MVCC介绍

     MVCC, 即multi-version concurrency control,多版本并发控制。 它的核心思想是为每一个写操作创建一个新版本,不同的事务根据它的时间戳读取对应的版本。
     与锁机制相比,MVCC不阻塞读操作,也不阻塞写操作。很大程度上提高了事务的并发数,然后,可串行化的MVCC却可能会付出很大的回滚开销。

    可串行化MVCC

    1. 假设并行事务的所有操作都是非冲突操作,如果某个事务的操作导致了冲突,则该事务需回滚;
    2. 事务时间戳顺序(从低到高)即是事务冲突可串行化的顺序,如果事务的并行操作产生了冲突,则至少一个事务需要回滚重启;
    3. 每个记录都有多个已提交版本和多个零时版本,每个版本都包含读时间戳RT,写时间戳WT,和一个提交位C,提交位表示最近一次修改是否修改被提交。

     如下图所示;每次合法的写操作都将产生该记录的一个临时版本,读时间戳为创建该版本的事务的时间戳
    在这里插入图片描述
     时间戳产生的方式主要有以下两种

    1. 采用系统时间作为时间戳,只要确保调度器不会在一个时钟周期内调度两个以上的事务的;
    2. 采用计数器,单调递增,作为事务的逻辑时间戳

    导致冲突的两种操作

     在基于时间戳的调度中,同样也需要确保,事务最后的执行顺序必须是事务串行化的顺序。然而基于时间戳还是存在冲突。

    1. 过晚的读
      两个并行事务T,U,T比U先开始
      T:RT(X)
      U:WU(X)
      如果在U在T读之前写,则T的读就导致了一个冲突,使T,U无法通过非冲突交换等价于一个串行调度(T,U)。
      在这里插入图片描述
    2. 过晚的写
       两个并行事务T,U,T比U先开始
      T:WT(X)
      U:RU(X)
      T,U的串行调度为:WT(X),RU(X)
       如图所示,实际调度是:RU(X),WT(X),这个调度不能通过非冲突交换等价与串行调度(T,U),因此T的写操作导致了一个冲突,T该被回滚并重启。
      在这里插入图片描述

    可串行化多版本时间戳调度规则

     对于事务T的读写请求,按照如下规则进行调度

    假设收到事务T的读请求RT(X)

     该读请求会试图读取写时间戳小于或等于TS(T)的最大写时间戳的版本V,即写时间戳小于或等于T的版本中,离TS(T)最近的版本,找到这样的版本后V,直接读取;当成功读取一个版本的时候,如果TS(T)大于该版本的读时间戳,则设置其读时间戳为TS(T),否则不改变该版本读时间戳。这种不阻塞读的策略,会导致级联回滚,即一个事务回滚,会导致语气相关的事务跟着回滚。并且,同一个事务的double-write可能会导致该事务回滚。这里也可以采取读阻塞,直到该版本C位变为真。

    假设收到事务T的写请求WT(X)

    调度器首先找到写时间戳小于或等于TS(T)的所有版本中写时间戳最大的版本V(该版本可能未提交),如果V的读时间戳满足:RT(X) < TS(T),则创建一个新版本,置该版本写时间戳为TS(T)(此时还没有其他事务来读取该版本,可将该版本的读时间戳设置为T时间戳,因为不会有时间戳比T小的事务来读取该版本,这样做是合理的);如果V的写时间戳等于T的时间戳,即版本V是由T创建的,则直在版本V上修改即可;如果V的读时间戳不满足要求,则回中止T,并重启。

    假设收到事务的提交请求

     要求必须按照事务时间戳的顺序创建每个对象的提交版本,因此,如果一个事务提交时,在时间戳排序上,还有在它之前的事务未提交,该事务需要等待。

    假设收到事务的中止请求

     当一个事务被中止时,它创建的所有版本都需要被删除,因为读阻塞在这些版本上的事务需要重新开始读操作。如果有其他事务读取了该事务创建的版本,那么这些事务也需要重启。

    Read Committed隔离级别

     该隔离级别下,事务的读请求,每次读取的数据都是在该读请求发起时,是已提交的最新版本。
    对于事务T的读写请求,按照如下规则进行调度

    1. 假设收到事务T的读请求RT(X)
      该请求会读取在该请求发起的时刻,最近提交的事务创建的版本,即符合条件的版本是在该请求发起时,最新的已提交版本;
    2. 假设收到事务T的写请求WT(X)
      调度器首先找到写时间戳小于或等于TS(T)的所有版本中写时间戳最大的版本V(该版本可能未提交),如果V的读时间戳满足:RT(X) < TS(T),则创建一个新版本,置该版本写时间戳为TS(T)(此时还没有其他事务来读取该版本,可将该版本的读时间戳设置为T时间戳,因为不会有时间戳比T小的事务来读取该版本,这样做是合理的);如果V的写时间戳等于T的时间戳,即版本V是由T创建的,则直在版本V上修改即可;如果V的读时间戳不满足要求,则回中止T,并重启。
    3. 假设收到事务的提交请求
      因为事务创建的版本在未提交之前是不会被其他事务读取的,并且事务只会读取已经提交的数据,因此,事务发出提交请求时,就一定可以提交。
    4. 假设收到事务的中止请求
      当一个事务被中止时,它创建的所有版本都需要被删除,因为读阻塞在这些版本上的事务需要重新开始读操作。

    Repeatable Read 隔离级别

     该隔离级别下,事务的读请求,每次读取的数据都是在该事务开始之前,最近提交的数据。
     对于事务T的读写请求,按照如下规则进行调度

    1. 假设收到事务T的读请求RT(X)
      该请求会读取在该事务开始时,最近提交的事务创建的版本。记事务T的时间戳A(事务T开始的时刻),则版本列表中写时间戳(创建该版本的时间戳)小于等于A的所有已提交版本中写时间戳最大者即为符合条件的版本,即所读取的版本首先必须是已经提交了的,其次,它是离A最近的事务创建的版本;
    2. 假设收到事务T的写请求WT(X)
      调度器首先找到写时间戳小于或等于TS(T)的所有版本中写时间戳最大的版本V(该版本可能未提交),如果V的读时间戳满足:RT(X) < TS(T),则创建一个新版本,置该版本写时间戳为TS(T)(此时还没有其他事务来读取该版本,可将该版本的读时间戳设置为T时间戳,因为不会有时间戳比T小的事务来读取该版本,这样做是合理的);如果V的写时间戳等于T的时间戳,即版本V是由T创建的,则直在版本V上修改即可;如果V的读时间戳不满足要求,则回中止T,并重启。
    3. 假设收到事务的提交请求
      因为事务创建的版本在未提交之前是不会被其他事务读取的,并且,事务读取的数据都是在事务开始时已经提交的数据,因此,事务发出提交请求时,就一定可以提交。
    4. 假设收到事务的中止请求
      当一个事务被中止时,它创建的所有版本都需要被删除,因为读阻塞在这些版本上的事务需要重新开始读操作。

     按照上述规则可能出现一种不是幻读的错误,因此,它不是严格的RR隔离级别,可以参考postgreSQL的RR隔离级别,举例说明如下。
    事务T1,T2,表Table1,Table1中有一个整形字段Val。
    假设Table1中已经有2条记录,值分别为10,20,如下表所示:

    int id int val
    1 10
    2 20

    T1,T2的操作如下:
     T1读取第2行数据,设该行数据为X,则修改第一行数据为X;
     T2读取第1行数据,设该行数据为Y,修改第2行数据为Y;

     T1,T2的操作序列是为了将两行数据设置成相等的值,如果按照串行的执行顺序,最终2行将会是一样的值,但在Repeatable Read隔离级别下,由于读取限制,最后修改完成后,不能得到预期的效果。
     T1,T2的操作序列如下:
    在这里插入图片描述
     按照上述操作序列,在RR隔离级别下,最后第1行记录值为20,第2行记录值为10,这与串行执行的效果是不一致的。
     上述错误是postgreSQL在第三种隔离级别下的一个Bug,postgreSQL使用predicate lock修复了这个Bug,并将具有predicate lock的Reapeatable Read隔离级别作为第四种隔离级别。

    可串行化调度规则举例

    1. 使用多版本时间戳的调度规则,读操作永远不会被拒绝,因为过晚的读操作可以读更早的版本。
    2. 写操作被拒绝举例
      在这里插入图片描述
       上图有两个写时间戳为T1和T2的提交版本。
       操作序列为:
       T3 read; T3 write; T5 read; T4 write;
      a) T3请求一个读操作,它在T2版本上设置读时间戳T3。
      b) T3请求一个写操作,生成一个写时间戳为T3的临时版本。
      c) T5请求一个读操作,它访问写时间戳为T3的版本(小于T5的具有最高写时间戳的版本),同时设置该临时版本的读时间戳为T5。
      d) T4请求一个写操作,由于写时间戳为T3的版本的读时间戳T5大于T4,该写操作被拒绝。(如果该写操作不被拒绝,那么新版本的写时间戳将是T4。如果允许创建这个版本,那么这回合T5的读操作冲突,此时,T5的读操作应该使用时间戳为T4的版本。)
    1. 某个事务double-write导致回滚
      事务Ta,Tb,Tia< Tb(即Ta比Tb早开始)
      操作序列为:Ta write;Tb read;Ta write;
      在这里插入图片描述
      a) Ta请求一个写操作,生成一个写时间戳为Ta的临时版本;
      b) Tb请求一个读操作,它访问写时间戳为Ta的版本,该临时版本是写时间戳比Tb小的所有版本中写时间戳最大者,同时设置该版本读时间戳为Tb;
      c) Ta再次请求一个写操作,它会访问自己先前创建的版本,但是,该版本的读时间戳Tb > Ta,该写被拒绝,Ta回滚,并以一个更大的时间戳重启。
    展开全文
  • 任何序列该类的尝试都会因NotSerializableException而失败,但这可以通过在Java中为其设置瞬态(trancient)变量来轻松解决。 Java序列相关的常见问题 Java序列是一个重要概念,但它很少用作持久性解决方案...

    分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net

    任何序列化该类的尝试都会因NotSerializableException而失败,但这可以通过在Java中为其设置瞬态(trancient)变量来轻松解决。

    Java序列化相关的常见问题

    Java序列化是一个重要概念,但它很少用作持久性解决方案,开发人员大多忽略了Java序列化API。

    大多数商业项目使用数据库或内存映射文件或只是普通文件,来满足持久性要求,只有很少的项目依赖于Java中的序列化过程。

    对于那些不熟悉Java序列化的人,Java序列化是用来通过将对象的状态存储到带有.ser扩展名的文件来序列化Java中的对象的过程,并且可以通过这个文件恢复重建Java对象状态,这个逆过程称为deserialization。

    什么是Java序列化

    序列化是把对象改成可以存到磁盘或通过网络发送到其他运行中的Java虚拟机的二进制格式的过程,并可以通过反序列化恢复对象状态。Java序列化API给开发人员提供了一个标准机制,通过java.io.Serializable和java.io.Externalizable接口,ObjectInputStream及ObjectOutputStream处理对象序列化。Java程序员可自由选择基于类结构的标准序列化或是他们自定义的二进制格式,通常认为后者才是最佳实践,因为序列化的二进制文件格式成为类输出API的一部分,可能破坏Java中私有和包可见的属性的封装。

    如何序列化

    让Java中的类可以序列化很简单,你的Java类只需要实现java.io.Serializable接口,JVM就会把Object对象按默认格式序列化。让一个类是可序列化的需要有意为之,类可序列化会是一个长期代价,可能会因此而限制你修改或改变其实现。当你通过实现添加接口来更改类的结构时,添加或删除任何字段都可能会破坏默认序列化,这可以通过自定义二进制格式使不兼容的可能性最小化,但仍需要大量的努力来确保向后兼容性。序列化如何限制你更改类的能力的一个示例是SerialVersionUID。如果不显式声明SerialVersionUID,则JVM会根据类结构生成其结构,该结构依赖于类实现的接口和可能更改的其他几个因素。假设你新版本的类文件实现了另一个接口,JVM将生成一个不同的SerialVersionUID,当你尝试加载旧版本的程序序列化的旧对象时,你将获得无效类异常InvalidClassException。

    1.Java中的可序列化接口和可外部化接口之间的区别是什么?

    这是Java序列化访谈中最常问的问题。下面是我的版本:Externalizable给我们提供writeExternal()和readExternal()方法,这让我们灵活地控制Java序列化机制,而不是依赖于Java的默认序列化。正确实现Externalizable接口可以显著提高应用程序的性能。

    2.可序列化的方法有多少?如果没有方法,那么可序列化接口的用途是什么?

    可序列化Serializalbe接口存在于java.io包中,构成了Java序列化机制的核心。它没有任何方法,在Java中也称为标记接口。当类实现java.io.Serializable接口时,它将在Java中变得可序列化,并指示编译器使用Java序列化机制序列化此对象。

    3.什么是serialVersionUID?如果你不定义这个,会发生什么?

    serialVersionUID是一个private static final long型ID,当它被印在对象上时,它通常是对象的哈希码,你可以使用serialver这个JDK工具来查看序列化对象的serialVersionUID。SerialVerionUID用于对象的版本控制。也可以在类文件中指定serialVersionUID。不指定serialVersionUID的后果是,当你添加或修改类中的任何字段时,则已序列化类将无法恢复,因为为新类和旧序列化对象生成的serialVersionUID将有所不同。Java序列化过程依赖于正确的序列化对象恢复状态,并在序列化对象序列版本不匹配的情况下引发java.io.InvalidClassException无效类异常。

    4.序列化时,你希望某些成员不要被序列化?你如何实现?

    如果你不希望任何字段是对象的状态的一部分,根据你的需要,声明它为静态或瞬态,这样就不会是在Java序列化过程中被包含在内。

    5.如果类中的一个成员未实现可序列化接口,会发生什么情况?

    如果尝试序列化实现可序列化的类的对象,但该对象包含对不可序列化类的引用,则在运行时将引发不可序列化异常NotSerializableException,在可序列化类中添加新字段时要注意。

    6.如果类是可序列化的,但其超类不是,则反序列化后从超类继承的实例变量的状态如何?

    Java序列化过程仅在对象层次都是可序列化的结构中继续,即实现Java中的可序列化接口,并且从超类继承的实例变量的值将通过调用构造函数初始化,在反序列化过程中不可反序列化超类。一旦构造函数链启动,就不可能停止,因此,即使层次结构中较高的类实现可序列化接口,也将执行构造函数。

    7.是否可以自定义序列化过程,或者是否可以覆盖Java中的默认序列化过程?

    答案是肯定的,你可以。我们都知道,对于序列化一个对象需调用ObjectOutputStream.writeObject(saveThisObject),并用ObjectInputStream.readObject()读取对象,但Java虚拟机为你提供的还有一件事,是定义这两个方法。如果在类中定义这两种方法,则JVM将调用这两种方法,而不是应用默认序列化机制。你可以在此处通过执行任何类型的预处理或后处理任务来自定义对象序列化和反序列化的行为。需要注意的重要一点是要声明这些方法为私有方法,以避免被继承、重写或重载。由于只有Java虚拟机可以调用类的私有方法,你的类的完整性会得到保留,并且Java序列化将正常工作。

    8.假设新类的超级类实现可序列化接口,如何避免新类被序列化?

    如果类的Super类已经在Java中实现了可序列化接口,那么它在Java中已经可以序列化,因为你不能取消接口,它不可能真正使它无法序列化类,但是有一种方法可以避免新类序列化。为了避免Java序列化,你需要在类中实现writeObject()和readObject()方法,并且需要从该方法引发不可序列化异常NotSerializableException。这是自定义Java序列化过程的另一个好处。

    9.在Java中的序列化和反序列化过程中要用到哪些方法?

    Java序列化由java.io.ObjectOutputStream类完成。该类是一个筛选器流,它封装在较低级别的字节流中,以处理序列化机制。要通过序列化机制存储任何对象,我们调用ObjectOutputStream.writeObject(savethisobject),要反序列化该对象,我们调用ObjectInputStream.readObject()方法。调用writeObject()方法在Java中触发序列化过程。关于readObject()方法,需要注意的一点且是很重要一点是,它用于持久性读取字节,并从这些字节创建对象,并返回一个对象,该对象需要强制类型转换为正确的类型。

    10.假设你有一个类,它序列化并存储在持久性存储中,然后修改了该类以添加新字段。如果对已序列化的对象进行反序列化,会发生什么情况?

    这取决于类是否具有其自己的serialVersionUID。正如我们从上面的问题知道,如果我们不提供serialVersionUID,则Java编译器将生成它,通常它等于对象的哈希代码。通过添加任何新字段,有可能为该类新版本生成的新serialVersionUID与已序列化的对象不同,在这种情况下,Java序列化API将引发java.io.InvalidClassException,因此建议在代码中拥有自己的serialVersionUID,并确保在单个类中始终保持不变。

    11.Java序列化机制中的兼容更改和不兼容更改是指什么?

    真正的挑战在于通过添加任何字段、方法或删除任何字段或方法来更改类结构,方法是使用已序列化的对象。根据Java序列化规范,添加任何字段或方法都面临兼容的更改和更改类层次结构或取消实现的可序列化接口,有些接口在非兼容更改下。对于兼容和非兼容更改的完整列表,建议阅读Java序列化规范。

    12.我们可以通过网络传输一个序列化的对象吗?

    是的,你可以通过网络传输序列化对象,因为Java序列化对象仍以字节的形式保留,字节可以通过网络发送。你还可以将序列化对象存储在磁盘或数据库中作为Blob。

    13.在Java序列化期间,哪些变量未被序列化?

    这个问题问得不同,但目的还是一样的,Java开发人员是否知道静态和瞬态变量的细节。由于静态变量属于类,而不是对象,因此它们不是对象状态的一部分,因此在Java序列化过程中不会保存它们。由于Java序列化仅保留对象的状态,而不是对象本身。瞬态变量也不包含在Java序列化过程中,并且不是对象的序列化状态的一部分。

    展开全文
  • 可视编程语言是什么意思

    千次阅读 2019-01-19 14:49:58
    可视编程,亦即可视程序设计:以“所见即所得”的编程思想为原则,力图实现编程工作的可视,即随时可以看到结果,程序与结果的调整同步。可视编程是与传统的编程方式相比而言的,这里的“可视”,指的是无须...

    可视化编程,亦即可视化程序设计:以“所见即所得”的编程思想为原则,力图实现编程工作的可视化,即随时可以看到结果,程序与结果的调整同步。
    可视化编程是与传统的编程方式相比而言的,这里的“可视”,指的是无须编程,仅通过直观的操作方式即可完成界面的设计工作,是目前最好的Windows应用程序开发工具。
    可视化编程语言的特点主要表现在两个方面:一是基于面向对象的思想,引入了控件的概念和事件驱动;二是程序开发过程一般遵循以下步骤,即先进行界面的绘制工作,再基于事件编写程序代码,以响应鼠标、键盘的各种动作。
    可视化编程十问
    1. 什么是可视化程序设计?
    可视化(Visual)程序设计是一种全新的程序设计方法,它主要是让程序设计人员利用软件本身所提供的各种控件,像搭积木式地构造应用程序的各种界面。
    2. 可视化程序设计有哪些优点?
    可视化程序设计最大的优点是设计人员可以不用编写或只需编写很少的程序代码,就能完成应用程序的设计,这样就能极大地提高设计人员的工作效率。
    3. 能够进行可视化程序设计的语言有哪些?
    能进行可视化程序设计的语言很多,比较常用的有微软的Visual Basic、Visual C++、中文Visual Foxpro、Borland公司的Delphi等。
    4. 可视化程序设计中有哪些基本概念?
    主要的几个基本概念有表单、组件、属性、事件、方法等。
    5. 什么是表单(Form)?
    表单是指进行程序设计时的窗口,我们主要是通过在表单中放置各种部件(如命令按钮、复选框、单选框、滚动条等)来布置应用程序的运行界面。
    6. 什么是组件?
    所谓组件,就是组成程序运行界面的各种部件,如:命令按钮、复选框、单选框、滚动条等。
    7. 什么是属性?
    属性就是组件的性质。它说明组件在程序运行的过程中是如何显示的、组件的大小是多少、显示在何处、是否可见、是否有效……
    8. 属性可以分成哪几类?
    属性可分成三类,设计属性:是在进行设计时就可发挥作用的属性;运行属性:这是在程序运行过程中才发挥作用的属性;只读属性:是一种只能查看而不能改变的属性。
    9. 什么是事件?
    事件就是对一个组件的操作。如用鼠标点击一个命令按钮,在这里,点击鼠标就称为一个事件(Click事件)。
    10. 什么是方法?
    方法就是某个事件发生后要执行的具体操作,类似以前的程序。例如当我们用鼠标单击“退出”命令按钮时,程序就会通过执行一条命令而结束运行,命令的执行过程就叫方法。

    展开全文
  • Java中的String为什么不可变的? -- String源码分析

    万次阅读 多人点赞 2014-01-15 22:07:12
    什么不可变对象? 众所周知, 在Java中, String类是不可变的。那么到底什么不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的...
  • 序列就是一种用来处理对象流的机制
  • amp;wfr=spider&amp;for=pc ICQ指PA静态工作电流,最新MIPI技术,支持PA静态工作电流的调整,进而优化PA效率。...所谓特征,就是用金板制作APT特征表,这个表描述了: 在一组 PA输出功率范围,比如25...
  • Ethercat - 初始过程中主站对从站到底做了什么“”不可描述”的事情  最近有人在群里问一些关于从站配置的问题,趁此机会简单总结下在从站启动过程中主站到底对从站做了哪些事情。要了解这些内容最近单最直接的...
  • String类不可变以及不可变类总结

    千次阅读 2017-10-01 20:11:38
    String类在java中是immutable(不可变),因为它被关键字final修饰。... 要了解String类创建的实例为什么不可变,首先要知道final关键字的作用:final的意思是“最终,最后”。final关键字可以修饰类、方法...
  • String为什么不可改变?

    千次阅读 2018-07-17 20:40:21
    什么不可变对象? 众所周知, 在Java中, String类是不可变的。那么到底什么不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的...
  • Java中的序列到底是什么

    千次阅读 多人点赞 2020-06-29 14:07:46
    我们都知道,新建一个对象的时候实现 Serializeable 接口,但为什么要这么做?什么时候这样子做?这样子做会不会出现幺蛾子?阿淼一个三连差点把自己都问懵逼了…… 那接下来,大家就和阿淼一起简单了解一下这个知识...
  • 什么是模块,模块的好处是

    万次阅读 2019-07-15 20:25:43
    什么是模块,模块的好处是? 模块是一种处理复杂系统分解为更好的管理模块的方式。 所谓的模块开发就是封装细节,提供使用接口,彼此之间互不影响,每个模块都是实现某一特定的功能。模块开发的基础...
  • 什么是前端工程

    万次阅读 多人点赞 2019-06-28 11:38:18
    前端越来越复杂,前端面试的要求也越来越高。如何提升前端开发水平?如何应对前端面试?我在日常工作中前端的开发框架以 ...对前端的要求相比几年前已经从单纯的 JavaScript、CSS 问题变成了更多以工程为主的问题。
  • (对象序列与反序列、transient关键字) 这篇文章很直接,简单易懂。尝试着翻译一下 ,原文是What are writeObject and readObject? Customizing the serialization process. 在Java中使用Serialization相当...
  • 遇到这个 Java Serializable 序列这个接口,我们可能会有如下的问题a,什么叫序列和反序列 b,作用。为啥要实现这个 Serializable 接口,也就是为啥要序列 c,serialVersionUID 这个的值到底是在怎么设置的...
  • 如题, java中final修饰的变量是引用不可变,还是对象不可变... 答案是引用不可变,引用的对象还是可以改变的。 在这里我要强调一下,不...至于为什么String是一个不可变的字符串常量,有兴趣的同学可以看一下源码,
  • 什么是序列,为什么要序列

    万次阅读 多人点赞 2016-04-18 11:10:25
    转自:网络--(忘记从哪看到的了) 整理:Bob 在学习分布式计算的时候,老师上课提到...以下是我从网上找到的关于,什么是序列,为什么要序列解释的比较好的一篇博文。 ================================
  • 简介序列化是指将对象实例的状态存储到存储媒体的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。...例如,简单的二进制序列化不
  • Java中的String字符串为什么不可

    千次阅读 2016-05-02 20:38:10
    什么不可变对象? 众所周知, 在Java中, String类是不可变的。那么到底什么不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的...
  • python {0:^30}什么意思 python里 {0:^30}是什么意思 print(“decimal hex chr {0:^30}”.format(“name”)) 这种用法属于Python的格式输出字符: {0:^30}中的0是一个序号,表示格式输出的第0个字符,依次...
  • 遇到这个 Java Serializable 序列这个接口,我们可能会有如下的问题a,什么叫序列和反序列 b,作用。为啥要实现这个 Serializable 接口,也就是为啥要序列 c,serialVersionUID 这个的值到底是在怎么设置的...
  • a,什么叫序列和反序列 b,作用。为啥要实现这个 Serializable 接口,也就是为啥要序列 c,serialVersionUID 这个的值到底是在怎么设置的,有什么用。有的是1L,有的是一长串数字,迷惑ing。 我刚刚见到这个...
  • 概述  相对于结构数据(即行数据,存储在数据库里,可以用... 非结构数据库是指其字段长度可变,并且每个字段的记录又可以由可重复或不可重复的子字段构成的数据库,用它不仅可以处理结构数据(如数字、符号
  • 什么是模块,组件, 插件

    万次阅读 2018-06-01 09:31:27
    最近毕竟火的也就是组件的应用了,可以大大加快项目的开发进度,对此本人亲自做了demo,有想了解的朋友请关注:https://github.com/wangpengfei1992/ModularizedDemo 废话多说,解释一下这几个的概念和区别的...
  • 简单图算法(Havel算法)

    千次阅读 2018-07-14 23:32:00
    在可图,但是不可简单图的这种图中,就是因为会出现一些点上,一定会出现环(或者重边)的情况 所以,我们只需要确定了一个固定的顺序,这样就可以解决掉这里重边的情况。(在操作系统中,关于解决死...
  • Sass是什么意思

    千次阅读 2013-09-23 08:45:00
    Sass是什么意思?前端中人很少有接触CSS的,那么大多数接触CSS的人都知道CSS的好用处和不好用处。Sass是编写的CSS预处理器,有了它,我们可以轻松畅快的编写CSS了。那么Sass是什么意思?下面将为大家简单介绍一下,...
  • 从前几年开始,安防厂商就已经开始在强调视频结构,经过算法的演进和技术的革新,...从数据处理的流程看,视频结构描述技术能够将监控视频转化为人和机器理解的信息,并进一步转化为公安实战所用的情报,实...
  • Java的string类常量池及不可变性

    万次阅读 多人点赞 2016-03-10 10:48:49
    最流行的Java面试题之一就是:什么不可变对象(immutable object),不可变对象有什么好处,在什么情况下应该用,或者更具体一些,Java的String类为什么要设成immutable类型? 不可变对象,顾名思义就是创建后不...
  • 1.String对象不可变、StringBuffer对象可变的含义: 举个例子:String str = "aa"; str = "aa"+"bb"; 此时str的值为"aabb",但是"aabb"不是在开始的字符串"aa"后面直接连接的"bb",而是又新生成了字符串"aabb",字符...
  • 冲突串行(conflict serializable):一个 schedule能将冲突的操作调节成类似串行的操作。 优先图判断是否是冲突串行: 先画出每个 transaction(T1 T2 T3…)找到所有的 读写操作,按照先后顺序,将

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 582,933
精华内容 233,173
关键字:

化不可及的意思是什么