java一道选择题
A:一个顶层类可以被private修饰B:一个方法可以被transient修饰C:一个构造器可以被volatile修饰D:一个举办变量可以被final修饰transien...
A:一个顶层类可以被private修饰
B:一个方法可以被transient修饰
C:一个构造器可以被volatile修饰
D: 一个举办变量可以被final修饰
transient,volatile是什么意思啊?能否解释一下各个选项?谢谢 展开
B:一个方法可以被transient修饰
C:一个构造器可以被volatile修饰
D: 一个举办变量可以被final修饰
transient,volatile是什么意思啊?能否解释一下各个选项?谢谢 展开
展开全部
transient,是在解决序列化的时候使用的
你如果写了一个程序并需要序列化到本地或者数据库中(不只是你一个人需要用),并且因为测试的缘故,你认为加上了自己的一些信息,例如用户名,密码(例如数据库的身份),这样方便测试.但是,这些信息是肯定不应该被别人知道或者了解的,同时呢,又不想每次自己都去写都去改,这样,你可以用transient定义这样的变量存储它们
volatile实在解决线程冲突的时候使用的
Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分
。
第一个不对,顶层类不能被private修饰,因为这样没有意义。别人就不能访问了,这样的类根本就没有存在的价值
第二个也不对,transient只能修辞变量
第三个也不对,volatile也是一种修辞变量用的
第四个是不是局部变量?如果是的话应该是正确的,修饰后就是一个常量了。
你如果写了一个程序并需要序列化到本地或者数据库中(不只是你一个人需要用),并且因为测试的缘故,你认为加上了自己的一些信息,例如用户名,密码(例如数据库的身份),这样方便测试.但是,这些信息是肯定不应该被别人知道或者了解的,同时呢,又不想每次自己都去写都去改,这样,你可以用transient定义这样的变量存储它们
volatile实在解决线程冲突的时候使用的
Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分
。
第一个不对,顶层类不能被private修饰,因为这样没有意义。别人就不能访问了,这样的类根本就没有存在的价值
第二个也不对,transient只能修辞变量
第三个也不对,volatile也是一种修辞变量用的
第四个是不是局部变量?如果是的话应该是正确的,修饰后就是一个常量了。
展开全部
transient:
Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的
class A implements Serializable {
private String name;
transient private String address;
}
那么你在串行化(IO流等)A类时 给它的name和address属性赋值,那么你在提取A时,拿到了name属性,但是却拿不到address属性。
volatile:
一般的,如果多个线程协作存、取某个变量时,一般需要用到synchronized关键字进行同步操作,如:
public class MyTestThread extends MyTest implements Runnable {
private boolean _done = false;
public synchronized boolean getDone()
{
return _done;
}
public synchronized void setDone(boolean b)
{
_done = b;
}
public void run( ) {
boolean done;
done = getDone();
while (!done) {
repaint( );
try {
Thread.sleep(100);
} catch (InterruptedException ie) {
return;
}
}
}
}
Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的
class A implements Serializable {
private String name;
transient private String address;
}
那么你在串行化(IO流等)A类时 给它的name和address属性赋值,那么你在提取A时,拿到了name属性,但是却拿不到address属性。
volatile:
一般的,如果多个线程协作存、取某个变量时,一般需要用到synchronized关键字进行同步操作,如:
public class MyTestThread extends MyTest implements Runnable {
private boolean _done = false;
public synchronized boolean getDone()
{
return _done;
}
public synchronized void setDone(boolean b)
{
_done = b;
}
public void run( ) {
boolean done;
done = getDone();
while (!done) {
repaint( );
try {
Thread.sleep(100);
} catch (InterruptedException ie) {
return;
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
D: 一个举办变量可以被final修饰
是枚举吧!
是枚举吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
no
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询