旺福志
搜索引擎,算法,Java

 原文来自http://www.allapplabs.com/interview_questions/java_interview_questions.htm

翻译:Zeng Yuetian

转载请注明出处

 

Q031:

What is the difference between declaring a variable and defining a variable?
声明一个变量和定义一个变量有什么区别?

A:

In declaration we just mention the type of the variable and it's name. We do not initialize it. But defining means declaration + initialization.
e.g String s; is just a declaration while String s = new String ("abcd"); Or String s = "abcd"; are both definitions.
声明中,我们只会提到变量的类型和它的变量名。我们不会初始化它。但是定义变量意味着声明+初始化。
例如:String s; 是声明, String s = new String(“abcd”);或者String s = “abcd”都是定义。

 

Q032:

What is the default value of an object reference declared as an instance variable?
引用类型的默认值什么?

A:

null unless we define it explicitly.
如果不显式声明的话,其默认值是null

 

Q033:

Can a top level class be private or protected?
顶层的类可以是private或者是protected么?

A:

No. A top level class can not be private or protected. It can have either "public" or no modifier. If it does not have a modifier it is supposed to have a default access.If a top level class is declared as private the compiler will complain that the "modifier private is not allowed here". This means that a top level class can not be private. Same is the case with protected.

不可以。一个顶层的类不能是private或者protected。它只能是public或者没有修饰符。如果它没有修饰符,那么它将获得默认访问权限。如果顶层的类被声明为private,编译器或抱怨"modifier private is not allowed here"。这意味着顶层的类不能是private的,同样道理,它也不能是protected.

 

Q034:

What type of parameter passing does Java support?
Java
支持什么样的参数传递方式?

A:

In Java the arguments are always passed by value .
Java
中参数传递都是值传递。

 

Q035:

Primitive data types are passed by reference or pass by value?
基本数据类型是值传递还是引用传递?

A:

Primitive data types are passed by value.
基本类型数据是值传递。

 

Q036:

Objects are passed by value or by reference?
对象是值传递还是引用传递?

A:

Java only supports pass by value. With objects, the object reference itself is passed by value and so both the original reference and parameter copy both refer to the same object .
Java
只支持值传递。对于对象来说,对象引用本身是通过值的方式传递的。所以原来的引用和复制后的参数都指向同一个对象。

 

Q037:

What is serialization?
什么是序列化?

A:

Serialization is a mechanism by which you can save the state of an object by converting it to a byte stream.
序列化是一种机制,你可以通过它将对象转换成字节流从而保存对象的状态。

 

Q038:

How do I serialize an object to a file?
我如何将一个对象序列化到文件?

A:

The class whose instances are to be serialized should implement an interface Serializable. Then you pass the instance to the ObjectOutputStream which is connected to a fileoutputstream. This will save the object to a file.
要序列化的对象的类必须实现Serialzable接口。然后你将实例传给连接到fileoutputstreamObjectOutputStream,这将保存该对象到文件中。

 

Q039:

Which methods of Serializable interface should I implement?
我需要实现Serializable接口中的什么方法?

A:

The serializable interface is an empty interface, it does not contain any methods. So we do not implement any methods.
Serializable
接口是个空的借口,它不包含任何方法。所以你不需要实现任何方法。

 

Q040:

How can I customize the seralization process? i.e. how can one have a control over the serialization process?
我如何能定制序列化的过程,例如,如何控制序列化的过程?

A:

Yes it is possible to have control over serialization process. The class should implement Externalizable interface. This interface contains two methods namely readExternal and writeExternal. You should implement these methods and write the logic for customizing the serialization process.
是的,你可以控制序列化的过程,该类需要实现Externalizable接口,该接口包含两个方法readExternalwriteExternal。你需要通过实现这些方法来定制序列化过程。

posted on 2010-02-04 21:10  yuetiantian  阅读(248)  评论(0编辑  收藏  举报