java google ImmutableMap 功能和用法

java google ImmutableMap 功能和用法,第1张

和普通Map一样读取使用,只是ImmutableMap不能被写入或改变内容

return ImmutableMapof("result", result);//是把result的内容放在"result"键下,返回一个新Map。

比如

Map m=returningFunction();//刚刚的函数
Systemoutprintln(mget("result"));//打印结果

1、大数据领域
Hadoop以及其他大数据处理技术普遍用的都是Java,当然其他语言也有用到,基于Java 的 HBase和Accumulo以及ElasticSearchas。但Java在此领域并未占太大空间,但只要Hadoop和ElasticSearchas能够成长壮大,Java依然有潜力占据一部分。
2、Android应用 
如果你想知道Java应用在哪里,打开你的安卓手机或者任何的App,它们完全是用有着谷歌Android API的Java编程语言编写的,这个API和JDK非常相似。前几年安卓刚开始起步而到今日已经很多Java程序员是安卓App的开发者。顺便一提,虽然我们之前的文章提到的关于安卓App是如何工作的,即安卓使用了不同的Java虚拟机和不同的封装,但是代码仍然是用Java编写的。
3、网站领域
Java同样也在电子商务和网站开发上有着广泛的运用。你可以运用很多RESTfull架构,这些架构是用Spring MVC,Struts 20和类似的框架开发出来的。甚至简单的Servlet,JSP和Struts在各种政府项目也是备受欢迎,许多政府,医疗,保险,教育,国防和其他部门的网站都是建立在java之上的。
4、软件工具
许多常用的软件和开发工具都是运用Java来编写和开发的。比如Eclipse,IneteliJIdea和Netbans IDE。 交易系统第三方交易系统,现已是金融服务产业的一个很大的部分,它们同样也是Java编写。 例如受欢迎的交易平台Murex,它也是Java编写,并与许多的银行前台所连接,提供服务。
5、嵌入式领域 
Java 在嵌入式领域发展空间很大。在这个平台上,你只需130KB就能够使用 Java 技术(在智能卡或者传感器上)。
最初,Java 被设计用来在嵌入书设备上工作。 事实上,这只是其中的一个领域,这只是当初的“一次写入,随便畅游”的项目,现在看起来是这样了。
6、其他领域
Java依然是在科学应用中最好选择,包括自然语言处理。最主要的原因是因为Java比C++或者其他语言相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。
可以说Java作为软件行业默认开发语言在各个领域均有广泛应用,相关从业者也都认为Java有着光明的未来。

本周 Google 与 VMware 开始了亲密的合作,两者将合作开发基于 Java 语言的谷歌应用引擎(Google App Engine)。这样一来,开发人员便可以在谷歌应用引擎上编写、运行基于Spring框架的的Java应用程序

这个消息自从在Google I/O大会上宣布以后,便引起了部分开发人员的关注,但是大部分开发人员仍然持观望态度。

VMware与Google有着一个重要的共同点,那就是两者时刻感受到来自Microsoft的 挑战 ,因此达成同盟合作关系是具有现实意义的。

除了VMware的SpringSource(包括SpringSource工具套件和SpringRoo)以外,开发人员还可以使用Google Web Toolkit来编写Java应用程序。 这些应用程序还可以基于其他平台运行,例如商业版谷歌应用引擎(一种包括了SSL 安全 机制的新版本),VMware vCloud服务,VMforce(VMware与合作的PaaS实现开发平台)。

“我们选择与VMware合作来帮助企业实现云移植,使开发人员能在更多环境中开发丰富的Java应用程序。”Google开发平台副总裁Vic Gundotra表示。

在云中实现应用程序移植的想法相当好,而且目前该应用的的开发才刚刚起步,它为开发人员提供了更多的选择。 但是开发者们对该项应用能否正常运行却表示怀疑。

“我担心这个功能要多长时间才可以成功 得到 应用。”Parity Creative顾问、网页工程师Matthew Heidemann说。 “每个云都具有独特的服务,谷歌应用引擎使用的Google Big Table是无法复制到VMware私有云中的;VMforce使用的Chatter API来自Salesforce,也同样无法实现移植。”他说

Google与VMware的合作仍然面临挑战

开发人员并不会对每种云都信任。“对我们来说保证基础设施在内部运营很重要。”Auktionshas Zofingen的高级开发工程师Marcel Lanz说,这是一家基于Java的瑞士在线 拍卖 网站。“如果 互联网 发生故障,那么我们的业务必然会受到影响。”该网站使用 Amazon 的Cloudfront发布其产品与服务目录。“仅仅是部分业务不可用总比整个服务中断要好的多,对于业务来说也能大大降低风险。”Lanz说。

Parity Creative的Heidemann认为公司将不会把数据配置在谷歌应用引擎上。“不是因为PCI、HIPAA等兼容问题,关键在于其安全性。”他说。而其他的业内人士则对此表示乐观。

Google与VMware的合作“能使Java具有更大的吸引力”Ruby开发人员Justin Fields说。 他表示需要快速开发和快速变更的功能,因此如果谷歌应用引擎的Spring Java应用程序能提供这样的灵活性,“我愿意使用它”,他说。

Java开发人员、Rhapsody国际公司的技术总监Andrew Denyes认为该合作一定会使Google toolkit更具吸引力。他近期还与VMforce签署了合作协议。“虽然其结果如何现在还不清楚但是,我们将努力尝试。”他说。

分析 师表示随着云计算基础设施的部署,开发平台之间的竞争不可避免。“Microsoft公司的Azure肯定会采取措施。”Forrester首席分析师Jeffrey Hammond说。

Google/VMware与VMforce对比

据VMware CTO Steve Herrod表示,总体来说目前VMware在云计算方面的计划为:帮助企业建立私有云;以实现“有区别但又兼容的公共云”;在公有云和私有云之间提供连接管理功能。

Herrod表示,与VMforce相比,Google与VMware的联合更为主动地迎合了不同类别的用户。“这也就回应了‘有区别但又兼容’的原则了。”他说, Salesforcecom是一个强大的企业,它拥有一个庞大的客户 数据库 并不断扩充其客户应用程序。

“Google则是另一种类型的企业。”Herrod说:“它拥有一个庞大的开发系统,并与Google Docs的特性很好地结合在一起。”因此,之前推出的更受企业关注。

Google和VMware可以对线程进行 共享 。“开发人员能编写Java程序在自己的数据中心内运行,此外还能部署到VMforce或谷歌应用引擎上。”Herrod说,将来在 Eclipse IDE工作的开发人员可选择将他们的Spring应用程序直接发布到谷歌应用引擎。

在VMware和SpringSource面世之前,Salesforcecom和谷歌应用引擎都要求开发人员用各自的专用语言进行代码编写。“Paul Maritz称之为加州旅馆效应——你可以登记入住但是不能离开。”Herrod说。

VMware CEO Paul Maritz表示,VMware正在创建一个“云计算的开发源码层”,当拥有更多技术部署能力之后,开发人员必将创造更加伟大的应用。

Google的GSON组件可以将对象转为json字符串,而且支持 JDK5 的泛型,还有版本的注解、更改字段名称的注解等等。

测试代码如下:

User 用户类:
public class User {
@Expose
private Long id;
@Expose
private String name;
public Long getId() {
    return id;
}
public void setId(Long id) {
    thisid = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    thisname = name;
}
}
// 测试 JavaBean 的转换
public class Test {
    public static void main(String[] args) {
        User user = new User();
        usersetId(1001L);
        usersetName("张三");
        GsonBuilder builder = new GsonBuilder();
        // 不转换没有 @Expose 注解的字段
        builderexcludeFieldsWithoutExposeAnnotation();
        Gson gson = buildercreate();
        
        String sUser = gsontoJson(user);
        Systemoutprintln(sUser);
        // {"id":1001,"name":"张三"}
        
        // 将JSON字符串转换为 JavaBean
        User user2 = gsonfromJson(sUser, Userclass);
        Systemoutprintln(user2getId() + ", " + user2getName());
        // 1001, 张三
    }
}
// 测试 HashMap 的转换
public class MapTest {
    public static void main(String[] args) {
        User user1 = new User();
        user1setId(1001L);
        user1setName("张三");
        User user2 = new User();
        user2setId(1002L);
        user2setName("李四");
        Map userMap = new HashMap();
        userMapput("user1", user1);
        userMapput("user2", user2);
        GsonBuilder builder = new GsonBuilder();
        // 不转换没有 @Expose 注解的字段
        builderexcludeFieldsWithoutExposeAnnotation();
        Gson gson = buildercreate();
        
        String sUserMap = gsontoJson(user, new TypeToken>(){}getType());
        Systemoutprintln(sUserMap);
        // {"user1":{"id":1001,"name":"张三"},"user2":{"id":1002,"name":"李四"}}
        
        // 将JSON字符串转换为 HashMap
        Map userMap2 = (Map)gsonfromJson(sUser, new TypeToken>(){}getType());
        Systemoutprintln(userMap2get("user1")getName());
        // 张三
    }
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13378887.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存