java中transient的理解
1、java的serialization提供了一个非常棒的存储对象状态的机制,说白了serialization就是把对象的状态存储到硬盘上去,等需要的时候就可以再把它读出来使用。但是在存储对象状态时,我们有时候会需要特定的对象数据在serialization时不进行存储。这时候 transient关键字就派上用场了。要关掉类的特定的数据域,可以使用transient关键字进行定义,这对于底层的java虚拟机来说,这个transient类型的变量不是一个类的永久性的状态。
2、比如说在一个实体Bean中,transient和 static字段是非持久性字段,不能保存在数据库中。
另外,如果你的对象需要序列化到数据库、JDNI或通过Object流传递给其他对象的话,对象中的非持久性字段应该加transient关键字。
3、你如果写了一个程序并需要序列化到本地或者数据库中(不只是你一个人需要用),并且因为测试的缘故,你认为加上了自己的一些信息,例如用户名,密码(例如数据库的身份),这样方便测试.但是,这些信息是肯定不应该被别人知道或者了解的,同时呢,又不想每次自己都去写都去改,这样,你可以用 transient定义这样的变量存储它们.
4、下面是java规范中对transient关键字的解释:
The transient marker is not fully specified by the Java Language Specification but is used in object serialization to mark member variables that should not be serialized.
5、java有个特点就是序列化,简单地来说就是可以将这个类存储在物理空间(当然还是以文件的形式存在),那么当你从本地还原这个文件时,你可以将它转换为它本身。这可以极大地方便网络上的一些操作,但同时,因为涉及到安全问题,所以并不希望把类里面所有的东西都能存储(因为那样,别人可以通过序列化知道类里面的内容),那么我们就可以用上transient这个关键字,它的意思是临时的,即不会随类一起序列化到本地,所以当还原后,这个关键字定义的变量也就不再存在。
分享到:
相关推荐
### Java中的transient关键字详解 在Java编程语言中,`transient`关键字是一个非常重要的概念,主要用于对象序列...同时,理解`transient`与`volatile`之间的区别也是处理复杂Java应用中的多线程和序列化问题的关键。
在Java编程语言中,`transient`是一个非常重要的关键字,它与对象持久化和序列化密切相关。当一个字段被声明为`transient`时,它表明该字段的值不会随着对象的序列化而保存。这通常用于那些不希望或者不需要在序列化...
在Java编程语言中,`transient`...理解`transient`的工作原理及其在序列化过程中的作用,对于任何进行Java开发的程序员来说都是至关重要的技能。通过合理使用`transient`关键字,可以显著提高应用程序的安全性和效率。
理解并正确使用`transient`可以确保数据的隐私、安全,并允许我们在序列化过程中对特定字段有更精细的控制。在实际编程中,尤其是在处理网络传输或持久化数据时,`transient`是一个不可或缺的工具。
在Java编程语言中,`transient`关键字是一个非常重要的概念,它与对象的序列化过程紧密相关。序列化是将一个对象的状态转换为字节流,以便...理解并正确使用`transient`关键字对于编写高效、安全的Java程序至关重要。
深入理解Java虚拟机-Java内存区域透彻分析(序列化、反序列化概念及其使用场景+实现序列化的方式+transient关键字) Java序列化和反序列化是Java虚拟机中的一种重要机制,它们可以将Java对象转换为二进制数据,然后...
在Java编程语言中,`transient`关键字是一个非常重要的概念,它与对象的序列化密切相关。序列化是指将对象的状态转换为字节流,以便存储或在网络上传输。当一个类实现了`Serializable`接口,它的实例就可以被序列化...
Java 中的 transient 关键字是一个重要的概念,它被用来表示变量将不被序列化处理。那么在理解 transient 关键字之前,我们先了解下什么是序列化。 序列化是对象进行持久化处理,也就是说,将对象转化成一个字节流...
理解和掌握这些关键字对于编写有效的Java程序至关重要。本文将详细介绍Java中的一些核心关键字,并提供相应的解释和示例。 #### 关键字列表 根据给定的部分内容,我们可以列出以下Java关键字: 1. **abstract** 2...
### JAVA中的保留关键字 在Java编程语言中,关键字与保留关键字是极其重要的组成部分,它们定义了语言的基本结构和语法规则。...希望本文能够帮助您更好地理解Java中的关键字和保留关键字,并在日常开发中加以应用。
首先,我们需要理解Java中的对象和属性。在Java中,一个类可以定义为对象的蓝图,而对象则是类的实例,包含了类中定义的属性(也称为字段)和方法。属性是用来存储数据的变量,它们是对象的状态的一部分。例如,一个...
Java是一种广泛使用的面向对象的编程语言,其语法严谨,...以上就是Java中的关键字和保留字的一些基本解释,它们在编写Java程序时起着至关重要的作用,正确理解和使用这些关键字能够帮助开发者写出高效、安全的代码。
以上只是部分Java面试中常见的知识点,实际的“2021年Java大厂面试题整理大全”可能还包括设计模式、分布式、微服务、性能优化等方面的问题。通过深入学习和理解这些内容,可以有效提升面试成功的概率,为在Java大厂...
以及Java中的关键字,如transient、instanceof、volatile等的原理及用法。此外,还介绍了Java集合类的使用,枚举的用法和Java IO与NIO的使用和原理,Java反射机制,序列化和反序列化的原理和安全问题,以及注解的...
Java序列化是Java平台中的一种持久化机制,它允许对象的状态被转换成字节流,以便存储、网络传输或在不同时间点恢复...理解和熟练掌握序列化机制,以及知道如何避免其潜在问题,对于任何Java开发者来说都是至关重要的。
在Java编程中,序列化是将对象的状态转换为字节流的过程,以便可以在需要时恢复这些状态。这对于存储对象或在网络上传输对象非常有用。当我们谈论"Java中Tree的序列化"时,我们通常指的是如何将树形数据结构(如`...
理解这些关键字对于编写有效的Java程序至关重要。需要注意的是,虽然像`const`和`goto`这样的关键字在Java中并未使用,但在某些情况下仍被视为保留字。此外,诸如`true`、`false`和`null`虽然不是关键字,但在Java中...
`transient`关键字告诉Java编译器不要将该属性包含在序列化过程中。 - **使用`writeObject()`和`readObject()`方法**:重写`writeObject()`和`readObject()`方法来自定义序列化和反序列化行为。在`writeObject()`...
- ** transient 关键字**:在序列化过程中,如果希望某些字段不被序列化,可以使用`transient`关键字标记。 3. **Ch03 GUI编程** - **Java AWT(Abstract Window Toolkit)**:是Java早期的图形用户界面库,提供...