java实体类如何加入虚拟字段

Python013

java实体类如何加入虚拟字段,第1张

java实体类加入虚拟字段的步骤如下:

1、一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。

2、transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。变量如果是用户自定义类变量,则该类需要实现Serializable接口。

3、被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。

热门频道

首页

博客

研修院

VIP

APP

问答

下载

社区

推荐频道

活动

招聘

专题

打开CSDN APP

Copyright © 1999-2020, CSDN.NET, All Rights Reserved

java

打开APP

章鱼四剑客

关注

Java—String类—1 原创

2019-01-06 18:59:19

1点赞

章鱼四剑客

码龄5年

关注

Java—String类—1

实例化方法

直接赋值/构造法

字符串相等比较

两种方法:

”==“:进行的数值比较,比较的是两个字符串对象的内存地址数值

“equals”:可以进行字符串内容比较

字符串常量是String的匿名对象

在java中本身没有提供字符串常量的概念,所有使用“”定义的内容本质上来讲都是String的匿名对象。

验证

Tips:在用equals方法对指定字符串和用户输入字符串进行比较时,指定字符串方到前面,因为用户可能没有输入

发生NullPointerCase空指针异常

实例化区别

1.采用直接赋值

是这个样子呢?

以上这种情况说明,三块对象引用指向一块空间;

其实,java采用的是共享机制

在JVM底层实际上回自动维护一个对象池,如果现在采用直接赋值对对象进行实例化,那么该实例化对象(字符串内容)会自动保存到该对象池中。如果下次再继续使用直接赋值的模式声明String类对象,此时对象池中如果有指定内容,将直接进行引用;如若没有,则开辟新字符串对象而后将其保存在对象池中下次使用。

2.采用构造法

构造法:

1.会产生两块空间,其中一块,变成垃圾空间;

2.不会自动入池,但是可以手动入池intern()方法;

在这里插入图片描述

比较:

1.直接赋值,产生一块堆空间,并且字符串对象可以自动保存在对象池中以供瞎使用;

2.构造方法:会开辟两块堆空间,其中一块变成垃圾空间,不会自动保存到对象池中,可以用intern()自动赋值

字符串不可变更

在这里插入图片描述

首先我们可以看出,字符串的内容不能改变,最后输出的不是初始值,是因为改变的是对象的引用指向;并且,每进行一次加操作,就会产生两块垃圾空间,所以java中尽量不要使用“+”操作。但是其实java在进行+操作时,会自动将Strin