精华内容
下载资源
问答
  • JavaAPI文档中文版

    2018-05-23 17:17:19
    JavaAPI文档中文版,JavaAPI文档中文版,JavaAPI文档中文版,JavaAPI文档中文版,JavaAPI文档中文版,JavaAPI文档中文版,JavaAPI文档中文版,JavaAPI文档中文版,JavaAPI文档中文版,JavaAPI文档中文版,JavaAPI...
  • java api接口规范

    2018-07-20 17:24:16
    java api开发接口规范 包括增删改查 下载 上传等传参 返回方式等
  • javaAPI(中文版)

    2018-06-13 11:04:35
    java api 的中文版
  • JAVA API官方文档 中文版 ~打酱油~打酱油~打酱油~打酱油
  • ElasticSearch Java API 中文文档 ElasticSearch Java API 中文文档
  • java API for mac

    热门讨论 2015-10-12 22:29:53
    由于mac下打不开chm格式的文档,所以我们只能使用doc...这个文件下载后windows和mac都可以使用,最近看部分网友评论不能打开,下载后解压,在解压文件夹中按照Java.docset/Contents/Resources/Documents找到index打开即可
  • Java API脑图

    热门讨论 2017-07-03 17:04:43
    API
  • java API接口文档

    2013-03-07 12:03:04
    API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
  • MongoDB Java API 中文

    热门讨论 2013-08-30 13:21:28
    MongoDB Java API 中文
  • elasticsearch5.5.1的javaapi,含创建索引、mapping、查询、增加删除文档
  • Java API文档 中文网页版

    万次下载 热门讨论 2007-03-21 14:25:52
    Java API文档中文版,欢迎下载!!
  • Java API 最佳开发实践

    千次阅读 2018-11-18 22:28:57
    Java API 最佳实践 最近在做接口对接的工作,发现要写出一个双方都满意的api并不是一件容易的事,刚好在DZone 上看到微软工程师 Jonathan Giles 写的一篇文章,学到了一些经验,便做了翻译或许可以帮助到更多的...

    Java API 最佳实践

    最近在做接口对接的工作,发现要写出一个双方都满意的api并不是一件容易的事,刚好在DZone 上看到微软工程师 Jonathan Giles 写的一篇文章,学到了一些经验,便做了翻译或许可以帮助到更多的开发者。
    作为一个开发者,我们工作就是每天写代码,当然我们不可以脱离于其他人而写代码。可以确定的是我们都在踩在前人的肩膀上进行学习工作,今天有大量的工具可以供我们使用,
    比如github,stack overflow,maven central,还有很多可用的第三方库可以供我们使用,软件是在api(Application Programming Interfaces)基础上创造的,我们使用大量来自Maven或者Gradle的第三方库。
    如果我们询问工程师们他们是不是API开发者,他们通常会回答不是,但是这个回答有不正确的,工程师只要曾经精心写出过public的类或者public的方法,就可以被看作是api开发者。
    “精心”这个形容词是必要的,API的设计就像一件艺术品,需要创造力并且需要付出很时间,同时更像是一门科学。

    API风格

    API风格有很多衡量的标准,下面介绍6点标准。

    1. 容易理解的
      你有多少次通过maven下载依赖的第三方库后,确不知道从那个类开始使用这个api? 一个设计优秀的api应该让使用者很直观的理解应该如何使用它。
      api开发者应该思考如果让使用者找到api的使用入口。完整的文档是帮助使用者理解api的全貌,但更理想的是在文档的开始处,使用最精炼的描述使使用者可以以小步迭代的方式学会使用api。
      因此,优秀的api试图通过使用入口暴露他们的功能点,使用者通过使用api start case而产生兴趣,然后通过文档掌握更多的功能特性。
    2. 良好的注释
      我们希望他人使用我们的api,因此我们需要努力把文档做好.
    3. 代码风格一致性
      一个好的api不应该使它的使用者感到意外,没有保持一致性便会使使用者感到意外。
      一致性是指我们在api中重复相同的风格,比如:
      3.1 所有方法使用getXYZ() 或者 xyz(),而不是同时使用两种形式
      3.2 如果有两个方法(一个是另一个的重载,比如一个参数为Object…,
      而另一个是Collectio)Collecti<? extends Object>),那么这种方式的重载风格需要保持下去。
      关键是在整个SDK的开发过程中我们需要确立一个小组一致赞成的术语规范和一个备忘录来确保风格一致性。
    4. 实现确定的目标
      开发api,我们必须确定满足用户的需求。可以从下面两个方式思考:
      4.1 只做一件事情,并且做好
      4.2 理解你的用户和他们的潜在目标
      JDK中的Collections API就是一个好的栗子,用户可以方便的利用集合存储数据和取出数据,而不需要自定义集合扩展条件、工厂、增加策略、hash碰撞策略、比较策略、缓存、负载系数等。开发者在使用集合的功能时甚至不需要了解其框架内部是如何工作的。
    5. 有约束的
      新增一个API或许会很快,但是我们应当尽力理解这个api,因为以后很可能会花很多时间来对这个api进行维护。
      对api的使用主要来自我们的项目和社区,一些项目经常做出一些破坏性的变更,然而像JDK本身的api很少出现紧急的变更。
      很多api会在中途被放弃,在api被移除之前使用一个语义上放弃的标志是一个合适的方式。
      一个项目在最终版本确定之前会使用很多标志来表明试验版、beta版、或者预习功能以备回滚使用。
      一个通常的做法在api被考虑周全之前使用@Deprecated标志或者清楚该标志来表明功能是否可以使用。
    6. 可维护的
      我们开发的每一个api,都是以开发者角度而不是用户的角度来确定其使用范围的。当我们确定api的使用范围时,必须花一些时间去验证在更宽广的上文中使用我们的sdk.

    api就像一个合同

    api可以被认为是一个合同,当其他开发者开始使用我们的api时,仿佛我们向他们承诺了一个可用的功能。对开发者而言,经常会考虑新的以及更好的实现方式(甚至是不起作用的实现),当我们需要修改我们的api以使其更好的工作时,同时会对使用者带来破坏性和bugs的风险,因此我们应该经过更加全面的考虑。
    在创建1.0.0版本的api时,我们会体会到自由实验的感觉,在项目中,重点是我们达到了1.0.0版本后,直到2.0.0版本之前,它是无法被修改的。然而,在另外一些项目中,会相对灵活一点,允许持续迭代的修改api。实际上,一个明智的处理方式是,在很长一段时间里,只要可以保证向后兼容,那么只要可以使api变得更好,就可以被允许修改。

    api的必要性

    最容易维护的api就是没有api,因此,对我们开发的api的每一个方法和类都需要进行必要性的论证。在我们设计api的过程中,我们需要经常问自己一些问题,是否确实需要,并且持续维护api并保证功能的可用性。

    在内部系统中使用开发的api

    做为api开发者我们必须仔细确认并保证api针对相关领域的问题确实有用。我们应当站在使用者的角度而不是我们自己的角度来看待我们开发的api.最好的方法是在内部系统中使用它。换句话说,必须保证我们开发的api可以得到现实用户的信任。
    得到现实用户使用的价值在于防止我们失去对api的约束,并且增加对api的理解。真实用户可以帮助平衡需求,以确保我们在做有价值的修复工作。当我们使用自己的api开发应用时,我们或许会看到使用api的这段代码并不整洁(或者意图不明确),取代那些重复的冗余代码,同时api会强迫我们抽象出一个合适的层来使用它。

    api文档

    有两种开发文档可以帮助开发者使用SDK: JavaDoc、更深度的使用文章(包含如果开始使用的教程等,比如微软发布的Java On Azure)。这些对开发者都很重要,但是他们是为不同的目地所服务的。这里主要介绍JavaDoc,这个和api开发者的关联的更加紧密。
    JavaDoc 是api的规格说明。作为api开发者应当把写JavaDoc作为自己工作的一部分,并且确保完成,它包括类和方法的概述,明确输入、输出、异常情况和一些其他的细节。当这个文档作为规格说明,它不仅可以引导编程者,而且讨论该如何具体的实施api。
    理想的情况是,更进一步去创建一个高质量的JavaDoc还可以包含代码片段以是用户可以在他们的项目中直接copy/paste,并使其开始工作。这些代码并不需要很长,最好可以限制在5-10行。随着时间的推移,当用户对api提出疑问时,这些代码可以逐渐添加到JavaDoc的类或者方法中。
    JavaDoc的价值不仅在于提供给其他开发人员,同时可以帮助我们自己。这是因为JavaDoc通过对外部展示API的同时也会给我们一个SDK的面貌。
    如果有一个定期生成JavaDoc的程序,那么在review我们的api的同时或许会发现JavaDoc中缺少的实现类或者外部依赖,或者其他不符合我们预期的事情。
    大多数java项目基于Mavan或者Gradle,为一个项目生成JavaDocs通常可以使用mvc javadoc:javadoc或者gradle javadoc
    养成定期生成文档的习惯(尤其是当配置异常出现error和warning的时候)可以确保我们及时发现api的问题,并且提醒我们的api需要更多的位置用来写JavaDoc

    用于行为合同的JavaDoc

    JavaDoc另一个未被使用的作用包括对指定行为的约束。一个栗子比如Arrays.sort()方法,是具有稳定性的特性(也就是说,相同元素不会被重新排序)。api没有可以简单表明(除了使我们的api显得笨重,比如Arrays.stableSort()),但是JavaDoc是一个理想的位置。

    JavaDoc 标签

    JavaDoc使用一些标签,比如@link,@param和@return,他们可以在html输出中生成。非常有用的是他们可以作为你的想法的备份。

    风格的一致性

    目前很少项目是由一个人开发完成的。人们的行为也是变化无常的,因此获取会导致一个接一个的错误。幸运的是,我们设计api时,可以做一个对公共api目标的明确的记录,当他偏离了这个目标时,可以轻松的发现。
    拥有一个一致性的api的短期好处是可以增加用户的满意度,长期的好处是当用户使用api的新部分是,更容易知道如何使用它
    一致性包括:

    • 返回类型:理想情况下,返回一个集合是需要被考虑的,包括少数几个类,而不是所有可能的类。一个好的集合返回类型可能包含,List,SetIterator(避免使用Collection,Iterable和Stream)。同时,如果api大多数情况下不会返回null,那么不要为其指定null的返回类型。
    • 方法名称模板:开发者可以使用IDE自动完成输入,所以尽可能开率api名称的重要性,确保IDE可以自动弹出包含名称的列表。API应该有一套完整的和可重复使用的术语表:类型名称,方法名称,参数名称,和常量等。
      方法名称比如 Type.of(...),Type.valueOf(),Type.toXYZ(),Type.from(...)等,应该持续使用,而不被混淆。我们的目标是在开发api时,是整个团队遵循一套命名规则。
    • 参数顺序:如果重载的方法包含多个参数,尽量保证参数顺序具备逻辑性。一些情况下,可以引入参数的包装类,这样可以降低后续版本增加更多参数的需求,同时增加api的可维护性。

    最小化api

    开发人员本能想写大而全的api,以提供更多的便利性。但是会有两个问题:

    1. api使用者需要了解超过他们实际工作所需要的信息
    2. 暴露的接口越多,后续需要维护的工作就越多
      所有api开发者应该设计并理解使用其api的关键用例,应该反对增加过多的用例(增加自己想象中的用来减少使用者代码的方法)。
      应该确定哪些是真正有价值的接口,同时放弃自认为有价值的方法。
      需要澄清的是,如果可以为使用者提供更加清晰便利的使用API,那便可以增加。比如JDK中的List.add(Object)方法,他避免开发者经常调用List.add(int,Object)
      Oracle的JDK团队的工程师Stuart Marks提供了一下见解:
      比如api中有两个方法bar()和foo(),如果使用者想一起使用,那么可以增加方法bf(),接下来增加一个新方法mumble(),那么三个综合起来的方法是fbm(),但是如果只使用bar()和mumble()呢,那么要新增一个方法bm(),这样下去,会造成一个臃肿的api(),远远超过基本的操作。
      在JDK的风格中,会让用户去组合使用api中基础的操作。但是其他第三方工具会提供一些基本操作的组合方法,比如Eclipse COllections。

    防止泄露

    确保一些具体的实现类以及api所依赖的类不会被泄露到public api中,有一些方法可以隐藏这些类:

    1. 将实现类放在 impl包里,这个包可以被JavaDoc排除掉。
    2. 将实现类设置为"package-private",可以确保这些类不是public API,因此不可以被使用者调用。

    protected、final等关键字

    protected关键字表示可以和子类交互,如果方法是私有的那么不应该声明为protected或public。
    如果不希望使用者重写类和方法,那么可以使用final关键字来修饰。
    一些情况下,使用者希望重写方法来满足他们特定的需求或者问题,这时候他们就会与我们进行联系。那么在下个版本,我们或许会移除掉final关键字。

    保证向后兼容性

    关于如何发展api的问题,基础的建议是如果需要修改,那么便新增一个,而不是修改或者删除一个已存在的api。原因是新增一个api可以保证向后兼容。如果对一个已经存在api进行修改或删除,会对用户造成风险,当他们更新api的版本后,会发现之前的代码不可用。
    如果有一个向后无法兼容的改变,比如我们之前的api设计错误,或者在某些方面需要另外一种实现。那么我们就会遇到和用户进行沟通的挑战。使用@Deprecated注解 是一个好的方式,但是我们需要定义一个版本政策,比如新增一个新的版本(软件版本控制规范可以参考,包括MAJOR.MINOR.PATCH版本),基于软件版本控制规范,所有需要修改或者变更的都可以标注deprecated,直到下以个MAJOR版本发布时删除。这个方法的重点在于确保使用者了解该api的遵从的版本规范。
    另外,有时一些改动连开发者也没有注意到,那么一个工具Revapi可以起到帮助,他可以提示出api做了哪些无法向后兼容的改变。

    不要返回null

    通产在程序遇到异常时会返回null值,但一些情况下可以有更好的替代选择:

    RETURN TYPENON-NULL RETURN VALUE
    String“” (An empty string)
    List / Set Map / IteratorUse the Collections class, e.g. Collections.emptyList()
    StreamStream.empty()
    ArrayReturn an empty, zero-length array
    All other typesConsider using Optional (but read the Optional section below first)

    使用以上规则替代null值,可以减少api使用者对null值的判断.

    理解Optional

    使用Optional可以减少空指针异常的可能性。如果方法返回Optional,便代表他是non-null的,换句话说Opthional<T>可以认为返回值至少包含一个元素。

    • 在使用optinnal返回值是,避免再返回null值。
    • 避免使用optional<Collection<T>>,简单使用Collection<T>做为返回值即可。

    结论

    本文档涵盖了一些在开发公共api时需要注意的事项。成功的api设计不在乎写了多少代码,而在于用户在其中获得了多少价值。因此一个精简的,风格一致的api是需要考虑的。 重要的是我们应当站在使用者的角度来使我们的api更加符合用户的真实需求。当然,
    这不应该仅仅被视为“更多的工作”,而是对我们自己的挑战,以为用户创造一个方便使用,功能高效的API的目标而努力。

    原文:Java API Best Practices

    展开全文
  • JAVA API文档 1.6 官方中文版网页HTML版
  • Elasticsearch 5.1.1 java api maven工程,完整jar包在es5/target/dependency目录下
  • 查看JAVA API以及JAVA源码的方法

    万次阅读 多人点赞 2018-06-05 01:27:07
    java的日常学习中,我们有时候会需要看javaapi说明,或者是查看java的源码,使我们更好的了解java,接下来我就来说说如何查看javaapi以及java源码 对于javaapi,一般是在下面的网址中进行查看 ...

    在java的日常学习中,我们有时候会需要看java的api说明,或者是查看java的源码,使我们更好的了解java,接下来我就来说说如何查看java的api以及java源码

    对于java的api,一般是在下面的网址中进行查看
    https://docs.oracle.com/javase/8/docs/api/

    而对于java的源码,我们现在来演示查看nextLine()的源码:
    这里写图片描述
    将鼠标放置在希望转跳到源码的函数上,等待系统浮现这个黄色的框
    这里写图片描述
    然后点击下面的Open Declaration,即可进入源码的界面
    这里写图片描述
    以下是源码的界面:
    这里写图片描述
    这种方法虽然可以查看源码,但速度较慢,有什么方法可以快速的查看源码吗?
    接下来展示如何通过添加快捷键,快速查看api的源码:
    首先:在Eclipse里面从Window --》Peference --》Java --》Installed JREs
    就到了如下图所示的界面:
    这里写图片描述
    通过双击jre1.8.0_152打开:
    这里写图片描述
    选择其中的rt.jar
    这里写图片描述
    选择Source Attachment
    这里写图片描述
    并选择OK就可以了,然后选择重启eclipse
    重新选择你需要查看源码的api,按下F3,即可转跳到源码的位置

    展开全文
  • Java API 基础

    万次阅读 多人点赞 2018-10-02 23:33:18
    Java API 基础 一、相关知识学习   Java程序员在开发Java程序时,只需要安装有JDK,就可以在程序中使用import关键字导入Java API 中指定的包并在自己的程序中使用这些包中定义的各种类和接口。 1、 Java API 包 ...

    Java API 基础

    一、相关知识学习

      Java程序员在开发Java程序时,只需要安装有JDK,就可以在程序中使用import关键字导入Java API 中指定的包并在自己的程序中使用这些包中定义的各种类和接口。

    1、 Java API 包

    Java API 包说明
    java.accessibility接口组件和助手技术的类和接口
    java.appletJava Applet所需的类和接口
    java.awt图形用户界面所需的类和接口
    java.beansJava bean技术所需的类和接口
    java.io系统输入/输出所需的类和接口
    java.langjava语言编程的基础类和接口
    java.math支持任意精度整数和任意精度小数的类和接口
    java.naming访问命名服务器的类和接口
    java.net网络应用的类和接口
    java.rmi远程调用(RMI)的类和接口
    java.security用于安全框架的类和接口
    java.sql访问和处理数据源中数据的类和接口
    java.text支持按与语言无关方式处理文本、数据、数字和消息的类和接口
    java.util集合框架、事件模型、日期和时间机制、国际化等的类和接口
    javax.serverletJava.serverlet所需的类和接口
    javax.sound支持音频设备数字接口(MIDI)的类和接口
    javax.swing扩充和增强基本图形用户界面功能的类和接口

    2、 java.lang包

       java.lang包中包含了Java程序设计语言最基础的类。由于java.lang包是Java程序设计时用得最频繁的包,所以Java默认对每个Java源程序都自动导入了java.lang包,程序员不必再明确地手工导入。

    Object类:
       Object类是整个Java类层次的根类,Java中所有其他类都是从Object类直接或间接继承(派生)而来的。
       Object类中只定义了一些方法,没有定义属性。
       Object类实现了对象运行时的相关方法、垃圾回收方法、线程同步方法。
    Object类的常用方法例1:

    equals()方法:
    public boolean equals(Object obj)
    用途:比较两对象是否相等。
    输入参数:obj-比较的参考对象。
    返回值:如果该对象的值与obj参数相同则为true;否则为false
    

    Object类的常用方法例2:

    toString()方法:
    public String toString()
    用途:一般返回一个用文本表示这个对象的字符串。给出的结果是简短明了的表示,这样便于人们读取。
    输入参数:无
    返回值:表示此对象的字符串。
    

    System类:
       System 类提供了标准输入流、标准输出流和错误输出流,以及加载程序文件和库等实用方法。
       System类中定义了三个静态常量属性。由于是static型,所以不用实例化对象就可以通过类名进行引用。

    变量索引
    public static final PrintStream err“标准”错误输出流
    public static final InputStream in“标准”输入流
    public static final PrintStream out“标准”输出流

    System类静态属性例:

    public static final InputStream in
    说明:java“标准”输入流。该流已打开并且准备接受输入数据。典型情况是该流同键盘输入源相联系。
    

    System类常用方法例:

    currentTimeMillis()方法
    public static native long currentTimeMillis()
    用途:返回以毫秒为单位的当前时间。
    输入参数:无
    返回值:以毫秒测量的在当前时间和UTC时间1970年1月1号午夜之间的时间长度。返回的是一个long型值。
    

    Class类:
      基本的Java类型(boolean,byte,char,short,int,long,float和double)和void类型都是由Class类对象来表达的。
    Class类常用方法例:

    forName()方法
    public static native Class forName(String className)
    用途:返回给定的字符串名对应的Class对象。此方法可用于装载驱动程序。
    输入参数:className-期望类的全路径名。
    返回值:指定名的Class描述器
    

    String类:
      String 类表示字符串。 在 Java 程序中所有的字符串常量,如 “abc” ,都被实现为这个类的实例。
    String类常用方法例1:

    public String(byte bytes[],String enc) throws UnsupportedEncodingException
    用途:用指定的字符编码方式转换指定的字节数组实例化一个String类对象(如果编码方式不存在则会抛出异常)
    输入参数:bytes-要转换为字符的字节
            enc-一个字符-编码方式名
    

    String类常用方法例2:

    length()方法
    public int length()
    用途:计算该字符串的长度,长度等于字符串中的16-bit的Unicode字符的数量
    输入参数:无
    返回值:该对象代表的字符序列的长度,整型值。
    

    String类常用方法例3:

    equalsIgnoreCase()方法
    public boolean equalsIgnoreCase(String anotherString)
    用途:忽略大小写比较该字符串和另一个字符串对象。
    输入参数:anotherString-要比较的另外一个字符串
    返回值:忽略大小写时,如果两字符串相等,则为true,否则为false
    

    String类常用方法例4:

    trim()方法
    public String trim()
    用途:删除该字符串两端的空格,所有小于等于‘\u0020’(十六进制Unicode编码的空格字符)的字符都被认为是空格。
    返回值:头尾两端的空格都被删掉的字符串。
    

    Math类:
    Math类定义了两个属性来描述数学上常用的无限不循环小数e和π,它们都被定义为静态常量,可以无需实例化对象就直接通过Math类名来引用。

    变量索引
    public static final double E该double值非常接近e,自然对数的底数
    public static final double PI该double值非常接近pi,圆的周长与直径之比

    Math类常用方法例1:

    random()方法
    public static synchronized double random()
    用途:返回0.0到1.0间均匀分布的伪随机数
    输入参数:无
    返回值:返回0.0到1.0间的伪随机数
    

    Math类常用方法例2:

    round()方法
    public static long round(double a)
    用途:作四舍五入计算
    输入参数:a-一个double型值
    返回值:返回与该参数最接近的long型数
        如果参数a为负无穷值,则结果等于Long.MIN_VALUE
        如果参数a为正无穷值,则结果等于Long.MAX_VALUE
    

    3、java.util包

      java.util包主要包含了集合框架、事件模型、日期和时间机制、国际化等类和接口。

    Arrays类:
      Arrays类提供了一些关于数组操作的常用方法,例如数组排序、查找指定元素是否存在等。
    Arrays类常用方法例1:

    fill()方法
    public static void fill(int[] a,int val)
    用途:对指定int型数组中所有元素赋予指定int值
    输入参数:a-要被赋值的数组,val-所赋的值
    返回值:无
    

    Arrays类常用方法例2:

    sort()方法
    public static void sort(int[] a)
    用途:对数组a的所有元素按元素值的大小升序重新排列整个数组
    输入参数:a-要被排序的数组
    返回值:无
    

    Arrays类常用方法例3:

    binarySearch()方法
    public static int binarySearch(int[] a,int key)
    用途:用折半法搜索key在数组a中的元素位置
    输入参数:a-要被搜索的数组,val-要搜索的关键值
    返回值:如key在a中存在,返回元素下标。如key在a中不存在,返回-1。
    一般在使用binarySearch()方法之前,先使用sort()方法
    

    Date类:
    Date类描述了一个精度为毫秒的特定时间实例。

    Calendar类:
      Calendar类是Object类的直接子类,并且Calendar类是一个抽象类,因此不能使用new运算符实例化一个Calendar类对象。用于在一个Date对象和一个诸如YEAR、MONTH、DAY、HOUR等整数字段集合之间转换。

    Vector类:
      Vector类又称为向量类,它实现了可动态扩充的对象数组。在这种动态的对象数组中,数组元素数量可以动态变化,所使用的内存空间也随之变化。
    Vector类常用方法例1:

    add()方法
    public boolean add(Object o)
    用途:向Vector类对象中添加一个Object类对象
    输入参数:o-要被添加的对象
    返回值:如果添加成功,则返回true,否则返回false
    

    Vector类常用方法例2:

    remove()方法
    public Object remove(int index)
    用途:向Vector类对象中读取并删除一个Object类对象
    输入参数:index-要被读取并删除的元素下标
    返回值:返回向量中指定下标的对象,并且从向量中删除这个元素。删除完成后向量的元素个数减一,相应的存储空间被释放
    

    Vector类常用方法例3:

    elementAt()方法
    public Object elementAt(int index)
    用途:向Vector类对象中读取一个Object类对象
    输入参数:index-要被读取的元素下标
    返回值:返回向量中指定下标的对象,这个操作不会从向量中删除这个元素。也不会修改向量中的元素个数或元素中的内容。
    

    二、训练

    1、完成一个 java application应用程序,可以接收用户通过键盘输入的文本,并输出此段文本字符的个数。
    java程序(test1.java)
    import java.util.Scanner;
    public class test1
    {
    	public static void main(String[] args) 
    	{
    		while (true) {
    		Scanner s=new Scanner(System.in);//声明对象Scanner,System.in代表标准输入,就是键盘输入
    		System.out.println("Please input :");//输入提示
    		String line=s.nextLine();//读取输入的字符放入line中
    		if (line.equals("exit")) break; //如果输入的内容是exit就会停止运行了
    		System.out.println("Number of text input:"+line.length());//使用length计算输入的文本的个数
    		}
    	}
    }
    
    运行效果图

    在这里插入图片描述

    2、完成一个 java application应用程序,计算执行十亿次空循环所需要的时间。
    java程序(test2.java)
    public class test2 
    {
    	public static void main(String args[])
    	  {
    		long startTime=System.currentTimeMillis();//获取开始的时间
    		//计算循环1000000000的时间
    		for(int i=0;i<1000000000;i++) {}
    		long endTime=System.currentTimeMillis();//获取结束的时间
    		long time=endTime-startTime;//用结束的时间减去开始的时间就为循环1000000000的时间
    		System.out.println("time:"+time+"ms");
    	  }
    }
    
    运行效果图

    在这里插入图片描述

    3、完成一个 java application应用程序,输出当前世间:年月日小时分秒星期几。
    java程序(test3.java)
    import java.util.*;  //导入java.util包
    public class test3  //定义公共类
    {
      public static void main(String args[])
      {
         //用Date类获取本地计算机当前时间
         Date mydate=new Date();
         System.out.println("Date:       "+mydate);
         
         //用Calendar类获取本地计算机当前时间
         Calendar now=Calendar.getInstance();  //获取本地日历
         int year=now.get(Calendar.YEAR);      //从日历中获取当前年
         int month=now.get(Calendar.MONTH)+1;  //从日历中获取当前月
         int day=now.get(Calendar.DATE);       //从日历中获取当前日
         System.out.print("Calendar:   "+year+"年"+month+"月"+day+"日 ");
         
         int hour=now.get(Calendar.HOUR_OF_DAY); //从日历中获取当小时(24小时制)
         int minute=now.get(Calendar.MINUTE);  //从日历中获取当前分
         int second=now.get(Calendar.SECOND);    //从日历中获取当前秒
         System.out.print(hour+"时"+minute+"分"+second+"秒 ");
         
         //从日历中获取当前是一个星期中的哪天
         //在中国,一周的第一天是周日
         int i=now.get(Calendar.DAY_OF_WEEK);
         String str="日一二三四五六";
         
         System.out.println("星期"+str.substring(i-1,i));
      }
    }
    
    运行效果图

    在这里插入图片描述

    4、完成一个java application应用程序,通过接收用户通过键盘输入的文本,把每次回车输入的字符串动态加入到Vector类对象中,并显示此Vector类对象中存储的字符串。
    java程序(test4.java)
    import java.util.Scanner;
    import java.util.*;  //导入java.util包
    
    public class test4 {	
    	public static void main(String[] args) 
    	{
    		Vector<String> a=new Vector<String>();
    		while (true) {
    		Scanner s=new Scanner(System.in);//声明对象Scanner,System.in代表标准输入,就是键盘输入		
    		System.out.println("Please input :");//输入提示
    		String line=s.nextLine();//读取输入的字符放入line中
    		a.add(line);  //把字符line加入到向量a中
    		if (line.equals("exit")) break; //如果输入的内容是exit就会停止运行了		
    		}
    		System.out.println("a="+a);	//输出a的值	
    	}
    }
    
    运行效果图

    在这里插入图片描述

    展开全文
  • Redis的javaAPI操作

    千次阅读 2020-03-22 18:36:29
    redis不仅可以通过命令行进行操作,同时redis也可以通过javaAPI进行操作,我们可以通过使用javaAPI来对redis数据库当中的各种数据类型进行操作 目录 第一步:创建maven工程并导入jar包 第二步:连接以及关闭redis...

    redis不仅可以通过命令行进行操作,同时redis也可以通过javaAPI进行操作,我们可以通过使用javaAPI来对redis数据库当中的各种数据类型进行操作

    目录

    第一步:创建maven工程并导入jar包

    第二步:连接以及关闭redis客户端

    第三步:redis的javaAPI操作

    操作string类型数据


    第一步:创建maven工程并导入jar包

    <dependencies>
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>2.9.0</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>6.14.3</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.0</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <encoding>UTF-8</encoding>
                        <!--    <verbal>true</verbal>-->
                    </configuration>
                </plugin>
            </plugins>
        </build>

    第二步:连接以及关闭redis客户端

    private JedisPool jedisPool;
    private JedisPoolConfig config;
    
    @BeforeTest
    public void redisConnectionPool(){
        config = new JedisPoolConfig();
        config.setMaxIdle(10);
        config.setMaxWaitMillis(3000);
        config.setMaxTotal(50);
        config.setMinIdle(5);
        jedisPool = new JedisPool(config, "node01", 6379);
    }
    @AfterTest
    public void closePool(){
        jedisPool.close();
    }

    第三步:redis的javaAPI操作

     

    操作string类型数据

    /**
     * 添加string类型数据
     */
    @Test
    public void addStr(){
        Jedis resource = jedisPool.getResource();
        //添加
        resource.set("jediskey", "jedisvalue");
        //查询
        String jediskey = resource.get("jediskey");
        System.out.println(jediskey);
        //修改
        resource.set("jediskey","jedisvalueUpdate");
        //删除
        resource.del("jediskey");
        //实现整型数据的增长操作
        resource.incr("jincr");
        resource.incrBy("jincr",3);
        String jincr = resource.get("jincr");
        System.out.println(jincr);
        resource.close();
    }

    操作hash列表类型数据

    /**
     * 操作hash类型数据
     */
    @Test
    public void hashOperate(){
        Jedis resource = jedisPool.getResource();
        //添加数据
        resource.hset("jhsetkey","jmapkey","jmapvalue");
        resource.hset("jhsetkey","jmapkey2","jmapvalue2");
        //获取所有数据
        Map<String, String> jhsetkey = resource.hgetAll("jhsetkey");
        for (String s : jhsetkey.keySet()) {
            System.out.println(s);
        }
        //修改数据
        resource.hset("jhsetkey","jmapkey2","jmapvalueupdate2");
        Map<String, String> jhsetkey2 = resource.hgetAll("jhsetkey");
        for (String s : jhsetkey2.keySet()) {
            System.out.println("修改数据打印"+s);
        }
        //删除数据
        resource.del("jhsetkey");
    
        Set<String> jhsetkey1 = resource.keys("jhsetkey");
        for (String result : jhsetkey1) {
            System.out.println(result);
        }
    }

    操作list类型数据

    /**
     * 操作list类型的数据
     */
    @Test
    public void listOperate(){
        Jedis resource = jedisPool.getResource();
        //从左边插入元素
        resource.lpush("listkey","listvalue1","listvalue1","listvalue2");
    
        //从右边移除元素
        resource.rpop("listkey");
        //获取所有值
        List<String> listkey = resource.lrange("listkey", 0, -1);
        for (String s : listkey) {
            System.out.println(s);
        }
        resource.close();
    }

    操作set类型的数据

    /**
     * set类型数据操作
     */
    @Test
    public void setOperate(){
        Jedis resource = jedisPool.getResource();
        //添加数据
        resource.sadd("setkey", "setvalue1", "setvalue1", "setvalue2", "setvalue3");
        //查询数据
        Set<String> setkey = resource.smembers("setkey");
        for (String s : setkey) {
            System.out.println(s);
        }
        //移除掉一个数据
        resource.srem("setkey","setvalue3");
        resource.close();
    }
    

     

    展开全文
  • JavaAPI文档

    千次阅读 2019-10-20 21:31:24
    Java API文档 Scanner类 引用类型的一般使用步骤: 1.导包 import 包路径.类名称; 如果要使用的目标类,和当前类位于同一个包下,可以省略导报语句不写。 只有java.lang 包下的内容不需要导包,其他的包都...
  • java API for visio

    千次下载 热门讨论 2011-09-27 18:58:32
    老外在visio中积累的java数据类型,供大家使用
  • Java API 1.8 中文版 免费下载

    万次阅读 多人点赞 2019-06-13 18:22:35
    Java API 1.8 中文版 免费下载 无意中淘到的希望对大家有帮助! 在这里免费分享给大家 百度云盘链接 提取码 y6wo
  • java API操作FTP上传下载

    热门讨论 2012-03-29 23:29:11
    javaAPI操作ftp上传下载文件,用于把本地主机上的文件上传到远程ftp服务器、下载远程ftp服务器上的文件到本地主机、删除远程文件、重命名远程文件、 新建远程目录以及删除远程目录。
  • JAVA API文档 中文版

    千次阅读 2020-07-12 15:01:11
    在学习Java过程中,学会阅读API文档有时候能帮助我们解决不少问题,API文档就像是字典,在我们需要时候可以很方便的进行查找,奈何很多小伙伴的英文可能不是很好,这里分享一个JavaAPI文档的中文版 链接:...
  • Kafka之JavaAPI

    千次阅读 2019-06-18 12:47:10
    Producer: ... import java.util.Properties;...import kafka.javaapi.producer.Producer; import kafka.producer.KeyedMessage; import kafka.producer.ProducerConfig; public class Producer...
  • JAVA API1.7中文手册

    千次阅读 2020-06-20 11:42:15
    既然选择学习这门计算机语言,那JAVA API1.7中文手册这款软件就一定是要必备的软件。刚打开这款软件,软件就会为大家概述java的情况,比如说发展历程、编程需要的环境、编程常用的工具、这门计算机语言的特点等。让...
  • FastDFS Java Api 使用教程

    万次阅读 2019-01-02 16:47:11
    上一篇文章分布式文件管理系统FastDFS搭建教程(FastDFS+nginx+fastdfs-nginx-module)已经讲解了环境的搭建,接下来这个,是讲FASTDFS JAVA API的使用。主要maven引用, MAVEN管理 自己构建的话,官方项目地址是 ...
  • FastDFS Java Api 操作

    万次阅读 2018-01-29 12:50:24
    FastDFS Java Api 操作 1.用eclipse把源代码打成jar文件:(源代码下载地址:https://github.com/happyfish100/fastdfs-client-java) 2、把fastdfs_client.jar 添加到Maven仓库 #执行 maven命令 添加fastdfs...
  • 如何从Java官网下载 Java API 文档

    千次阅读 多人点赞 2020-02-20 17:12:13
    2.进入Java页面。 3.将页面拉到底部 4. 将页面拉到中间 5. 6. 7. 将页面下拉。 8. 9. 10 11.下载完成后解压到任意目录;打开doc\api目录,打开index页面,尽情享受即可。 ...
  • ZooKeeper的Java API操作

    千次阅读 2019-12-09 23:53:47
    本篇博客小菌为大家带来期待已久的关于ZooKeeper的JavaAPI操作!!!         在向大家展示代码之前,先为大家介绍几个需要使用到的类! org.apache.zookeeper.Zookeeper Z.....
  • Java API文档

    千次阅读 2017-08-31 21:46:56
    Java API文档
  • 使用Java API访问Hdfs服务器

    千次阅读 2020-06-30 10:33:32
    使用Java API访问Hdfs服务器

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,478,942
精华内容 591,576
关键字:

javaapi

java 订阅