黑马程序员-----张孝祥J2SE加强自学笔记(2-16)(转载)

来源:互联网 发布:图片合成编辑软件 编辑:程序博客网 时间:2024/06/10 00:13

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------

J2SEJava面试Eclipse配置管理
2、IDE开发工具介绍(明白下面的单词缩写):
java ee
ide:IDE为(Integrated Devolop Environment)集成开发环境之意.
jndi:Java Naming and Directory Interface Java名称和目录接口
jms:即Java消息服务(Java Message Service)
jmx:JMX--Java Management Extensions,即Java管理扩展,是一个为应用程序、设备、系统等植入管理功能的框架。

3、工程管理与快捷键的配置:
包名与类名起名字要专业,这对于面试来说相当重要
到哪个公司面试,写程序起包名的时候可以以这个公司的名字为准
General---keys--content assist:配置快捷键

4、视图管理与程序调试:
学会用debug调试程序,视图与透视图的关系:一个小的窗口就是一个视图,而透视图就是很多小窗口的集合
不同的透视图下面下面有有不同的视图,也就有不同的功能。

5、Eclipse的编译与运行环境:
(1)高版本的java能运行低版本的javac,而低版本的java不能运行高版本的javac,注意Bad version number in.class file 这个错误
是说java程序的编译和运行的版本不一样。
(2)Eclipse工作台中的所有工程继承工作台的配置,其中某个工程也可以覆盖工作台的配置,可以理解为java面向对象的思想。

6、Eclipse配置Java模板:
配置java模板的方法:window--preferences--java--Editor--Templates-->new输入name 在pattern中加入你的模板代码-->Insert Variable
配置选择值"line_selection"和光标位置"cursor"的位置

7、在Eclipse中导入已有的工程:

8、静态导入与编译器语法设置:
import 可以导入一个类或者一个包下的所有的类,而import static 可以导入某个类中的一个静态方法或所有的静态方法。
我们调用静态方法都是 类名.方法的方式进行调用,有了import static 就可以不用写类名(jdk1.5或更高的版本),而直接写方法名了,只是介绍有
这个一个知识点,但是并不常用因为没有多大的意义。

9、可变参数:(经典面试题:OverLoad与Override的区别)
问题:一个方法接收参数的个数不固定,例如:
System.out.println(add(2,5));
System.out.println(add(2,5,7));
可变参数的特点:
(1)只能出现在参数列表的最后
(2)...位于变量类型和变量名之间,前后有无空格都可以
(3)调用可变参数的方法是,编译器为该可变参数隐含创建一个数组,在方法体中以数组的方式访问可变参数
代码举例:
Java代码  收藏代码
  1. public static void main(String[] args) {  
  2.         System.out.println(add(23));  
  3.         System.out.println(add(235));  
  4.     }  
  5.       
  6.     public static int add(int x, int ... args) {  
  7.         int sum = x;  
  8.         for(int i=0; i<args.length; i++) {  
  9.             sum += args[i];  
  10.         }  
  11.         return sum;  
  12.     }  

10、java5的增强的for循环:
语法:for(VariableModifies(可选) type 变量名: 集合变量名) {....}
注意事项:(1)迭代变量必须在()中实现!
(2)集合变量可以是数组或者实现了Iterable接口的集合类
代码举例:
Java代码  收藏代码
  1. public static int add(int x, int ... args) {  
  2.         int sum = x;  
  3.         /** 
  4.          *可以增加修饰符 
  5.          *for(final int arg : args) 
  6.          */  
  7.         for(int arg : args) {  
  8.             sum += arg;  
  9.         }  
  10.         return sum;  
  11.     }  

11、基本数据类型的自动拆装箱及享元模式:
自动装箱:Integer num1 = 12;
自动拆箱:System.out.println(num1 + 12);
基本数据类型的对象缓存:
Java代码  收藏代码
  1. Integer num1 = 12;  
  2. Integer num2 = 12;  
  3. System.out.println(num1 == num2); true  
  4.   
  5. Integer num3 = 129;  
  6. Integer num4 = 129;  
  7. System.out.println(num3 == num4); false  
  8.   
  9. Integer num5 = Integer.valueOf(12);  
  10. Integer num6 = Integer.valueOf(12);  
  11. System.out.println(num5 == num6); true  
  12.   
  13. Integer num7 = Integer.valueOf(129);  
  14. Integer num8 = Integer.valueOf(129);  
  15. System.out.println(num7 == num8); false  

享元模式:有很多个小的对象,他们有很多相同的属性,把他们相同的属性抽取出来组成一个对象,把不同的属性
变成方法的参数,成为“外部状态”;

12、枚举的作用的介绍:

13、普通类模拟枚举的实现原理:
Java代码  收藏代码
  1. public abstract class WeekDay {  
  2.       
  3.     private WeekDay() {}  
  4.       
  5.     public abstract WeekDay nextDay();  
  6.       
  7.     //因为WeekDay是抽象的,所以不能直接new后面加一对大括号表示用它的子类来new对象  
  8.     //这是一个匿名类,然后实现了父类的抽象方法  
  9.     public static final WeekDay SUN = new WeekDay(){  
  10.   
  11.         @Override  
  12.         public WeekDay nextDay() {  
  13.           
  14.             return MOD;  
  15.         }  
  16.     };  
  17. }  

14、枚举的基本应用:
15、实现带有构造方法的枚举:
Java代码  收藏代码
  1. public class EumTest {  
  2.   
  3.     public static void main(String[] args) {  
  4.             WK wk = WK.FRI;  
  5.     }  
  6.       
  7.     public enum WK {  
  8.         SUN(), MON(2), TUE, FRI;  
  9.         private WK() {System.out.println("first");}  
  10.           
  11.         private WK(int i) {System.out.println("second");}  
  12.     }  
  13. }  
注意:(1)枚举的构造方法必须定义在所有定义的常量的后面
      (2)构造方法必须是private的
      (3)要访问有参数的构造方法,只要在定义的常量后面加小括号传入构造方法指定的参数类型即可
      (4)如果要在定义完常量后定义方法,则定义的最后一个常量必须要加上分号

16、实现带有抽象方法的枚举:
Java代码  收藏代码
  1. public enum TrafficLamp {  
  2.         RED(30){  
  3.             public TrafficLamp nextLamp() {  
  4.                 return GREEN;  
  5.             }  
  6.         }  
  7.         ,   
  8.         GREEN(45){  
  9.             public TrafficLamp nextLamp() {  
  10.                 return YELLOW;  
  11.             }  
  12.         }  
  13.         ,   
  14.         YELLOW(27){  
  15.             public TrafficLamp nextLamp() {  
  16.                 return RED;  
  17.             }  
  18.         };  
  19.         private int time;  
  20.         private TrafficLamp(int time) {  
  21.             this.time = time;  
  22.         }  
  23.         public abstract TrafficLamp nextLamp();  
  24.     } 
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
原创粉丝点击