黑马程序员技术交流社区

标题: jdk1.5新特性中是否包含内省? [打印本页]

作者: jackwang    时间: 2015-5-11 12:08
标题: jdk1.5新特性中是否包含内省?
jdk1.5新特性中是否包含内省?网上有的说是,有的说不是,张孝祥老师的视频中貌似也没有说是不是,看JDK帮助文档,文档上java.beans这个包是从1.2就开始了。java.beans.introspector类是从什么时候开始的呢?不知道

作者: yogkin    时间: 2015-5-11 12:08
其实想测试是那个版本的新特性,用eclipse在不同版本上编译一下就知道了,还需要查什么资料呢?
作者: ytooo00    时间: 2015-5-11 22:27
不属于jdk1.5新特性
作者: Troy-Fu    时间: 2015-5-11 23:30
不知道1.5,但是1.6里面有这个类了
作者: kolen.j    时间: 2015-5-12 00:05
是的,jdk1.5新特征中就包含了内省,introspector这单词就是内省的意思,给你个我以前收藏的一个关于 jdk各版本新特征的博客文章,网址链接:http://www.cnblogs.com/langtianya/p/3757993.html    希望能解决你的疑问,一起学习进步,加油。
作者: qiang0901    时间: 2015-5-12 10:12
JDK1.5新特性:

1.自动装箱与拆箱:
自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。
自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法。
自动装箱,只需将该值赋给一个类型包装器引用,java会自动创建一个对象。
自动拆箱,只需将该对象值赋给一个基本类型即可。
java——类的包装器
类型包装器有:Double,Float,Long,Integer,Short,Character和Boolean

2.枚举
把集合里的对象元素一个一个提取出来。枚举类型使代码更具可读性,理解清晰,易于维护。枚举类型是强类型的,从而保证了系统安全性。而以类的静态字段实现的类似替代模型,不具有枚举的简单性和类型安全性。
简单的用法:JavaEnum简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值。
复杂用法:Java为枚举类型提供了一些内置的方法,同事枚举常量还可以有自己的方法。可以很方便的遍历枚举对象。

3.静态导入
通过使用 import static,就可以不用指定 Constants 类名而直接使用静态成员,包括静态方法。
import xxxx 和 import static xxxx的区别是前者一般导入的是类文件如import java.util.Scanner;后者一般是导入静态的方法,import static java.lang.System.out。

4.可变参数(Varargs)

可变参数的简单语法格式为:
methodName([argumentList], dataType...argumentName);

5.内省(Introspector)

是 Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性name,那我们可以通过getName,setName来得到其值或者设置新 的值。通过getName/setName来访问name属性,这就是默认的规则。Java中提供了一套API用来访问某个属性的getter /setter方法,通过这些API可以使你不需要了解这个规则(但你最好还是要搞清楚),这些API存放于包java.beans中。
一 般的做法是通过类Introspector来获取某个对象的BeanInfo信息,然后通过BeanInfo来获取属性的描述器 (PropertyDescriptor),通过这个属性描述器就可以获取某个属性对应的getter/setter方法,然后我们就可以通过反射机制来 调用这些方法。

6.泛型(Generic)

C++ 通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能。一个集合可以放任何类型的对象,相应地从集合里面拿对象的时候我们也 不得不对他们进行强制得类型转换。猛虎引入了泛型,它允许指定集合里元素的类型,这样你可以得到强类型在编译时刻进行类型检查的好处。

7.For-Each循环

For-Each循环得加入简化了集合的遍历。假设我们要遍历一个集合对其中的元素进行一些处理。
作者: cjmjava    时间: 2015-5-12 10:53
应该不属于1.5新特性,我在毕向东笔记里找了,没找到
作者: 古典牧童    时间: 2015-5-12 10:57
先说答案: 包含!  给你一个jdk新特性的记录,以后你就不会犯晕了:
JDK 1.5 新特性—— 1.自动装箱与拆箱  2.枚举(常用来设计单例模式)  3.静态导入  4.可变参数  5.内省
JDK 1.6 新特性—— 1.Web服务元数据 2.脚本语言支持 3.JTable的排序和过滤 4.更简单,更强大的JAX-WS 5.轻量级Http Server 6.嵌入式数据库 Derby
JDK 1.7 新特性—— 1,switch中可以使用字串了  2.运用List<String> tempList = new ArrayList<>(); 即泛型实例化类型自动推断 3.语法上支持集合,而不一定是数组 4.新增一些取环境信息的工具方法 5.Boolean类型反转,空指针安全,参与位运算 6.两个char间的equals  7.安全的加减乘除  8.map集合支持并发请求,且可以写成 Map map = {name:"xxx",age:18};
JDK 1.8 新特性—— 1. 允许在接口中有默认方法实现  2. Lambda表达式  3. 函数式接口 4. 方法和构造函数引用  5. Lambda的范围 6. 内置函数式接口 7. Streams 8. Parallel Streams  9. Map  10. 时间日期API  11.Annotations
IDK 1.9 新特性—— 1. Jigsaw 项目;模块化源码 2. 简化进程API  3. 轻量级 JSON API  4. 钱和货币的API  5. 改善锁争用机制 6. 代码分段缓存 7. 智能Java编译, 第二阶段 8. HTTP 2.0客户端 9. Kulla计划: Java的REPL实现

~~~~具体用法我就不贴了,自己去百度吧~~~~

作者: binglin    时间: 2015-5-12 13:01
先说答案: 包含!  给你一个jdk新特性的记录,以后你就不会犯晕了:
JDK 1.5 新特性—— 1.自动装箱与拆箱  2.枚举(常用来设计单例模式)  3.静态导入  4.可变参数  5.内省
JDK 1.6 新特性—— 1.Web服务元数据 2.脚本语言支持 3.JTable的排序和过滤 4.更简单,更强大的JAX-WS 5.轻量级Http Server 6.嵌入式数据库 Derby
JDK 1.7 新特性—— 1,switch中可以使用字串了  2.运用List<String> tempList = new ArrayList<>(); 即泛型实例化类型自动推断 3.语法上支持集合,而不一定是数组 4.新增一些取环境信息的工具方法 5.Boolean类型反转,空指针安全,参与位运算 6.两个char间的equals  7.安全的加减乘除  8.map集合支持并发请求,且可以写成 Map map = {name:"xxx",age:18};
JDK 1.8 新特性—— 1. 允许在接口中有默认方法实现  2. Lambda表达式  3. 函数式接口 4. 方法和构造函数引用  5. Lambda的范围 6. 内置函数式接口 7. Streams 8. Parallel Streams  9. Map  10. 时间日期API  11.Annotations
IDK 1.9 新特性—— 1. Jigsaw 项目;模块化源码 2. 简化进程API  3. 轻量级 JSON API  4. 钱和货币的API  5. 改善锁争用机制 6. 代码分段缓存 7. 智能Java编译, 第二阶段 8. HTTP 2.0客户端 9. Kulla计划: Java的REPL实现
作者: roblonely    时间: 2015-5-12 14:00
那么老的版本,纠结这个干嘛,早就有的特性了
作者: Chelsea_Lampard    时间: 2015-5-12 20:34
包含。内省是 Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性name,那我们可以通过getName,setName来得到其值或者设置新 的值。通过getName/setName来访问name属性,这就是默认的规则。Java中提供了一套API用来访问某个属性的getter /setter方法,通过这些API可以使你不需要了解这个规则(但你最好还是要搞清楚),这些API存放于包java.beans中。
一 般的做法是通过类Introspector来获取某个对象的BeanInfo信息,然后通过BeanInfo来获取属性的描述器 (PropertyDescriptor),通过这个属性描述器就可以获取某个属性对应的getter/setter方法,然后我们就可以通过反射机制来 调用这些方法。
作者: major2015    时间: 2015-5-12 21:21
是的,在高新技术里面就有    http://www.cnblogs.com/langtianya/p/3757993.html
作者: 直护这夜    时间: 2015-5-12 22:16
是的,1.5 包含内省
作者: xicheng26    时间: 2015-5-13 00:17
JDK6增加了对脚本语言的支持(JSR 223),原理上是将脚本语言编译成bytecode,这样脚本语言也能享用Java平台的诸多优势,包括可移植性,安全等,另外,由于现在是编译成 bytecode后再执行,所以比原来边解释边执行效率要高很多。加入对脚本语言的支持后,对Java语言也提供了以下好处。 1、许多脚本语言都有动态特性,比如,你不需要用一个变量之前先声明它,你可以用一个变量存放完全不同类型的对象,你不需要做强制类型转换,因为转换都是自动的。现在Java语言也可以通过对脚本语言的支持间接获得这种灵活性。 2、 可以用脚本语言快速开发产品原型,因为现在可以Edit-Run,而无需Edit-Compile-Run,当然,因为Java有非常好的IDE支持,我 们完全可以在IDE里面编辑源文件,然后点击运行(隐含编译),以此达到快速开发原型的目的,所以这点好处基本上可以忽略。 3、通过引入脚本语言可以轻松实现Java应用程序的扩展和自定义,我们可以把原来分布在在Java应用程序中的配置逻辑,数学表达式和业务规则提取出来,转用JavaScript来处理。  Sun的JDK6实现包含了一个基于Mozilla Rhino的 脚本语言引擎,支持JavaScript,这并不是说明JDK6只支持JavaScript,任何第三方都可以自己实现一个JSR-223兼容的脚本引擎 使得JDK6支持别的脚本语言,比如,你想让JDK6支持Ruby,那你可以自己按照JSR 223的规范实现一个Ruby的脚本引擎类,具体一点,你需要实现javax.script.ScriptEngine(简单起见,可以继承 javax.script.AbstractScriptEngine)和javax.script.ScriptEngineFactory两个接口。 当然,在你实现自己的脚本语言引擎之前,先到scripting.dev.java.net project 这里看看是不是有人已经帮你做了工作,这样你就可以直接拿来用就行。
作者: 齐弦    时间: 2015-5-14 14:06
包含,你可以上官网上看一下
作者: hzhzhen    时间: 2015-5-14 15:41
对。。属于JDK1.5新特性,现在都的版本早就更新了   不需要太纠结啦
作者: jackwang    时间: 2015-5-14 21:29
古典牧童 发表于 2015-5-12 10:57
先说答案: 包含!  给你一个jdk新特性的记录,以后你就不会犯晕了:
JDK 1.5 新特性—— 1.自动装箱与拆箱 ...

哥们,JDK1.5中有注解,泛型,你的列表都没有包含啊,这个表的准确度。。。。。。
作者: zouzouzou    时间: 2015-5-15 20:39
jdk1.5新特性没有
作者: jackwang    时间: 2015-5-16 15:56
yogkin 发表于 2015-5-14 22:40
其实想测试是那个版本的新特性,用eclipse在不同版本上编译一下就知道了,还需要查什么资料呢? ...

恩,这个思路挺不错,可以试一试
作者: yogkin    时间: 2015-5-16 23:16
jackwang 发表于 2015-5-16 15:56
恩,这个思路挺不错,可以试一试

那你把分给我呗,我现在缺分{:2_40:}
作者: 728503435    时间: 2015-5-16 23:22
楼上的把我的话说了.没得分了
作者: jinsedeyuzhou    时间: 2015-5-16 23:42
1.5 新增新特性  泛型类型、for each循环、可变元参数
作者: 笨小点儿    时间: 2015-5-18 23:07
包含
内省是 Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性name,那我们可以通过getName,setName来得到其值或者设置新 的值。通过getName/setName来访问name属性,这就是默认的规则。Java中提供了一套API用来访问某个属性的getter /setter方法,通过这些API可以使你不需要了解这个规则(但你最好还是要搞清楚),这些API存放于包java.beans中。
一 般的做法是通过类Introspector来获取某个对象的BeanInfo信息,然后通过BeanInfo来获取属性的描述器 (PropertyDescriptor),通过这个属性描述器就可以获取某个属性对应的getter/setter方法,然后我们就可以通过反射机制来 调用这些方法。
作者: doushu    时间: 2015-5-19 00:37
不会 。。。。。
作者: zhuchangbao    时间: 2015-5-20 13:28
请尽快选择最佳答案。如果长时间不选择,我就会帮助你选择了。




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