百度
360搜索
搜狗搜索

transient变量和下面哪一项有关,什么是局部变量和成员变量?希望能举例,在编程里指明详细介绍

本文目录一览: java中的变量有哪几种

成员变量:就是声明为类的属性的变量。
静态变量(也叫做类变量):就是声明为静态属性的变量。
局部变量:就是方法里面声明的变量。
volatile变量:和多线程相关,用于简化同步的变量
transient变量:用于使该变量不会被持久化
final变量:基本上就是常量
变量看你怎么理解了.根据数据类型类分 可以有byte,char,short,int,long,float,double,boolean等几种数据类型变量
根据其所处的范围可以有,全局变量和局部变量,成员变量等等,相对常量来说,其他都是是变量了
整型变量:byte, short, int, long
实型变量:float, double
字符变量 char
布尔型变量 boolean
成员变量:就是声明为类的属性的变量。
静态变量(也叫做类变量):就是声明为静态属性的变量。
局部变量:就是方法里面声明的变量。
volatile变量:和多线程相关,用于简化同步的变量
transient变量:用于使该变量不会被持久化
final变量:基本上就是常量
还有
8中 基本变量
整型变量:byte, short, int, long
实型变量:float, double
字符变量 char
布尔型变量 boolean

transient的简单介绍

1、转瞬即逝的英文2、transients是什么意思3、transient 怎么读4、暂时的 用英文怎么说5、transient和transitory的区别6、transient关键字是什么?转瞬即逝的英文Fleeting 同义词:written in water; transience; evanescent例句:His promises are written in water; he never keeps his word. 他的诺言是转瞬即逝的;他说话从来不算话。His promises are written in water; 他的诺言是转瞬即逝的;Most teenage romances are transitory. 绝大多数十几岁少年的恋情都转瞬即逝。以下英语单词包含“转瞬即逝的”的意思fleetn. 舰队,船队,车队,港湾,小河adj. 快速的,敏捷的,转瞬即逝的vi. 疾驰,飞逝vt. 使(时间)飞逝,消磨transientadj. 短暂的,转瞬即逝的,临时的n. 临时旅客,瞬变现象,候鸟transitoryadj. 不持续的,短暂的,转瞬即逝的,朝露transients是什么意思transients直接翻译意思为瞬态还以译为: 暂住某地的人,过往旅客,临时工( transient的名词复数 )
transient 怎么读transient[英] [_tr_nzi_nt][美] [_tr_nzi_nt]adj.短暂的; 转瞬即逝的; 临时的;n.临时旅客; 瞬变现象; 候鸟;[例句]In most cases, pain is transient.大多数情况下,疼痛是短暂的。
暂时的 用英文怎么说暂时的英文:TemporaryTemporary 读法 英 [_t_mp(_)r_ri] 美 [_temp_reri]1、adj. 暂时的,临时的2、n. 临时工,临时雇员短语:1、temporary file 暂时文件;暂存文件2、temporary housing 临时住房,应急住宅;临时住宿3、temporary suspension 暂停4、temporary road 临时道路5、temporary worker 临时工扩展资料一、Temporary的词义辨析:transient, temporary, momentary这组词都有“短暂的,瞬息的”的意思,其区别是:1、transient 指停留或延续的时间很短。2、temporary 普通用词,其反义是permanent。指持续有限的可计时间,着重暂时的存在、应用或效应。3、momentary 指瞬时即逝的,也表明间很短的。二、Temporary的近义词:transienttransient 读法 英 ['tr_nz__nt] 美 [_tr_nsi_nt; _tr_n__nt; _tr_n__nt]1、adj. 短暂的;路过的2、n. 瞬变现象;过往旅客;候鸟短语:1、transient current 瞬变电流2、transient population 流动人口;暂住人口3、transient fault 瞬时故障;瞬时失效;过渡故障4、transient condition 瞬时条件;瞬变工况5、transient phenomena 瞬变现象;过渡现象
transient和transitory的区别transitory只为形容词。形容短暂transient的一瞬transient的transient,另有无常的意思。transient可为形容词和名词形容词多形容在短时间内的。名词为暂住客。例句transient:1Their turmoil may be transient.transient他们的混乱也许是短暂的。2Many of the drags on first-quarter output are transitory.第一季度生产的很多减缓是暂时的。
transient关键字是什么?transient关键字是变量修饰符。如果用transient声明一个实例变量,当对象存储时它的值不需要维持,换句话来说就是,用transient关键字标记的成员变量不参与序列化过程,transient关键字只能修饰变量,而不能修饰方法和类。transient关键字的特点:transient是Java语言的关键字,用来表示一个成员变量不是该对象序列化的一部分,当一个对象被序列化的时候,transient型变量的值不包括在序列化的结果中,而非transient型的变量是被包括进去的,注意static修饰的静态变量天然就是不可序列化的。一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法被访问,本地变量是不能被transient关键字修饰的,变量如果是用户自定义类变量,则该类需要实现Serializable接口。

什么是局部变量和成员变量?希望能举例,在编程里指明

局部变量只能在某个方法里使用
成员变量能在所有类中使用
局部变量指在程序中,只在特定过程或函数中可以访问的变量,是相对与全局变量而言的。在面向过程和面向对象编程语言中均有,是程序中最常见最常用的变量。
成员变量:在类体的变量部分中定义的变量,也称为属性。几乎只出现在面向对象编程语言中。
案例1:
void main()
{
int test = 0; //局部变量
printf("%d", test);
}
案例2:
public class Clothes
{
String id; //实例变量
private String colorType; //实例变量
private int size; //实例变量
private static String depart; //类变量
final String design="yangzi"; //常量
}
代码中的实例变量、类变量、常量都属于成员变量,那么其区分的依据是什么?这与变量的修饰符有关系,也就是上面代码中的private、static、final等修饰符。成员变量的修饰符见表5-1。
  表5-1 成员变量的修饰符
  
修饰符 说明
public 成员变量可以被项目中的任何方法访问,建议尽量少用
protected 不在同一个包中的类不能访问,但子类可以访问
private 只能在同一个类中使用
static 类变量,其值为该类的所有对象共享,不会因类的对象不同而不同
final 最终成员变量,其值保持不变,即常量
transient 当对象被持久化时(例如写入数据库),该成员变量的值不需要保存
volatile 同步多线程访问的成员变量的值,以便使不同的线程总是得到 该成员变量的同一个值。关于线程

Java面试中都会遇到哪些问题

JAVA面试精选题各位准程序猿们,能不能找到一份好工作,就看你知不知道这,66道最基本的JAVA面试题,请耐心看完,说不定这10分钟,会影响你一辈子
面试题NO.01-NO.05
问题:如果main方法被声明为private会怎样?
答案:能正常编译,但运行的时候会提示”main方法不是public的”。
问题:Java里的传引用和传值的区别是什么?
答案:传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝。
问题:如果要重写一个对象的equals方法,还要考虑什么?
答案:hashCode。
问题:Java的”一次编写,处处运行”是如何实现的?
答案:Java程序会被编译成字节码组成的class文件,这些字节码可以运行在任何平台,因此Java是平台独立的。
问题:说明一下public static void main(String args[])这段声明里每个关键字的作用
答案:public: main方法是Java程序运行时调用的第一个方法,因此它必须对Java环境可见。所以可见性设置为pulic.
static: Java平台调用这个方法时不会创建这个类的一个实例,因此这个方法必须声明为static。
void: main方法没有返回值。
String是命令行传进参数的类型,args是指命令行传进的字符串数组。
面试题NO.06-NO.10
问题:==与equals的区别
答案:==比较两个对象在内存里是不是同一个对象,就是说在内存里的存储位置一致。两个String对象存储的值是一样的,但有可能在内存里存储在不同的地方 .
==比较的是引用而equals方法比较的是内容。public boolean equals(Object obj) 这个方法是由Object对象提供的,可以由子类进行重写。默认的实现只有当对象和自身进行比较时才会返回true,这个时候和==是等价的。String, BitSet, Date, 和File都对equals方法进行了重写,对两个String对象 而言,值相等意味着它们包含同样的字符序列。对于基本类型的包装类来说,值相等意味着对应的基本类型的值一样。
问题:如果去掉了main方法的static修饰符会怎样?
答案:程序能正常编译。运行时会抛NoSuchMethodError异常。
问题:为什么oracle type4驱动被称作瘦驱动?
答案:oracle提供了一个type 4 JDBC驱动,被称为瘦驱动。这个驱动包含了一个oracle自己完全用Java实现的一个TCP/IP的Net8的实现,因此它是平台独立的,可以在运行时由浏览器下载,不依赖任何客户端 的oracle实现。客户端连接字符串用的是TCP/IP的地址端口,而不是数据库名的tnsname。
问题:介绍一下finalize方法
答案: final: 常量声明。 finally: 处理异常。 finalize: 帮助进行垃圾回收。
接口里声明的变量默认是final的。final类无法继承,也就是没有子类。这么做是出于基础类型的安全考虑,比如String和Integer。这样也使得编译器进行一些优化,更容易保证线程的安全性。final方法无法重写。final变量的值不能改变。finalize()方法在一个对象被销毁和回收前会被调用。finally,通常用于异常处理,不管有没有异常被抛出都会执行到。比如,关闭连接通常放到finally块中完成。
问题:什么是Java API?
答案:Java API是大量软件组件的集合,它们提供了大量有用的功能,比如GUI组件。
面试题NO.11-NO.15
问题:GregorianCalendar类是什么东西?
答案:GregorianCalendar提供了西方传统日历的支持。
问题:ResourceBundle类是什么?
答案:ResourceBundle用来存储指定语言环境的资源,应用程序可以根据运行时的语言环境来加载这些资源,从而提供不同语言的展示。
问题:为什么Java里没有全局变量?
答案:全局变量是全局可见的,Java不支持全局可见的变量,因为:全局变量破坏了引用透明性原则。全局变量导致了命名空间的冲突。
问题:如何将String类型转化成Number类型?
答案:Integer类的valueOf方法可以将String转成Number。下面是代码示例:
问题:SimpleTimeZone类是什么?
答案:SimpleTimeZone提供公历日期支持。
面试题NO.16-NO.20
问题:while循环和do循环有什么不同?
答案:while结构在循环的开始判断下一个迭代是否应该继续。do/while结构在循环的结尾来判断是否将继续下一轮迭代。do结构至少会执行一次循环体。
问题:Locale类是什么?
答案:Locale类用来根据语言环境来动态调整程序的输出。
问题:面向对象编程的原则是什么?
答案:主要有三点,多态,继承和封装。
问题:介绍下继承的原则
答案:继承使得一个对象可以获取另一个对象的属性。使用继承可以让已经测试完备的功能得以复用,并且可以一次修改,所有继承的地方都同时生效。
问题:什么是隐式的类型转化?
答案:隐式的类型转化就是简单的一个类型赋值给另一个类型,没有显式的告诉编译器发生了转化。并不是所有的类型都支持隐式的类型转化。
代码示例:
面试题NO.21-NO.25
问题:sizeof是Java的关键字吗?
答案:不是。
问题:native方法是什么?
答案:native方法是非Java代码实现的方法。
问题:在System.out.println()里面,System, out, println分别是什么?
答案:System是系统提供的预定义的final类,out是一个PrintStream对象,println是out对象里面一个重载的方法。
问题:封装,继承和多态是什么?
答案:简单来说,多态是指一个名字多种实现。多态使得一个实体通过一个通用的方式来实现不同的操作。具体的操作是由实际的实现来决定的。
多态在Java里有三种表现方式:方法重载通过继承实现方法重写通过Java接口进行方法重写。
问题:显式的类型转化是什么?
答案:显式的类型转化是明确告诉了编译器来进行对象的转化。
代码示例:
面试题NO.26-NO.30
问题:什么是Java虚拟机?
答案:Java虚拟机是能移植到不同硬件平台上的软件系统。
问题:类型向下转换是什么?
答案:向下转换是指由一个通用类型转换成一个具体的类型,在继承结构上向下进行。
问题:Java的访问修饰符是什么?
答案:访问权限修饰符是表明类成员的访问权限类型的关键字。使用这些关键字来限定程序的方法或者变量的访问权限。它们包含:
public: 所有类都可以访问 protected: 同一个包内以及所有子类都可以访问 private: 只有归属的类才能访问默认: 归属类及相同包下的子类可以访问。
问题:所有类的父类是什么?
答案:Object.
问题:Java的基本类型有哪些?
答案:byte,char, short, int, long, float, double, boolean。
面试题NO.31-NO.40
问题:静态类型有什么特点?
答案:静态变量是和类绑定到一起的,而不是类的实例对象。每一个实例对象都共享同样一份静态变量。也就是说,一个类的静态变量只有一份,不管它有多少个对象。类变量或者说静态变量是通过static这个关键字来声明的。类变量通常被用作常量。静态变量通常通过类名字来进行访问。当程序运行的时候这个变量就会创建直到程序结束后才会被销毁。类变量的作用域和实例变量是一样的。它的初始值和成员变量也是一样的,当变量没被初始化的时候根据它的数据类型,会有一个默认值。类似的,静态方法是属于类的方法,而不是类对象,它的调用并不作用于类对象,也不需要创建任何的类实例。静态方法本身就是final的,因为重写只会发生在类实例上,静态方法是和类绑定在一起的,不是对象。父类的静态方法会被子类的静态方法屏蔽,只要原来方法没有声明为final。非静态方法不能重写静态方法,也就是说,你不能在子类中把一个静态方法改成实例方法。
非静态变量在每一个对象实例上都有单独的一份值。
问题:&操作符和&&操作符有什么区别?
答案:当一个&表达式在求值的时候,两个操作数都会被求值,&&更像是一个操作符的快捷方式。当一个&&表达式求值的时候,先计算第一个操作数,如果它返回true才会计算第二个操作数。如果第一个操作数取值为fale,第二个操作数就不会被求值。
问题:Java是如何处理整型的溢出和下溢的?
答案:Java根据类型的大小,将计算结果中的对应低阶字节存储到对应的值里面。
问题:public static void写成static public void会怎样?
答案:程序正常编译及运行。
问题,声明变量和定义变量有什么不同?
答案:声明变量我们只提供变量的类型和名字,并没有进行初始化。定义包括声明和初始化两个阶段String s;只是变量声明,String s = new String(“bob”); 或者String s = “bob”;是变量定义。
面试题NO.41-NO.45
问题:Java支持哪种参数传递类型?
答案:Java参数都是进行传值。对于对象而言,传递的值是对象的引用,也就是说原始引用和参数引用的那个拷贝,都是指向同一个对象。
问题:对象封装的原则是什么?
答案:封装是将数据及操作数据的代码绑定到一个独立的单元。这样保障了数据的安全,防止外部代码的错误使用。对象允许程序和数据进行封装,以减少潜在的干涉。对封装的另一个理解是作为数据及代码的保护层,防止保护层外代码的随意访问。
问题:你怎么理解变量?
答案:变量是一块命名的内存区域,以便程序进行访问。变量用来存储数据,随着程序的执行,存储的数据也可能跟着改变。
问题:数值提升是什么?
答案:数值提升是指数据从一个较小的数据类型转换成为一个更大的数据类型,以便进行整型或者浮点型运算。在数值提升的过程中,byte,char,short值会被转化成int类型。需要的时候int类型也可能被提升成long。long和float则有可能会被转换成double类型。
问题:Java的类型转化是什么?
答案:从一个数据类型转换成另一个数据类型叫做类型转换。Java有两种类型转换的方式,一个是显式的类型转换,一个是隐式的。
面试题NO.46-NO.50
问题:main方法的参数里面,字符串数组的第一个参数是什么?
答案:数组是空的,没有任何元素。不像C或者C++,第一个元素默认是程序名。如果命令行没有提供任何参数的话,main方法中的String数组为空,但不是null。
问题:怎么判断数组是null还是为空?
答案:输出array.length的值,如果是0,说明数组为空。如果是null的话,会抛出空指针异常。
问题:程序中可以允许多个类同时拥有都有main方法吗?
答案:可以。当程序运行的时候,我们会指定运行的类名。JVM只会在你指定的类中查找main方法。因此多个类拥有main方法并不存在命名冲突的问题。
问题:静态变量在什么时候加载?编译期还是运行期?静态代码块加载的时机呢?
答案:当类加载器将类加载到JVM中的时候就会创建静态变量,这跟对象是否创建无关。静态变量加载的时候就会分配内存空间。静态代码块的代码只会在类第一次初始化的时候执行一次。一个类可以有多个静态代码块,它并不是类的成员,也没有返回值,并且不能直接调用。静态代码块不能包含this或者super,它们通常被用初始化静态变量。
问题:一个类能拥有多个main方法吗?
答案:可以,但只能有一个main方法拥有以下签名:
否则程序将无法通过编译。编译器会警告你main方法已经存在。
面试题NO.51-NO.60
问题:简单的介绍下JVM是如何工作的?
答案:JVM是一台抽象的计算机,就像真实的计算机那样,它们会先将.java文件编译成.class文件(.class文件就是字节码文件),然后用它的解释器来加载字节码。
问题:如果原地交换两个变量的值?
答案:先把两个值相加赋值给第一个变量,然后用得到的结果减去第二个变量,赋值给第二个变量。再用第一个变量减去第二个变量,同时赋值给第一个变量。代码如下:
使用异或操作也可以交换。第一个方法还可能会引起溢出。异或的方法如下: int a=5,b=10;a=a+b; b=a-b; a=a-b;
问题:什么是数据的封装?
答案:数据封装的一种方式是在类中创建set和get方法来访问对象的数据变量。一般来说变量是private的,而get和set方法是public的。封装还可以用来在存储数据时进行数据验证,或者对数据进行计算,或者用作自省(比如在struts中使用javabean)。把数据和功能封装到一个独立的结构中称为数据封装。封装其实就是把数据和关联的操作方法封装到一个独立的单元中,这样使用关联的这些方法才能对数据进行访问操作。封装提供的是数据安全性,它其实就是一种隐藏数据的方式。
问题:什么是反射API?它是如何实现的?
答案:反射是指在运行时能查看一个类的状态及特征,并能进行动态管理的功能。这些功能是通过一些内建类的反射API提供的,比如Class,Method,Field, Constructors等。使用的例子:使用Java反射API的getName方法可以获取到类名。
问题:JVM自身会维护缓存吗,是不是在堆中进行对象分配,操作系统的堆还是JVM自己管理的堆?为什么?
答案:是的,JVM自身会管理缓存,它在堆中创建对象,然后在栈中引用这些对象。
面试题NO.61-NO.66
问题:虚拟内存是什么?
答案:虚拟内存又叫延伸内存,实际上并不存在真实的物理内存。
问题:方法可以同时即是static又是synchronized的吗?
答案:可以。如果这样做的话,JVM会获取和这个对象关联的java.lang.Class实例上的锁。这样做等于:
问题:String和StringTokenizer的区别是什么?
答案:StringTokenizer是一个用来分割字符串的工具类。
问题:transient变量有什么特点?
答案:transient变量不会进行序列化。例如一个实现Serializable接口的类在序列化到ObjectStream的时候,transient类型的变量不会被写入流中,同时,反序列化回来的时候,对应变量的值为null。
问题:哪些容器使用Border布局作为它们的默认布局?
答案:Window, Frame, Dialog。
问题:怎么理解什么是同步?
答案:同步用来控制共享资源在多个线程间的访问,以保证同一时间内只有一个线程能访问到这个资源。在非同步保护的多线程程序里面,一个线程正在修改一个共享变量的时候,可能有另一个线程也在使用或者更新它的值。同步避免了脏数据的产生。
以上回答转载自求职类公众号圈里求职,里面还有更多求职面试经,程序猿也要学起来~

阅读更多 >>>  java数据类型有哪些,java基本数据类型

JAVA关键字具体的作用和用法

分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:

本人是JAVA自学者,刚开始学习JAVA,对JAVA的关键字的作用和用法都不是很清楚,所以学习进度一直很慢,希望有高手可以帮助一下,谢谢了阿。只要常用的关键字就可以了啊!
解析:

Abstract 抽象的
一个Java语言中的关键字,用在类的声明中来指明一个类是不能被实例化的,但是可以被其它类继承。一个抽象类可以使用抽象方法,抽象方法不需要实现,但是需要在子类中被实现
break

一个Java的关键字,用来改变程序执行流程,立刻从当前语句的下一句开始执行从。如果后面跟有一个标签,则从标签对应的地方开始执行
case
Java语言的关键字,用来定义一组分支选择,如果某个值和switch中给出的值一样,就会从该分支开始执行。
catch
Java的一个关键字,用来声明当try语句块中发生运行时错误或非运行时异常时运行的一个块。
char
Java语言的一个关键字,用来定义一个字符类型
continue
一个Java的关键字,用来打断当前循环过程,从当前循环的最后重新开始执行,如果后面跟有一个标签,则从标签对应的地方开始执行。
do
一个Java语言的关键字,用来声明一个循环,这个循环的结束条件可以通过while关键字设置
double
一个Java语言的关键字,用来定义一个double类型的变量
else
一个Java语言的关键字,如果if语句的条件不满足就会执行该语句。
final
一个Java语言的关键字。你只能定义一个实体一次,以后不能改变它或继承它。更严格的讲:一个final修饰的类不能被子类化,一个final修饰的方法不能被重写,一个final修饰的变量不能改变其初始值。
finally
一个Java语言的关键字,用来执行一段代码不管在前面定义的try语句中是否有异常或运行时错误发生。
float
一个Java语言的关键字,用来定义一个浮点数变量
for
一个Java语言的关键字,用来声明一个循环。程序员可以指定要循环的语句,推出条件和初始化变量。
if
Java编程语言的一个关键字,用来生成一个条件测试,如果条件为真,就执行if下的语句。
implements
Java(TM)编程语言的一个关键字,在类的声明中是可选的,用来指明当前类实现的接口。
import
Java(TM)编程语言的一个关键字,在源文件的开始部分指明后面将要引用的一个类或整个包,这样就不必在使用的时候加上包的名字。
instanceof
一个二操作数的Java(TM)语言关键字,用来测试第一个参数的运行时类型是否和第二个参数兼容。
int
Java(TM)的一个关键字,用来定义一个整形变量
Java(TM)的一个关键字,用来定义一系列的方法和常量。它可以被类实现,通过implements关键字。
long
Java语言的一个关键字,用来定义一个long类型的变量。
private
Java语言的一个关键字,用在方法或变量的声中。它表示这个方法或变量只能被这个类的其它元素所访问。
protected
Java语言的一个关键字,在方法和变量的声明中使用,它表示这个方法或变量只能被同一个类中的,子类中的或者同一个包中的类中的元素所访问。
public
Java语言的一个关键字,在方法和变量的声明中使用,它表示这个方法或变量能够被其它类中的元素访问。
return
Java语言的一个关键字,用来结束一个方法的执行。它后面可以跟一个方法声明中要求的值。
short
Java语言的关键字,用来定义一个short类型的变量。
static
Java语言的关键字,用来定义一个变量为类变量。类只维护一个类变量的拷贝,不管该类当前有多少个实例。"static" 同样能够用来定义一个方法为类方法。类方法通过类名调用而不是特定的实例,并且只能操作类变量。
this
Java语言的关键字,用来代表它出现的类的一个实例。this可以用来访问类变量和类方法。
throw
Java语言的关键字,允许用户抛出一个exception对象或者任何实现throwable的对象
throws
Java语言的关键字,用在方法的声明中来说明哪些异常这个方法是不处理的,而是提交到程序的更高一层。
transient
Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。
try
Java语言的关键字,用来定义一个可能抛出异常语句块。如果一个异常被抛出,一个可选的catch语句块会处理try语句块中抛出的异常。同时,一个finally语句块会被执行,无论一个异常是否被抛出。
void
Java语言的关键字,用在Java语言的方法声明中说明这个方法没有任何返回值。"void"也可以用来表示一句没有任何功能的语句。
volatile
Java语言的关键字,用在变量的声明中表示这个变量是被同时运行的几个线程异步修改的。
while
Java语言的一个关键字,用来定义一段反复执行的循环语句。循环的退出条件是while语句的一部分。
关于break和continue。
continue语句与break语句相关,但较少用到。continue语句用于使其所在的for、while或do-while语句开始下一次循环。在while与do-while语句中,continue语句的执行意味着立即执行测试部分;在for循环语句中,continue语句的执行则意味着使控制传递到增量部分。

java 方法中含有 transient 是什么意思?

查了好久,没有发现 transient修饰方法时什么意思。
干脆自己在Eclipse试试:
public class Test{
public static transient List returnMapList(List list, String fields[])
throws Exception{
return null;
}
}
很有意思,直接提醒错误:
Illegal modifier for the method returnMapList; only public, protected, private, static, final, abstract, synchronized & native are permitted。
说只有public, protected, private, static, final, abstract, synchronized & native 这些关键字可以修饰这个方法。
看来咱们都别费那个劲了,貌似钻进死胡同了。看楼主的描述,也不是正规途径写出的代码,不定什么原因造成的呢。就此给分结贴吧,呵呵。
“transient”——“瞬态”,先不说这个翻译是否恰当,这个变量关键字一直不曾使用,简单的说就是被瞬态定义的变量不可序列号。或者这么给他换个名字——“不可序列化状态”。
打个比方,如果一个用户有一些敏感信息(譬如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列化操作,本地序列化缓存也适用)中被传输。这些信息对应的变量就可以被定义为transient类型。换句话说,这个字段的生命周期仅存于调用者的内存中。
如定义类:
public class People implements Serializable {
private static final long serialVersionUID = 8294138003005L;
/**
* 用户名
*/
private String username;
/**
* 密码
*/
private transient String password;
}
密码字段为transient,这时候如果对该对象进行序列化,这个密码字段是不会被保存的。
以下例子展示了这个行为:
public static void main(String[] args) throws Exception {
People p = new People();
p.setUsername("snowolf");
p.setPassword("123456");

System.err.println("------操作前------");
System.err.println("username: " + p.getUsername());
System.err.println("password: " + p.getPassword());

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(
"people.txt"));
oos.writeObject(p);
oos.flush();
oos.close();

ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
"people.txt"));
p = (People) ois.readObject();

ois.close();

System.err.println("------操作后------");
System.err.println("username: " + p.getUsername());
System.err.println("password: " + p.getPassword());
}
执行结果是:
------操作前------
username: snowolf
password: 123456
------操作后------
username: snowolf
password: null

transient在java中的作用

你好,这个关键字的意思主要是用于在序列化中会不序列化(也就是所谓的忽视)你用这个关键字修饰的属性。这个应用在以前直接用关键字声明变量的情况,可以运用在返回json数据的情况,返回需要的指定的json数据。希望能帮到你。
  java有个特点就是序列化,简单地来说就是可以将这个类存储在物理空间(当然还是以文件的形式存在),那么当你从本地还原这个文件时,你可以将它转换为它本身。这可以极大地方便网络上的一些操作,但同时,因为涉及到安全问题,所以并不希望把类里面所有的东西都能存储(因为那样,别人可以通过序列化知道类里面的内容),那么我们就可以用上transient这个关键字,它的意思是临时的,即不会随类一起序列化到本地,所以当还原后,这个关键字定义的变量也就不再存在。
  通常,我们写的程序都要求特定信息能持久存在或保存到磁盘上,以供一个程序使用或用在同一个程序的另一次运行上.这种持久性可以通过几种方式来实现,包括写到数据库中或是利用JAVA为对象序列化提供的支持.不管我们选用什么方法,类实例的持久性都是通过保存类的域的状态来完成的,保存这些状态,以便以后可以对它们进行访问或使用它们来创建相同的实例.然而,有可能并不是所有的域都需要被保存起来.当一个实例被持久化时,其内部的一些域却不需要持久化,则可以用trainsient修饰符告诉编译器指定的域不需要被持久保存.
  首先,让我们看一些Java serialization的代码:
public class LoggingInfo implements java.io.Serializable { private Date loggingDate = new Date(); private String uid; private transient String pwd; LoggingInfo(String user, String password){ uid = user; pwd = password; } public String toString(){ String password=null; if(pwd == null){ password = "NOT SET"; }else{ password = pwd; } return "logon info: \n " + "user: " + uid + "\n logging date : " + loggingDate.toString() + "\n password: " + password; } }现在我们创建一个这个类的实例,并且串行化(serialize)它 ,然后将这个串行化对象写入磁盘。
LoggingInfo logInfo = new LoggingInfo("MIKE", "MECHANICS"); System.out.println(logInfo.toString()); try{ ObjectOutputStream o = new ObjectOutputStream( new FileOutputStream("logInfo.out")); o.writeObject(logInfo); o.close(); }catch(Exception e) {//deal with exception} To read the object back, we can write try { ObjectInputStream in =new ObjectInputStream( new FileInputStream("logInfo.out")); LoggingInfo logInfo = (LoggingInfo)in.readObject(); System.out.println(logInfo.toString()); } catch(Exception e) {//deal with exception}  如果我们运行这段代码,我们会注意到从磁盘中读回(read——back (de-serializing))的对象打印password为"NOT SET"。这是当我们定义pwd域为transient时,所期望的正确结果。 现在,让我们来看一下粗心对待transient域可能引起的潜在问题。假设我们修改了类定义,提供给transient域一个默认值, 代码如下:
public class GuestLoggingInfo implements java.io.Serializable { private Date loggingDate = new Date(); private String uid; private transient String pwd; GuestLoggingInfo(){ uid = "guest"; pwd = "guest"; } public String toString() { //same as above } }  现在,如果我们穿行化GuestLoggingInfo的一个实例,将它写入磁盘,并且再将它从磁盘中读出,我们仍然看到读回的对象打印password 为 "NOT SET"。 当从磁盘中读出某个类的实例时,实际上并不会执行这个类的构造函数, 而是载入了一个该类对象的持久化状态,并将这个状态赋值给该类的另一个对象。

阅读更多 >>>  js全局变量和局部变量的区别,认清js中var a=b=1和var a=1,b=1的区别

java 中的修饰符transient是什么意识他的原理是什么?

transient
Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的
class A implements Serializable {
private String name;
transient private String address;
}
那么你在串行化(IO流等)A类时 给它的name和address属性赋值,那么你在提取A时,拿到了name属性,但是却拿不到address属性。
http://www.javaeye.com/topic/52957
去看看这个帖子吧,说得很全面了。

有没有较完整的Java中的关键字及其含义

java关键字
概述
  关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。   Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名。   一个Java语言中的关键字,用在类的声明中来指明一个类是不能被实例化的,但是可以被其它类继承。一个抽象类可以使用抽象方法,抽象方法不需要实现,但是需要在子类中被实现。
break
  一个Java的关键字,用来改变程序执行流程,立刻从当前语句的下一句开始执行。如果后面跟有一个标签,则从标签对应的地方开始执行。用来中断程序的执行,一般用在循环语句中,用来跳出本层循环,转去执行下面的程序。
case
  Java语言的关键字,用来定义一组分支选择,如果某个值和switch中给出的值一样,就会从该分支开始执行。
catch
  Java的一个关键字,用来声明当try语句块中发生运行时错误或非运行时异常时运行的一个块。
char
  Java语言的一个关键字,用来定义一个字符类型。
int
  Java语言的一个关键字,用来定义一个整型类型数据或变量。
for
  Java语言的一个关键字,是循环结构中经常使用的一个关键字,其形式为:   for(表达式1;表达式2;表达式3)   {   }   其中表达式1用于给相应的变量赋值,表达式2是条件判断语句,表达式3循环控制语句。
if
  Java语言的一个关键字,是用来判断条件用的。   abstract boolean break byte case
catch char class continue default
do double else enum extends
final finally float for if
implements import instanceof int interface
long native new package private
protected public return strictfp short
static super switch synchronized this
throw throws transient try void
volatile while

编辑本段详细介绍
类和接口
  abstract标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。   class类,   格式为:   class类名 extends 父类名称{   属性声明及初始化;方法声明及方法体;   }   implements实现   import导入   interface接口。   格式为:   interface 接口名 [extends 父接口列表]{   [public][static][final]属性类型属性名=常量值;   [public][abstract]返回值类型方法名(参数列表);   }   package打包,声明仅仅指定了文件中所定义的类属于哪一个包。   static静态属性,用来描述一个类下所有对象共享的属性。   throws扔,一个方法中发生异常但没有捕获,在方法头声明,由方法调用者处理。//throw后不允许有其他的语句。   void空
数据类型
  boolean 值只能是true和false,而不能用0和1代替,并且一定要小写。   byte字节型   char字符型   double双精度浮点型   float单精度浮点型   int整型   long长整型   short短整型
流程控制
  break中断switch语句的执行,在循环语句中,同样也是结束循环语句的执行。   continue 只跳出本次循环,还要继续执行下一次的循环。break完全跳出所在或者是所标记的循环。   do 和while连用,   格式为:   do{   循环体;   }while(循环条件);//不要忘记分号;   for   格式为:   for(表达式1;表达式2;表达式3){   循环体;}   final如果不希望某个类被其他的类继承,在这种情况下需要使用修饰符final来说明一个类是终极的,不能够做父类。   if   格式为:   if(条件表达式)   {功能代码块1}   else   {功能代码块}//条件表达式返回值为真,则执行功能块,否则执行else功能块。   return   switch   格式为:   switch(表达式){   case 值1:   功能代码1;   [break;]   case 值2:   功能代码2;   [break;];   ……   case 值n:   功能代码n;   [break;]   default:功能代码others;}   while   格式为:   while(循环条件)   {循环体;}
访问范围
  private 私有地,Private 语句 在模块级别中使用,用于声明私有变量及分配存储空间。   默认访问控制(package ),如果在成员变量和方法前不加任何访问权限修饰符,则称为默认访问控制,也称为包访问控制。这意味着同一包内的其他所有类都能访问该成员,但对包外的所有类就不能访问。   protected 表明被它修饰的成员变量为保护类型,在同一个包里和 public 类型是一样的,也是能够访问到的。但是如果在不同包里的 protected 类型的成员变量就只能通过子类来访问,这个修饰符是区别于其他的修饰符的。   public 公共的,他表示某个变量或者函数是全局函数,例如:public int a 表示a这个整型变量是全局变量。
类的实例
  new 该子句创建一个新的对象实例。New 子句必须指定一个可以用来创建实例的已定义类。可以在声明语句或赋值语句中使用 New。执行该语句时,它将调用指定类的构造函数,传递提供的所有参数。    this引用属性,当方法中的参数和某个属性有相同的名字时,这是局部变量优先,属性被隐藏。然而,有时为了能够在方法中以用隐藏的属性,就可以用this区分,由this引用的就是属性,没有this引用的则是局部变量或者是参数。   super被继承的类称为超类,继承的类称为子类。
其它
  1、catch捕获错误的语句。   2、finally为了完成执行的代码而设计的,主要是为了程序的健壮性和完整性,无论有没有异常发生都执行代码。   3、native是方法修饰符。Native方法是由另外一种语言(如c/c++,FORTRAN,汇编)实现的本地方法。因为在外部实现了方法,所以在java代码中,就不需要声明了,有点类似于接口方法。Native可以和其他一些修饰符连用,但是abstract方法和Interface方法不能用native来修饰。   4、strictfp 修饰类和方法,意思是FP-strict,精确浮点,符合IEEE-754规范的。当一个class或interface用strictfp声明,内部所有的float和double表达式都会成为strictfp的。Interface method不能被声明为strictfp的,class的可以。   5、try 当try子句中的某行代码发生异常,会终止程序的运行,跳转到catch子句来执行。   6、transient 变量修饰符。标记为transient的变量,在对象存储时,这些变量状态不会被持久化。当对象序列化的保存在存储器上时,不希望有些字段数据被保存,为了保证安全性,可以把这些字段声明为transient。   7、volatile volatile修饰变量。在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。   8、goto java中关键字表中虽然没有goto关键字但是在声明变量时是不可以使用该单词的因为goto 是 Java 中一个没有使用的关键字,如果想叫做保留字也可以。   一般结构化程序,都不需要使用 Goto 语句的,在有分支和循环以及递归调用之后,goto 完全可以不使用了。为了程序代码更简捷,对于循环结构,还有 break 和 continue 用于跳转。而且,break 和 continue 都可以带标签,更增加了它们的灵活性。

网站数据信息

"transient变量和下面哪一项有关,什么是局部变量和成员变量?希望能举例,在编程里指明"浏览人数已经达到22次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:transient变量和下面哪一项有关,什么是局部变量和成员变量?希望能举例,在编程里指明的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!