黑马程序员技术交流社区

标题: JAVA 高新技术总结点滴 [打印本页]

作者: syusikoku    时间: 2014-3-7 21:02
标题: JAVA 高新技术总结点滴
enhance:加强提高
ecplise安装完成之后是需要安装插件的,而myecplise是ecplise的一个扩展版,myecplise中
其实是将eclise的常用插件都已经安装好的一个版本。       
------------------------------------------------------------------------------       
工作区的切换:
    myecplise-switching workspace
工作区和工程
   一个工作区中可以包含很多个工程
我们对一个工作区做的配置将影响到它下面的所有的工程。
------------------------------------------------------------------------------       
透视视图和View(视图的区别)
视图是指一些小的窗口。
透视视图是指一些小的窗口的集合。   
------------------------------------------------------------------------------       
MyEcplise的编译和运行环境的配置
   我们来配置工作区的编译和运行时环境:
      myecplise-window-perferences-compiler(编译时的版本)  1.5-5.0  1.6 6.0
          (myecplise 6.6中 compiler和jre都是1.5)
          (myecplise 8.6中 compiler和jre都是1.6)
           编译器高的版本编译出来的class文件不可以在版本低的运行环境上运行
           编译器低的版本编译出来的class文件可以在版本高的运行环境上运行
          
           我们可以为单个工程指定它的编译和运行环境
          
           其实总的来说,工程是继承工作区的配置,工程也可以覆盖工作区的配置,这像java中
面向设计的思想。
------------------------------------------------------------------------------       
在创建工程的之后需要创建包--包名一般使用公司的域名,反着写,然后写项目的名称,
cn.itcast.day01---类名--要起的有意义。不知道怎么写就用金山词霸翻译。       
------------------------------------------------------------------------------
为工作区配置快捷键:
   我们想让快捷键不止是对java,有效还让它对所有工程的html和其它的都可以使用。
   MyEcplise-window-perference-general-keys-compent assit  --如果要是有重复的就要把重复的给取消掉
------------------------------------------------------------------------------
工程的导入:
  import-existing projects into workspace-(导入已存在的工程目录即可)
------------------------------------------------------------------------------
如果导入的工程报错了:
  如果工程中有很多的jar包,而这些包没有添加到类库中时使用下面的方式进行排除:
     对导入的工程右键-properties-java build path-libraries
          一般出错也就是在这里
                  add jars==如果jar包是在当前的工程中,添加工程中的jar包
                  add external jars:添加外部的jar,这里的jar包和当前的工程目录不是在同一个位置中时使用.
                  add library添加类库.
               library是一组jar的集合,它里面包含了很多的jar文件,添加了library,它里面的所有的jar文件也就全部都添加了。                        
------------------------------------------------------------------------------
import 可以导入一个类,或者是某个包中所有的类
import static:静态的导入:
  导入类中的某个方法  import static java.lang.Math.max;
  导入类中所有的方法 import static java.lang.Math.*;
     这个是jdk 1.5之后的新特性
        当我们的编译环境是jdk 1.4版本之后,程序就会出错。
------------------------------------------------------------------------------
java代码模板的配置
   window-perferences-java-editor-code templates-  这里指定的是为所工程区指定的。
        我们也可给某一个工程指定模板:
   在指定代码模板的时候必须要指定的几个参数:
        name,description,pattern
------------------------------------------------------------------------------
函数的可变参数
  variable 可变
  parameter 参数
  
   需要注意的是:
         函数的可变参数一定要写在方法的参数的最后一个。
   
  //使用函数的可变参数
        private static int getVariableParaValue(int i,int... args) {
                int sum=i;
                /**
                   在可变参数的方法时,编译器会为可变参数隐含的创建一个数组
                  在方法体中使用数组的方式访问可变参数
                */
                for(int j=0;j<args.length;j++){
                        sum+=args[j];
                }
                return sum;
        }
------------------------------------------------------------------------------
for的高级使用
      
   private static int getVariableParaValue2(int i,int... args) {
                int sum=i;
                /**
                 * 我们这里来使用for的高级使用的方式来对数组进行遍历
                 *    格式如下:
                       for(修饰符 变量名:数组或集合){}
                       注意如果是集合的话要是实现iteraable的接口才行
                         因为iterable为一个接口,它的子类iterator是迭代器。
                         只有实现了该接口的集合才可以被迭代。对象才可以调用iterator()方法

                        只有实现了iterator的集合体才可以被迭代
                 */
                for(int arg:args){
                        sum+=arg;
                }
                return sum;
        }
------------------------------------------------------------------------------
overLoad和overRide的区别:
    overLoad是重载: 方法的参数个数,参数列表相同,只有返回值不同
    overRide:是重写,如果父类中的一个方法是私有的,子类中也有一个同样的方法,这就不是重写了。
子类中的方法,是代表着一个新的方法。
------------------------------------------------------------------------------
jdk 1.5之后的新特性自动装箱与拆箱
   装箱:基本数据类型----引用数据类型
      Integer i=123;
       这其实就是把基本数据类型的i给转换成了装箱成了引用数据类型。并且赋值给了引用数据类型的数据
          Int i=123;
          Integer i1=new Integer(i);
   拆箱:引用数据类型---基本数据类型
       Integer i=13;
       System.out.println(i+115);
        这个时候其实就是自动拆箱了
     下面有几道题:
        String a1=new String("abc");
        String a2=new String("abc");
        System.out.println("a1,a2是否是同一个对象:"+(a1==a2));
        因为a1,a2分别代表一个对象所以它们不是同一个对象
         Integer i1=17;
         Integer i2=17;
         这里再问它们是否代表的是同一个对象
          结果是true
         Integer i1=173;
         Integer i2=173;
         这个时候结果就是false了
          因为基本数据类型的值在装箱成引用数据类型的时候,如int:-128~127。当有一个int类型的值,需要装箱成Integer的时候,它会在装箱之后,把它给缓冲起来,保存起来。当有下一个int类型的值需要装箱的时候,它就会看缓冲池中是否有对象,如果有,就取出来复用。
         这样因为int的取值是在-128~127,所以它们都是同一个对象。这样就有了flyweight设计模式。即享元设计模式。

                Integer i1 = 13;
                Integer i2 = 13;
                System.out.println(i1 == i2);
                // 它们是同一个对象
                // true因为它们是同一个对象所以结果为真
               
                Integer is1=135;
                Integer is2=135;
                System.out.println(is1==is2);
                //它们是否是同一个对象
                //false
                //一个基本类型的int值在封装成引用类型的Integer的时候,因为int类型的取值范围是:
                //-128~127之间,所以它在自动装箱之后,会把它给缓存,保存起来。当下一次再有int
                //类型的数据需要封装的时候,会看缓存中是否有缓存的对象,如果有就取出来复用,这样
                //可以减少对象的创建个数。这是一种设计模式,即flyweight享元设计模式。
                //即当有很多小对象时,把相同的部分抽取出来做成一个新的对象,另外还有一些不同的部分,
                //把不同的部分做为方法的参数传递给对象,做为对象的外部状态。相同的部分做为对象的属性。
------------------------------------------------------------------------------
享元设计模式:
   当有很多小的对象它们有很多相同的部分,我们把它抽取成一个新的对象。
那些不同的部分,做为方法的参数传入,做为对象的外部状态。

  当有很多小对象时,把相同的部分抽取出来做成一个新的对象,另外还有一些不同的部分,
  把不同的部分做为方法的参数传递给对象,做为对象的外部状态。相同的部分做为对象的属性。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2