黑马程序员技术交流社区
标题:
请教个问题
[打印本页]
作者:
散人online
时间:
2013-1-8 20:31
标题:
请教个问题
Map map = {"k":"v"}定义不成功,报错,为什么啊?
作者:
肖志锋
时间:
2013-1-8 20:54
本帖最后由 肖志锋 于 2013-1-8 20:56 编辑
我觉得你首先要解决的问题是你要干嘛?然后再去解决怎么做的问题?
编程其实就是把你的思想变成代码的过程,在你那个语句里面,你是要赋值呢?还是创建对象?
1:如果是创建对象,那么作为一个接口,Map只能使用他的实现类去创建,比如说TreeMap,或者HashMap的构造函数去创建,这个可以去查API
2:如果你说你要去赋值呢,作为一个对象,当然只能使用一个已有的Map实体引用去赋值,而大括号是什么?一般是数组初始化用的,在你这里又不是数组,因为中间是冒号,显然这是你一个你自己创造的语法了,当然是不行的。
作者:
黄锦成
时间:
2013-1-8 23:12
这个是JDK 7 的新特性啊,你装的JDK是小于7版本的吧。
作者:
罗利华
时间:
2013-1-9 01:49
这是JDK1.7的新特性。以下是它的一些新特性。
1.优化了对集合的支持,创建List / Set / Map 时写法更简单了。
List<String> list = ["item"];
String item = list[0];
Set<String> set = {"item"};
Map<String,Integer> map = {"key" : 1};
int value = map["key"];
2.对资源的自动回收管理
try (BufferedReader br = new BufferedReader(new FileReader(path)) {
return br.readLine();
}
相对于以前版本,br不用代码进行回收管理了,也就是省去了
finally {
br.close();
}
3.对泛型实力创建过程中类型应用进行了简化,不用在重复指明泛型类型了
即这样写就行了:Map<String,String> hello = new Map<>();
3.可以在数字中使用下划线了
int billion = 1_000_000_000;
4.对字符串进行switch case
例如:
String str="News";
switch (str)
{
case "News":
//....
break;
//...
}
然而,这个功能在C#中早就支持了,java竟然这么迟才更新。假若想在Java1.7以下版本怎样实现switch case字符串的选择呢。解决这一问题应该方法有很多,其中利用Java1.5的特性枚举不愧为最好的方法。
注意:在把字符串传进Switch case之前,别忘了检查字符串是否为Null。(这个功能在C#中早就支持)
5.你可用作二进制字符前加上 0b 来创建一个二进制类型。
例如:
int binary = 0b1001_1001;
6.多重捕获Multi-catch
catch(IOException | NullPointerException | ..........) {
}
另外:
Java 1.4到1.5的修改很大,在编译compile-time 方面提升很大,Java 6在运行时runtime智能上做了优化,Java 7的主要改进:模块化。Java 7新功能的具体的主要修改如下:
◆Modularization 模块化– JSR 294 或者 Project Jigsaw
◆JVM 对动态语言的支持
◆更多新的 I/O APIs 即将完成,包括真正的异步I/O 和最终的真实的文件系统 file system API – JSR 203
◆对XML本地语言支持. (可能的probable)
◆Safe rethrow – 允许catch捕获语句让编译器更加聪明的知道基于什么情况下重新throw什么内容。
◆Null dereference expressions – Null 和 ‘?’ syntax 比较,语法类似 Groovy… 让开发者避免过多的空值验证。
◆更好的类型推断 Better type inference
◆多重捕获Multi-catch
◆JSR 296 – Swing 应用框架 application framework – 这方面需要更简单和简洁。
“小的”sun方面的修改有:
◆升级的类加载class loader 架构;
◆XRender pipeline for Java 2D:是Open JDK ntegrators Challenge project项目;
◆Swing 更新 – JXLayer, DatePicker, CSS styling 等;
◆JavaFX
sun方面“快速”的修改,主要是性能更新:
◆并发方面的细微调整 concurrencytweaks (JSR 166),更好的支持Multicore
◆G1 垃圾收集器Garbage collector - 带来更小的中断时间,有希望替代 CMS (Concurrent mark sweep) GC
◆64 bit VM的压缩指针Compressed pointer
◆MVM-lite – 多个虚拟机能够独立运行应用和允许用kill -9杀死java应用。
作者:
心弦上的景致
时间:
2013-1-9 01:59
首先 你的书写格式就有问题
我建议你先想明白map是什么 干什么用的 有什么特性
然后在动手敲代码 思路错了 思维模型错了 你怎么敲都是浪费时间
泛型 集合 是我建议你学习的重点
你对这些的理解太模糊了 我帮不了你 你抓紧看资料
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2