java基础加强


1、JDK5.0新特性介绍

jdk5.0的代号为:tiger(老虎)

2、静态导入

作用:静态导入类的某个静态成员(包括静态属性和静态方法)。语法:import static java.lang.System.out;import static java.util.Arrays.*;import static java.lang.Math.*;应用:实际开发中一般不用,因为比较抽象。示例代码:import static java.lang.System.out;import static java.util.Arrays.*;import java.util.List;public class Demo1 {public static void main(String[] args) {// out.println("aa");// out.println("bbb");// out.print("ccccc");            String[] ss = {"cc", "bb", "aa"};            List<String> list = asList(ss); // 把数组转成集合  Arrays.asList(ss);            sort(ss); // 排序  Arrays.sort(ss);// 遍历数组for (int i = 0; i < ss.length; i++) {                out.println(ss[i]);            }           }    }   

3、自动装箱和拆箱

装箱:基本类型-->包装类型拆箱:包装类型-->基本类型    Object o = 10;          // 自动装箱+自动转换int i = (Integer) o;    // 强制转换+自动拆箱小面试题:       Integer i = null;       // 没有new,说明堆里是空的。int j = i;        答:语法无错误,但是不能运行,运行会报空指针异常。NullPointerExceptionJava的规范指出:特定的基本类型一定会被装箱成相同的包装类型。这些对象会被高速缓存以重复使用,并且会被当做一般对象使用。    这些特殊的值是boolean值的true和false、所有的byte值、介于-128至127的short、int、long值,以及介于\u0000与\u007F之间的任何一个char。    因此这些基本类型的包装类的对象,是同一个对象。 

4、增强for循环

增强for循环设计的目的:替换迭代器。增强for循环只能用在数组、或实现Iterator接口的集合类上。注意:增强for循环,只适合遍历集合数据。不适合修改或删除元素。如果要修改或删除使用普通for循环。语法:for (元素类型 元素名 :数组或实现了IteraTable接口的集合) {        System.out.println(元素名);    }

5、可变参数

注意:可变参数实际就是数组。如果需要其它参数,则要把可变参数写在最后。即:一个方法的参数列表中,只能有一个可变参数,且必须放在最后。在一个方法的参数列表中,不能使用多个可变参数。语法:参数(数据类型 ... 变量名)public int sum(int ... nums) { // 把可变参数当成数组int sum = 0;for (int i = 0; i < nums.length; i++) {            sum += nums[i];        }return sum;    }

6、枚举

enum关键字用于定义一个枚举类。应用场景:当给一个变量赋值时,值只能是特定或有一定范围时使用。特点:1. 枚举类也是一种特殊形式的Java类。2. 枚举类中声明的每一个枚举值代表枚举类的一个实例对象。3. 与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的(这点不难理解)。4. 枚举类也可以实现接口、或继承抽象类。5. JDK5中扩展了swith语句,它除了可以接收int, byte, char, short外,还可以接收一个枚举类型。6. 若枚举类只有一个枚举值,则可以当作单态设计模式使用。Java中声明的枚举类,均是java.lang.Enum类的孩子,它继承了Enum类的所有方法。常用方法:       name()      返回当前对象的名称    ordinal()   返回当前对象的索引    values()    返回枚举类中的所有对象,此方法虽然在JDK文档中查找不到,但每个枚举类都具有该方法,它遍历枚举类的所有枚举值非常方便。    valueOf(Class enumClass, String name) 把其它类型数据转换为枚举类型

7、反射

反射是框架设计的灵魂!!!反射就是把Java类中的各种成分映射成一个个的java对象(加载类时,解剖出类的各个组成部分)。例如,一个类有:成员变量,方法,构造方法,包等等信息,利用反射技术可以对一个类进行解剖,把各个组成部分映射成一个个对象。Class类用于表示.class文件。如何得到某个class文件对应的字节码文件对象:1. Class clazz = Class.forName(""); // 根据完整类名,得到类的字节码文件对象。2. 类名.class;3. 对象名.getClass();与构造函数相关的方法:    得到public类型的构造函数        Constructor getConstructor(Class ... parameterTypes) 根据可变参数类型,得到指定的公共的构造函数。        Constructor[] getConstructors() 得到所有的公共的构造函数。    示例代码:        clazz.getConstructor(); // 得到无参的公共的构造函数        clazz.newInstance();    // 创建此 Class 对象所表示的类的一个新实例。        clazz.getConstructor(String.class, int.class); // 得到含有两个参数的公共的构造函数        clazz.newInstance("tom", "18"); // 创建此 Class 对象所表示的类的一个新实例。        总之,只要是在源程序中出现的类型,都有各自的Class实例对象,例如,int,voi,...


8、内省

为什么要学内省?    开发框架时,经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操作过于麻烦,    所以SUN公司开发了一套API,专门用于操作java对象的属性。什么是JavaBean和属性的读写方法?    通过内省技术访问(java.beans包提供了内省的API)JavaBean的两种方式。1. 通过PropertyDescriptor类操作Bean的属性2. 通过Introspector类获得Bean对象的 BeanInfo,然后通过 BeanInfo 来获取属性的描述器( PropertyDescriptor ),       通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,然后通过反射机制来调用这些方法。Beanutils工具类:    导入jar文件:        commons-beanutils-1.8.3.jar        commons-logging-1.1.1.jarapache开源组织

9、泛型


我的GitHub地址:https://github.com/heizemingjun
我的博客园地址:http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址:http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】

java基础加强_补充笔记相关推荐

  1. JAVA基础与高级学习笔记

    JAVA基础与高级学习笔记 /记录java基础与高级,除了较简单的内容,没有必要记录的没有记录外,其余的都记录了/ java初学者看这一篇就够了,全文 6万+ 字. JAVA基础 java会出现内存溢 ...

  2. JAVA基础学习精简心得笔记整理

    JAVA基础学习精简心得笔记整理 配置java环境变量 Java的运行过程  基本数据类型 引用数据类型 逻辑运算符 数组 方法重载 封装 继承 多态 多态的作用 单例设计模式 接口interface ...

  3. JAVA历险记--java基础知识--随堂笔记

    JAVA基础知识随堂笔记 简介 学习视频 题1 题2 答疑 简介 由于本人从事Delphi(很古董的语言了)和c#开发,所以一些基础的知识还是比较了解的,需要熟悉的是IDE的简单操作,以及JAVA的相 ...

  4. Java基础语法_循环结构【多测师_何sir】

    Java基础语法_循环结构 for 循环 while 循环 do-while 循环 Java 增强 for 循环 break 关键字 continue 关键字 for 循环 语法结构: for(初始化 ...

  5. java基础知识点_零基础学习Java语言,各个阶段需要掌握的知识点

    随社会的脚步的不断发展,Java技术在不断的与时俱进,这也是Java一直长盛不衰的原因之一.Java技术的学习,永远没有早晚之分,技不压身,对于21世纪的我们80后,90后,甚至00后,尤其适用! 那 ...

  6. java基础小记_[Java教程]Java基础学习小记

    [Java教程]Java基础学习小记 0 2016-10-07 18:00:07 题外话:总结了多年的学习心得,不得不说,睡眠是一个学习者的必需品!所谓"早起毁一天"不是没有道理哪 ...

  7. Java基础(顺序结构)学习笔记

    Java基础 顺序结构 JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行 顺序结构是最简单的算法结构 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个一次执行的 ...

  8. 传智播客java基础教案_复习传智播客的java基础,实用

    今天复习了java基础,因为把以前的都忘了,而还有一个月就学完了,什么都忘了找工作麻烦,所以复习了下,总结了以下知识点. 1.算数运算符:在取模的运算中,模数的符号会被忽略,被模数的符号不会被忽略. ...

  9. java教学视频毕向东_集合3--毕向东java基础教程视频学习笔记

    Day 15 集合框架 01 TreeSet 02 TreeSet存储自定义对象 03 二叉树 04 实现Comparator方式排序 05 TreeSet练习 06 泛型概述 07 泛型使用 08 ...

最新文章

  1. 递归c语言字符串最小编辑距离,算法设计与分析-编辑距离问题
  2. mysql安装教程8.3,Summary_虚拟机安装centos8.3Linux系统_安装Mysql
  3. 好文|张一鸣:10年面试2000人,我发现混的好的人,全都有同一个特质
  4. C/C++课程设计 之学生管理系统(一)
  5. TypeError object of type ‘type‘ has no len()—Python报错问题:
  6. 是介于小型机和微型计算机,第一章计算机基础解析.ppt
  7. cte sql_为什么我的CTE这么慢?
  8. 如何测试并调试基于 NDK 的 Android 应用
  9. oracle大数据量迁移,分批量导入样例(fetch...bulk collect)以及forall结合使用
  10. linux安装 tomcat 6 笔记
  11. 爬虫:Python爬虫学习笔记之爬虫基础
  12. C语言基础课第三次作业
  13. 软件测试——测试用例的编写
  14. linux安装mysql菜鸟教程_Linux安装mysql教程
  15. 什么是一级域名、二级域名?
  16. css+html投票系统,网上在线投票系统的设计与实现.doc
  17. 上海宝付谈谈故宫瘫痪,程序员怎么办
  18. Incaseformat 蠕虫病毒威胁通告
  19. 【去哪儿旅行笔试题】德州扑克
  20. MacOS对文件夹加密的方法

热门文章

  1. 控制器对应view生命周期
  2. 原型对象prototype和原型属性[[Prototype]]
  3. c#初学12-12-为什么mian函数必须是static的
  4. .NET的资源并不限于.resx文件,你可以采用任意存储形式[上篇] (转载)
  5. c语言 结构体_C语言 技能提升 系列文章 (三)结构体
  6. jsp判断json第一位_java 判断字符串是否为json格式
  7. linux进程map,LInux环境运行mapReduce程序
  8. 拯救者linux无法正常关机,Ubuntu无法关机解决办法
  9. iconfont 图标转为字体_App 中使用 Iconfont 的整套方案
  10. e5cc温控仪通讯参数设定_产品介绍||DeltaWiFi通讯型多功能电表DPMC520W