黑马程序员_高薪技术笔记

来源:互联网 发布:手机淘宝怎么实名认证 编辑:程序博客网 时间:2024/06/05 05:43

javaEE+android培训



1.java中几个重要的名词的简写:
    javaEE简写:
    ide:itegrity(集成) development environment
2.可变参数:(jdk1.5的新特性)
    格式举例:add(int x,int y,int... args){
                int sum=0;
                for(int i=0;i<args.length;i++){
                sum+=i;
                }
                return sum;
                }
    特点:args只能出现在参数列表的最后
        "..."位于变量类型和变量名之间,前后有无空格都可以
        调用可变参数的方法是,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数
3.增强for循环
    语法:for(type 变量名:集合变量){...}
    注意:迭代变量必须在()中定义;
        集合变量可以是数组或者实现了Iterable接口的集合类
4.自动装箱与拆箱(jdk1.5的新特性)
    Integer i1=1;Integer i2=1;:这个过程表示了自动装箱的过程
    System.out.prrintln(i1+5):这个过程就体现了你自动拆箱的过程
    原因:为什么要出现这种情况呢?因为他们的单位太小了,没有必要new出来好多的对象,所以就直接采用这个对象的引用;
    这种设计模式叫做享元模式(flyewight)
    注意:当Integer i1=137;Integer i2=137;这样是i1和i2就不相等了,原因是:在-128~127范围的时候,是比较小的数字,所以才有了享元的模式
5.反射
    反射的基石:class
    字节码:就是所有的.class文件在内存中的一个标识。类型是class类型
        获取一个类的字节码的方式:一.内存中已经存在(即是:这个类被使用过在内存中存在),对象.getClass();例如:new Date().getClass()
                                二.内存中不存在,Class.forName("类名");Class.forName("java.lang.String")
                                三.类名.class;例如:System.class
    九个预定义Class实例对象
        参看Class.isPrimitive方法的帮助
        int.class=integer.TYPE:int类的字节码对象是和包装类对象的TYPE是一样的
    数组类型的Class实例对象
        Class.isArray()
    总之:只要是在源程序中出现的类型,都有各自的Class实例对象,例如int[],void...
    小心得:编译时:只看代码的定义,不看代码的执行;
    字节码的比较用“==”符号来比,不用equals()来比,因为假如是同一种类型都是同一分字节码
    反射的作用:实现框架的功能    
        实例:见那个代码
    泛型的反射应用:
        泛型是给编译器用的,仅仅是见差语法规则是否出现了错误,这样的话,我们就可以利用反射来穿过编译器,实际上去操作一些与泛型中声明不一致的数据;(这还有一个说法:)
6.类加载器
        BootStrap------>JRE/lib/rt.jar
        ExtClassLoader-->JRE/lib/ext/*.jar
        AppClassLoader-->CLASSPATH指定的所有jar或目录
    模板方法设计模式
        父类-->LoadClass
        子类1(自己干)
        子类2(自己干)





0 0
原创粉丝点击