读书人

五道技术面试题目提供给大家希望对大

发布时间: 2012-01-11 22:28:46 作者: rapoo

五道技术面试题目提供给大家,希望对大家有用!
一:SQL工作在OSI参考模型的哪一层?
二:A是B的父类,有一个泛型工厂方法Fac<T>,那么Fac<A> 和 Fac<B>是否还有继承关系?
三:JDBC调用SQL,写出优化程序运行时间的设计模式或你的方法.
四:什么是方法签名?
五:归属类,方法名,参数类型,参数个数都相同,但是返回类型不同的两个方法在JVM中识别么?

[解决办法]
一.SQL和OSI参考模型有关系吗?
二.没有。
三.不懂
四.略。
五.jvm可以识别。
[解决办法]
一.不懂
二.没有。
三.不懂
四.返回类型和参数列表
五.没说参数顺序。
[解决办法]
一:SQL工作在OSI参考模型的哪一层?
我只能说我觉得是应用层
二:A是B的父类,有一个泛型工厂方法Fac <T>,那么Fac <A> 和 Fac <B>是否还有继承关系?
我觉得没有
三:JDBC调用SQL,写出优化程序运行时间的设计模式或你的方法.
比如单例?
四:什么是方法签名?
CSDN说 方法的签名指的是:方法的名称,参数类型,顺序,及其返回值
五:归属类,方法名,参数类型,参数个数都相同,但是返回类型不同的两个方法在JVM中识别么?
要是这么写两个方法会报错 应该算是不能识别吧..
[解决办法]
一:SQL工作在OSI参考模型的哪一层?
OSI是不是网络5层那个东西?不明白,关SQL什么事情
二:A是B的父类,有一个泛型工厂方法Fac <T>,那么Fac <A> 和 Fac <B>是否还有继承关系?
我觉得没有
三:JDBC调用SQL,写出优化程序运行时间的设计模式或你的方法.
调用池?
四:什么是方法签名?
方法的名称,参数类型,顺序,及其返回值
五:归属类,方法名,参数类型,参数个数都相同,但是返回类型不同的两个方法在JVM中识别么?
JVM没接触过,至少不是overwriting.
[解决办法]
一.不懂
二.没有。
三.连接池
四.方法名和参数列表。
五.可以识别。
[解决办法]
1:OSI跟sql有什么联系吗?一个是网络方面的概念,一个是数据库方面的概念,个人觉得好像没有什么联系。

2:没有任何关系

3:使用连接池

4:返回类型、方法名称和参数列表

5: 可以,两个不同的方法
[解决办法]
1.硬要说明的话,SQL是在OSI模型的应用层
2.没有
3.数据库连接进行池化,PreparedStatment进行池化,然后通过一个单例类取连接和PrepareStatment
[解决办法]
4.不用说了
5.说下原理,jvm是可以识别返回类型不同的同名方法的,但是原则并不允许这样,
为什么呢?
看如下两个方法

public int a()
public double a()

当我这样用的时候

float b = (float)a()
这时候,到底调用哪个方法呢?
呵呵,所以java是不允许返回类型不同的同名同参方法的
[解决办法]
高手如云啊。
[解决办法]

探讨
5.说下原理,jvm是可以识别返回类型不同的同名方法的,但是原则并不允许这样,
为什么呢?
看如下两个方法

public int a()
public double a()

当我这样用的时候

float b = (float)a()
这时候,到底调用哪个方法呢?
呵呵,所以java是不允许返回类型不同的同名同参方法的

[解决办法]
不太明白12楼的意思,呵呵,不过泛型是和编译期相关的吧,jvm里可是到了运行期了,所以在jvm中是不存在泛型的概念的吧
[解决办法]
探讨
不太明白12楼的意思,呵呵,不过泛型是和编译期相关的吧,jvm里可是到了运行期了,所以在jvm中是不存在泛型的概念的吧

[解决办法]
探讨
引用:
5.说下原理,jvm是可以识别返回类型不同的同名方法的,但是原则并不允许这样,
为什么呢?
看如下两个方法

public int a()
public double a()

当我这样用的时候

float b = (float)a()
这时候,到底调用哪个方法呢?
呵呵,所以java是不允许返回类型不同的同名同参方法的

建议看一下泛型相关的问题

[解决办法]
探讨
引用:
5.说下原理,jvm是可以识别返回类型不同的同名方法的,但是原则并不允许这样,
为什么呢?
看如下两个方法

public int a()
public double a()

当我这样用的时候

float b = (float)a()


这时候,到底调用哪个方法呢?
呵呵,所以java是不允许返回类型不同的同名同参方法的

建议看一下泛型相关的问题


[解决办法]
探讨
引用:
不太明白12楼的意思,呵呵,不过泛型是和编译期相关的吧,jvm里可是到了运行期了,所以在jvm中是不存在泛型的概念的吧

是的。
我说的是,比如这样的情况
Java codeimport java.util.List;publicclass Main {publicstatic Integer test(List<Integer> i){return1;
}publicstatic String test(List<String> s){return"";
}
}
编译,类型擦出,得到的就是两个签名相同但返回类型不同的方法。
Java code
Compiled from"Main.java"publicclass Mainextends java.lang.Object{public Main();
Code:0: aload_01: invokespecial #1;//Method java/lang/Object."<init>":()V4:returnpublicstatic java.lang.Integer test(java.util.List);
Code:0: iconst_11: invokestatic #2;//Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;4: areturnpublicstatic java.lang.String test(java.util.List);
Code:0: ldc #3;//String2: areturn

}
public static java.lang.Integer test(java.util.List);
public static java.lang.String test(java.util.List);


[解决办法]
Java code
public class TestGeneric {    public static Integer test(List<Integer> i){        return 1;    }    public static String test(List<String> s){        return "";    }            public static int test( int i )    {        return 1;    }        public static String test()    {        return "";    }        public static void main( String args[]  )    {        test(new ArrayList<Integer>());        test(new ArrayList<String>());    }}
[解决办法]
眼拙了,请楼上指教,哪里不是同参数了?
[解决办法]
呵呵。抱歉,忘了加段说明,泛型
Overloading: A class may not have two methods with the same name and the same argument types. Generics does not change this current rule and adds its own flavor to the definition of same argument types. Generics says that any two methods have the same argument types if both of them have the same number of type parameters with the same bounds.

Overriding: An overriding method has the same return type, method name, and number and types of parameters as the overridden method. Generics relaxes the rule just a little bit. It says that the return type of an overriding method may be a subtype of the result types of all the methods it overrides.
[解决办法]
所以应该是我疏忽了,遗漏了这个原理,真是抱歉,我举得例子并没举出泛型的特例,让各位见笑了
[解决办法]
一:SQL工作在OSI参考模型的哪一层?
会话层 。
理由:常见的会话层协议有sql、NFS、RPC等。
:A是B的父类,有一个泛型工厂方法Fac <T>,那么Fac <A> 和 Fac <B>是否还有继承关系?
我觉得没有.. 但是没想出理由... 也没想出有的理由..
三:JDBC调用SQL,写出优化程序运行时间的设计模式或你的方法.
连接池.
四:什么是方法签名?
方法签名 定义的是 方法名 参数列表
五:归属类,方法名,参数类型,参数个数都相同,但是返回类型不同的两个方法在JVM中识别么?
我不知道理解的对不不对
public String met1(String s1,int s){
return null ;
}
public int met1(int s1,String s){
return 0 ;
}
或者


public String met1(String s1,int s){
return null ;
}

public String met1(int s1,String s){
return null ;
}
是可以识别的



public String met1(String s1,int s){
return null ;
}
public int met1(String s1,int s){
return 0 ;
}
是不可以识别的.
. jvm 区分两个方法 同一个类中 应该是先靠方法名 , 同名情况下 区分参数..参数不同,方法不同,与返回值无关..

读书人网 >J2SE开发

热点推荐