首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

【更新】 对java中一些关键的,容易迷惑的知识点的归纳总结, 请朋友们指正,完善, 一同交流 ,小弟我会持续更新

2011-12-02 
【更新】 对java中一些关键的,容易迷惑的知识点的归纳总结, 请朋友们指正,完善, 一同交流 ,我会持续更新近段

【更新】 对java中一些关键的,容易迷惑的知识点的归纳总结, 请朋友们指正,完善, 一同交流 ,我会持续更新
近段强化了java中的一些知识点(会涉及很多),明朗许多,现总结如下,一方面供朋友们参考,另一方面里面不足,错误的,希望朋友们指正完善善:

一. Switch[u][/u]
  1.其能接受的数据类型有四个,char , byte, short, int
2.Default 可放在switch中的任何一个地方,但只有给定的条件匹配不到时,才会执行
3.Case,default语句如果执行完要跳出,必须用break, 没的话会向下继续执行(如果碰到case语句则直接进入执行)
实例1:
1.int i=1, j=0  
3.switch(i){ 
4. case 2: 
5. j+=6; 
7. case 4: 
8. j+=1; 
10. default: 
11. j +=2; 
13. case 0: 
14. j +=4; 
15.}  

What is the value of j at line 16? 
A.0 
B.1 
C.2 
D.4 
E.6 

实例2:
1. switch (i) { 
2. default: 
3. System.out.printIn(“Hello”); 
4. } 

What is the acceptable type for the variable i? 
A.byte 
B.long 
C.float 
D.double 
E.object 
F.A and B 
G.C and D  

二. String 和 StringBuffer[u][/u]
  String 定义的是字符串常量,其値一旦定义就不再改变,如下:
String s = “ABC”;
S = s.subString(2); //会重新生成一个字符串对象
以上两句执行后在内存中会产生“两”个字符串对象 一个”ABC”,另一个是s指向的”AB”(注意s已不再指向”ABC”)
StringBuffer 定义的是字符串变量,其値可以改变,如下:
StringBuffer s1 = new StringBuffer(“ABC”);
S1 = s1.subString(2);
以上两句执行后在内存中只产生“一个”字符串对象: s指向的”AB”;
实例1:
1.public class Foo { 
2. public static void main (String [] args){ 
3. StringBuffer a = new StringBuffer (“A”); 
4. StringBuffer b = new StringBuffer (“B”); 
5. operate (a,b); 
6. system.out.printIn{a + “,” +b}; 
7.}
8. static void operate (StringBuffer x, StringBuffer y) { 
9. x.append {y}; 
10. y = x; 
11. ) 
12.}
What is the output? 
Ans:

实例2:
1.Public class test{ 
2.Public static void stringReplace (String text){
3. Text = text.replace (‘j’ , ‘i’); 
4.} 
5. 
6.public static void bufferReplace (StringBuffer text) { 
7. text = text.append (“C”) 
8.} 
9. 
10.public static void main (String args[]) { 
11. String textString = new String (“java”); 
12. StringBuffer textBuffer = new StringBuffer (“java”); 
13. 
14. stringReplace (textString); 
15. BufferReplace (textBuffer); 
16. 
17. System.out.printIn (textString + textBuffer); 
18. } 
19. } 

What is the output? 
Ans:

三. String s = new String(“XYZ”); [u][/u]
  该语句会产生2个字符串对象:
一个是通过 ” ” 方式在 编译期 产生,存放在常量池中
一个是通过new方式在 运行期 产生,存放在堆内存中
但在运行时只会通过new方式产生一个对象

四. java中的参数只能“按値”传递,且传递的是値的 copy[u][/u]
  如是基本类型,则传递的是基本类型的副本
如是引用类型,则传递的是引用本身的副本
  参见2的实例

五. 方法重载和覆盖的条件[u][/u]
符合重载的条件: 1.在同一个类中
2.有多个同名的方法,
3.方法参数不同(参数的个数不同 或则 参数的类型不同)
实例:
1.public class MethodOver { 
2. public void setVar (int a, int b, float c) { 
3. } 
4.} 

Which two overload the setVar method? (Choose Two) 

A.private void setVar (int a, float c, int b) { } 
B.protected void setVar (int a, int b, float c) { } 
C.public int setVar (int a, float c, int b) (return a;) 
D.public int setVar (int a, int b, float c) (return a;) 
E.protected float setVar (int a, int b, float c) (return c;)


符合覆盖的条件: 1.在继承中
2.子类中的方法名和父类相同
3.子类中的方法参数和父类相同


4.子类中的方法返回类型和父类一样
5.子类的方法不能比父类抛出更多的异常
6.子类的方法访问范围大于或等于父类
  覆盖值得注意的是如果子类中有一个方法名称和父类一样,但参数不同,那不叫覆盖,所以也就不受覆盖的条件限制(注意该方法可以存在)
实例:
  1.class BaseClass { 
2. Private float x = 1.0f ; 
3. protected float getVar ( ) ( return x;) 
4.} 
5.class Subclass extends BaseClass ( 
6. private float x = 2.0f; 
7. //insert code here 
8.) 

Which two are valid examples of method overriding? (Choose Two) 
A.float getVar ( ) { return x;} 
B.public float getVar ( ) { return x;} 
C.float double getVar ( ) { return x;} 
D.protected float getVar ( ) { return x;} 
E.public float getVar (float f ) { return f;}



[解决办法]
基础要打牢固才是王道!

热点排行