• 在线中文api:http://tool.oschina.net/apidocs/apidoc?api=jdk-zhjava的apijava和javax2个包java和javax都是JavaAPI包,java是核心包,javax的x是extension的意思,也就是扩展包,它和java各有各的用处 ...

    在线中文api:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh

    Java版本:1.8
    Android版本:23

    java的api有java和javax2个包

    java和javax都是Java的API包,java是核心包,javax的x是extension的意思,也就是扩展包,它和java各有各的用处

    先看java包,java下有14个包

    这里写图片描述

    1、java.applet

    提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类。

    Java Applet 基础

    2、java.awt

    包含用于创建用户界面和绘制图形图像的所有类。

    3、java.beans

    包含与开发 beans 有关的类,即基于 JavaBeansTM 架构的组件。

    4、java.io

    通过数据流、序列化和文件系统提供系统输入和输出。

    java io系列教程

    1. java io系列01之 “目录”

    2. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括InputStream)

    3. java io系列03之 ByteArrayOutputStream的简介,源码分析和示例(包括OutputStream)

    4. java io系列04之 管道(PipedOutputStream和PipedInputStream)的简介,源码分析和示例

    5. java io系列05之 ObjectInputStream 和 ObjectOutputStream

    6. java io系列06之 序列化总结(Serializable 和 Externalizable)

    7. java io系列07之 FileInputStream和FileOutputStream

    8. java io系列08之 File总结

    9. java io系列09之 FileDescriptor总结

    10. java io系列10之 FilterInputStream

    11. java io系列11之 FilterOutputStream

    12. java io系列12之 BufferedInputStream(缓冲输入流)的认知、源码和示例

    13. java io系列13之 BufferedOutputStream(缓冲输出流)的认知、源码和示例

    14. java io系列14之 DataInputStream(数据输入流)的认知、源码和示例

    15. java io系列15之 DataOutputStream(数据输出流)的认知、源码和示例

    16. java io系列16之 PrintStream(打印输出流)详解

    17. java io系列17之 System.out.println(“hello world”)原理

    18. java io系列18之 CharArrayReader(字符数组输入流)

    19. java io系列19之 CharArrayWriter(字符数组输出流)

    20. java io系列20之 PipedReader和PipedWriter

    21. java io系列21之 InputStreamReader和OutputStreamWriter

    22. java io系列22之 FileReader和FileWriter

    23. java io系列23之 BufferedReader(字符缓冲输入流)

    24. java io系列24之 BufferedWriter(字符缓冲输出流)

    25. java io系列25之 PrintWriter (字符打印输出流)

    26. java io系列26之 RandomAccessFile

    5、java.lang

    提供利用 Java 编程语言进行程序设计的基础类。

    Java多线程系列目录(共43篇)
    (一) 基础篇

    1. Java多线程系列–“基础篇”01之 基本概念

    2. Java多线程系列–“基础篇”02之 常用的实现多线程的两种方式

    3. Java多线程系列–“基础篇”03之 Thread中start()和run()的区别

    4. Java多线程系列–“基础篇”04之 synchronized关键字

    5. Java多线程系列–“基础篇”05之 线程等待与唤醒

    6. Java多线程系列–“基础篇”06之 线程让步

    7. Java多线程系列–“基础篇”07之 线程休眠

    8. Java多线程系列–“基础篇”08之 join()

    9. Java多线程系列–“基础篇”09之 interrupt()和线程终止方式

    10. Java多线程系列–“基础篇”10之 线程优先级和守护线程

    11. Java多线程系列–“基础篇”11之 生产消费者问题

    (二) JUC原子类

    1. Java多线程系列–“JUC原子类”01之 框架

    2. Java多线程系列–“JUC原子类”02之 AtomicLong原子类

    3. Java多线程系列–“JUC原子类”03之 AtomicLongArray原子类

    4. Java多线程系列–“JUC原子类”04之 AtomicReference原子类

    5. Java多线程系列–“JUC原子类”05之 AtomicLongFieldUpdater原子类

      (三) JUC锁

    6. Java多线程系列–“JUC锁”01之 框架

    7. Java多线程系列–“JUC锁”02之 互斥锁ReentrantLock

    8. Java多线程系列–“JUC锁”03之 公平锁(一)

    9. Java多线程系列–“JUC锁”04之 公平锁(二)

    10. Java多线程系列–“JUC锁”05之 非公平锁

    11. Java多线程系列–“JUC锁”06之 Condition条件

    12. Java多线程系列–“JUC锁”07之 LockSupport

    13. Java多线程系列–“JUC锁”08之 共享锁和ReentrantReadWriteLock

    14. Java多线程系列–“JUC锁”09之 CountDownLatch原理和示例

    15. Java多线程系列–“JUC锁”10之 CyclicBarrier原理和示例

    16. Java多线程系列–“JUC锁”11之 Semaphore信号量的原理和示例

    (四) JUC集合

    1. Java多线程系列–“JUC集合”01之 框架

    2. Java多线程系列–“JUC集合”02之 CopyOnWriteArrayList

    3. Java多线程系列–“JUC集合”03之 CopyOnWriteArraySet

    4. Java多线程系列–“JUC集合”04之 ConcurrentHashMap

    5. Java多线程系列–“JUC集合”05之 ConcurrentSkipListMap

    6. Java多线程系列–“JUC集合”06之 ConcurrentSkipListSet

    7. Java多线程系列–“JUC集合”07之 ArrayBlockingQueue

    8. Java多线程系列–“JUC集合”08之 LinkedBlockingQueue

    9. Java多线程系列–“JUC集合”09之 LinkedBlockingDeque

    10. Java多线程系列–“JUC集合”10之 ConcurrentLinkedQueue

    (五) JUC线程池

    1. Java多线程系列–“JUC线程池”01之 线程池架构

    2. Java多线程系列–“JUC线程池”02之 线程池原理(一)

    3. Java多线程系列–“JUC线程池”03之 线程池原理(二)

    4. Java多线程系列–“JUC线程池”04之 线程池原理(三)

    5. Java多线程系列–“JUC线程池”05之 线程池原理(四)

    6. Java多线程系列–“JUC线程池”06之 Callable和Future

    6、java.math

    提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类

    Java中Math类的常用方法

    7、java.net

    为实现网络应用程序提供类。

    Android网络编程

    Android网络编程(一)HTTP协议原理
    Android网络编程(二)HttpClient与HttpURLConnection
    Android网络编程(三)Volley用法全解析
    Android网络编程(四)从源码解析volley
    Android网络编程(五)OkHttp2.x用法全解析
    Android网络编程(六)OkHttp3用法全解析
    Android网络编程(七)源码解析OkHttp前篇[请求网络]
    Android网络编程(八)源码解析OkHttp后篇[复用连接池]
    Android网络编程(九)Retrofit2前篇[基本使用]
    Android网络编程(十)Retrofit2后篇[注解]
    Android网络编程(十一)源码解析Retrofit

    8、java.nio

    定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。

    Java NIO 系列教程

    Java NIO 教程
    Java NIO概述
    Java NIO Channel
    Java NIO Buffer
    Java NIO Scatter / Gather
    Java NIO 通道之间的数据传输
    Java NIO Selector
    Java NIO FileChannel
    Java NIO SocketChannel
    Java NIO ServerSocketChannel
    Java NIO 非阻塞式服务器
    Java NIO DataGramChannel
    Java NIO Pipe
    Java NIO 与IO
    Java NIO Path (待翻译)
    Java NIO Files (待翻译)
    Java NIO AsynchronousFileChannel (待翻译)

    9、java.rmi

    提供 RMI 包。RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。

    Java RMI 入门指南

    10、java.security

    为安全框架提供类和接口。

    深入理解Android之Java Security第一部分
    深入理解Android之Java Security第二部分(Final)

    11、java.sql

    提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。

    12、java.text

    提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。

    13、java.time

    包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。

    Java Date and Time系列

    Java Date and Time系列(一)- 概述
    Java Date and Time系列(二)- System.currentTimeMillis()介绍
    Java Date and Time系列(三)- java.util.Date介绍
    Java Date and Time系列(四)- java.sql.Date/java.sql.Time/java.sql.Timestamp介绍
    Java Date and Time系列(五)- java.util.Calendar/java.util.GregorianCalendar介绍
    Java Date and Time系列(六)- java.util.TimeZone介绍
    Java Date and Time系列(七)- java.text.SimpleDateFormat介绍

    14、java.util

    包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。

    Java 集合系列目录(Category)
    下面是最近总结的Java集合(JDK1.6.0_45)相关文章的目录。

    1. Java 集合系列01之 总体框架

    2. Java 集合系列02之 Collection架构

    3. Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例

    4. Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)

    5. Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例

    6. Java 集合系列06之 Vector详细介绍(源码解析)和使用示例

    7. Java 集合系列07之 Stack详细介绍(源码解析)和使用示例

    8. Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)

    9. Java 集合系列09之 Map架构

    10. Java 集合系列10之 HashMap详细介绍(源码解析)和使用示例

    11. Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例

    12. Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例

    13. Java 集合系列13之 WeakHashMap详细介绍(源码解析)和使用示例

    14. Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)

    15. Java 集合系列15之 Set架构

    16. Java 集合系列16之 HashSet详细介绍(源码解析)和使用示例

    17. Java 集合系列17之 TreeSet详细介绍(源码解析)和使用示例

    18. Java 集合系列18之 Iterator和Enumeration比较

    拓展:
    skywang的博客目录(持续更新中…)

    展开全文
  • 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-07-05 14:37:06
    一些内容认为是必须掌握的,否则不可以熟练运用java,也不会使用就很难办了。 1、java.lang包下的80%以上的类的功能的灵活运用。 2、java.util包下的80%以上的类的灵活运用,特别是集合类体系、正规表达式、时间...
    一些内容认为是必须掌握的,否则不可以熟练运用java,也不会使用就很难办了。 

    1、java.lang包下的80%以上的类的功能的灵活运用。 

    2、java.util包下的80%以上的类的灵活运用,特别是集合类体系、正规表达式、时间、属性、和Timer. 

    3、java.io包下的60%以上的类的使用,理解IO体系的基于管道模型的设计思路以及常用IO类的特性和使用场合。 

    4、java.math包下的100%的内容。 

    5、java.net包下的60%以上的内容,对各个类的功能比较熟悉。 

    6、java.text包下的60%以上的内容,特别是各种格式化类。 

    7、熟练运用JDBC. 

    8、java.security包下40%以上的内容,如果对于安全没有接触的话根本就不可能掌握java. 

    9、AWT的基本内容,包括各种组件事件、监听器、布局管理器、常用组件、打印。 

    10、Swing的基本内容,和AWT的要求类似。 

    11、XML处理,熟悉SAX、DOM以及JDOM的优缺点并且能够使用其中的一种完成XML的解析及内容处理。
    展开全文
  • 你比其他Java程序员更优秀的原因,是你学习了这篇课程! 本篇涵盖了Java的主要语法和核心概念: (1)异常,抽象类,接口等语法概念 (2)装箱拆箱,反射,线程、同步与通知,等Java里的基本机制 (3)Java文档及...
  • Java8 Streams API 学习总结

    主要的使用/处理对象(数据源):

    数组、列表等集合(Collection)对象,比如:
    代码1:

    // 1. Individual values
    Stream stream = Stream.of("a", "b", "c");
    
    // 2. Arrays
    String [] strArray = new String[] {"a", "b", "c"};
    stream = Stream.of(strArray);
    stream = Arrays.stream(strArray);
    
    // 3. Collections
    List<String> list = Arrays.asList(strArray);
    stream = list.stream();
    
    // 4. Int Stream
    IntStream.of(new int[]{1, 2, 3}).forEach(System.out::println);
    IntStream.range(1, 3).forEach(System.out::println);
    IntStream.rangeClosed(1, 3).forEach(System.out::println);

    不过,Steam的数据源本身可以是无限的,比如Stream Generator、IO channel(例如java.io.BufferedReader.lines())等等……

    Stream的主要功能:

    • 聚合操作(aggregate operation)
    • 大批量数据操作 (bulk data operation)

    例如:
    - 求平均值
    - 求最大值
    - 筛选(去除无效记录、按条件过滤、等)
    - 排序

    这些操作不会修改原来的Stream,而是生成新的;并且支持多线程并行处理。
    一个简单的例子:
    代码2:

    List<Integer> transactionsIds =
        transactions.parallelStream(). //支持并行操作的流
        filter(t -> t.getType() == Transaction.GROCERY). //筛选
        sorted(comparing(Transaction::getValue).reversed()). //排序
        map(Transaction::getId). //映射(投影)操作,只选取id
        collect(toList()); //生成一个新的集合

    简单地说,对Stream的使用就是实现一个 filter-map-reduce 过程,产生一个最终结果,或者导致一个副作用(side effect)。

    Stream和Iterator的异同:

    相同之处:

    • 都是用来遍历和处理数组和列表等集合
    • 都只能是单向的遍历

    不同之处:

    • Stream可以并行地利用多线程操作;而Iterator只能单线程操作
    • Stream支持的数据源比Iterator多

    Stream转换为其他数据结构的方法:

    代码3:

    // 1. Array
    String[] strArray1 = stream.toArray(String[]::new);
    
    // 2. Collection
    List<String> list1 = stream.collect(Collectors.toList());
    List<String> list2 = stream.collect(Collectors.toCollection(ArrayList::new));
    Set set1 = stream.collect(Collectors.toSet());
    Stack stack1 = stream.collect(Collectors.toCollection(Stack::new));
    
    // 3. String
    String str = stream.collect(Collectors.joining()).toString();
    
    // 4. toMap
    Map<Integer, Integer> map = stream.collect(
        Collectors.toMap(
            e -> e.get("key"),
            e -> e.get("value")
        )
    );

    可见,主要是toArray()和collect()两个方法。

    Stream的操作类型:

    • Intermediate: 一个流可以后面跟随零个或多个 intermediate 操作。其目的主要是打开流,做出某种程度的数据映射/过滤,然后返回一个新的流,交给下一个操作使用。这类操作都是惰性化的(lazy),就是说,仅仅调用到这类方法,并没有真正开始流的遍历。
    • Terminal: 一个流只能有一个 terminal 操作,当这个操作执行后,流就被使用“光”了,无法再被操作。所以这必定是流的最后一个操作。Terminal 操作的执行,才会真正开始流的遍历,并且会生成一个结果,或者一个 side effect。
    • short-circuiting:
      • 对于一个intermediate操作,如果它接受的是一个无限大(infinite/unbounded)的 Stream,但返回一个有限的新 Stream。
      • 对于一个terminal操作,如果它接受的是一个无限大的Stream,但能在有限的时间计算出结果。

    那么,对一个Stream进行多次Intermediate操作,是不是需要执行多次for循环?
    不是的。因为Intermediate操作是lazy的,多个这样的操作只会在Terminal操作的时候才融合起来,在一次循环中就可以完成了。

    常见的操作可以归类:

    • Intermediate:
      map (mapToInt, flatMap 等)、 filter、 distinct、 sorted、 peek、 limit、 skip、 parallel、 sequential、 unordered
    • Terminal:
      forEach、 forEachOrdered、 toArray、 reduce、 collect、 min、 max、 count、 anyMatch、 allMatch、 noneMatch、 findFirst、 findAny、 iterator
    • Short-circuiting:
      anyMatch、 allMatch、 noneMatch、 findFirst、 findAny、 limit
    各种操作的实例:

    map/flatMap: 映射、投影
    代码4

    //字符串列表转换成大写:
    List<String> output = wordList.stream().
        map(String::toUpperCase).
        collect(Collectors.toList());
    
    //整数转换为平方数:
    List<Integer> nums = Arrays.asList(1, 2, 3, 4);
    List<Integer> squareNums = nums.stream().
        map(n -> n * n).
        collect(Collectors.toList());
    
    //把多个List合并成一个List:
    Stream<List<Integer>> inputStream = Stream.of(
        Arrays.asList(1),
        Arrays.asList(2, 3),
        Arrays.asList(4, 5, 6)
     );
    Stream<Integer> outputStream = inputStream.
        flatMap((childList) -> childList.stream());

    filter: 筛选、过滤
    代码5

    //只留下偶数:
    Integer[] sixNums = {1, 2, 3, 4, 5, 6};
    Integer[] evens =
        Stream.of(sixNums).filter(n -> n%2 == 0).toArray(Integer[]::new);
    
    //从文件中获取所有单词
    List<String> output = reader.lines(). //数据来源,可以是文件的reader
        flatMap(line -> Stream.of(line.split(REGEXP))). //对每行拆分出单词
        filter(word -> word.length() > 0). //过滤掉无效的单词
        collect(Collectors.toList());

    forEach: 接收一个Lambda表达式,然后在Stream的每一个元素上执行该表达式
    代码6

    //从花名册中筛选出男性然后打印出来
    roster.stream()
        .filter(p -> p.getGender() == Person.Sex.MALE)
        .forEach(p -> System.out.println(p.getName()));

    注意: forEach是terminal操作,如果要对Stream做多次输出操作,可以使用peek(偷窥)代替:
    代码7

    //peek对每个元素执行操作并返回一个新的 Stream
    Stream.of("one", "two", "three", "four")
     .filter(e -> e.length() > 3)
     .peek(e -> System.out.println("Filtered value: " + e))
     .map(String::toUpperCase)
     .peek(e -> System.out.println("Mapped value: " + e))
     .collect(Collectors.toList());

    reduce: 把Stream中的元素组合起来
      它接收一个起始值(种子,第一个参数),然后依照运算规则(BinaryOperator),和前面 Stream 的第一个、第二个、第n个元素组合。字符串拼接、数值的sum、min、max、average都是特殊的reduce。例如Stream的sum就相当于
      Integer sum = integers.reduce(0, (a, b) -> a+b); 或
      Integer sum = integers.reduce(0, Integer::sum);
      也有没有起始值的情况,这时会把Stream的前面两个元素组合起来,返回的是Optional对象。
    代码8

    // 字符串连接,concat = "ABCD"
    String concat = Stream.of("A", "B", "C", "D").reduce("", String::concat); 
    
    // 求最小值,minValue = -3.0
    double minValue = Stream.of(-1.5, 1.0, -3.0, -2.0).reduce(Double.MAX_VALUE, Double::min); 
    
    // 求和,sumValue = 10, 有起始值
    int sumValue = Stream.of(1, 2, 3, 4).reduce(0, Integer::sum);
    
    // 求和,sumValue = 10, 无起始值,这里reduce返回的是Optional,需要get()一下
    sumValue = Stream.of(1, 2, 3, 4).reduce(Integer::sum).get(); 
    
    // 过滤,字符串连接,concat = "ace"
    concat = Stream.of("a", "B", "c", "D", "e", "F").
     filter(x -> x.compareTo("Z") > 0).
     reduce("", String::concat);

    limit/skip: 返回Stream的前面n个元素 / 扔掉前n个元素
    代码9

    List<String> personList2 = persons.stream()
        .map(Person::getName)
        .limit(10)
        .skip(3)
        .collect(Collectors.toList());
    System.out.println(personList2);

    sorted: 排序
    代码10

    List<Person> personList2 = persons.stream()
        .limit(2)
        .sorted((p1, p2)->p1.getName().compareTo(p2.getName()))
        .collect(Collectors.toList());
    System.out.println(personList2);

    min/max/distinct 找出最小、最大、排除重复
    代码11

    //找出最长的一行:
    BufferedReader br = new BufferedReader(new FileReader("c:\\SUService.log"));
    int longest = br.lines().
     mapToInt(String::length).
     max().
     getAsInt();
    br.close();
    System.out.println(longest);
    
    // 找出全文的单词,合并重复的,转小写,并排序
    List<String> words = br.lines().
     flatMap(line -> Stream.of(line.split(" "))).
     filter(word -> word.length() > 0).
     map(String::toLowerCase).
     distinct().
     sorted().
     collect(Collectors.toList());
    br.close();
    System.out.println(words);

    match:allMatch/anyMatch/noneMatch 根据是否match返回true/false
    代码12

    boolean isAllAdult = persons.stream().
        allMatch(p -> p.getAge() > 18);
    
    boolean isThereAnyChild = persons.stream().
        anyMatch(p -> p.getAge() < 12);
    其他高级操作:

    generate/Supplier/iterate 生成一个流:
    代码13

    //生成100~100之间的随机数:
    IntStream.generate(() -> (int) (System.nanoTime() % 100)).
        limit(10).
        forEach(System.out::println);
    
    //生成一个有10个Person对象的流
    Stream.generate(new PersonSupplier()).
        limit(10).
        forEach(p -> System.out.println(p.getName() + ", " + p.getAge()));
    
    private class PersonSupplier implements Supplier<Person> {
        private int index = 0;
        private Random random = new Random();
    
        @Override
        public Person get() {
            return new Person(index++, "StormTestUser" + index, random.nextInt(100));
        }
    }
    
    //生成一个等差数列
    Stream.iterate(0, n -> n + 3).limit(10). forEach(x -> System.out.print(x + " "));

    groupingBy/partitioningBy 分组/归组:
    代码14

    //按照年龄归组:
    Map<Integer, List<Person>> personGroups = 
        Stream.generate(new PersonSupplier()).
        limit(100).
        collect(Collectors.groupingBy(Person::getAge));
    
    //按照是否小于18岁进行分组:
    Map<Boolean, List<Person>> children = 
        Stream.generate(new PersonSupplier()).
        limit(100).
        collect(Collectors.partitioningBy(p -> p.getAge() < 18));
    展开全文
  • JAVA API学习(一)

    2018-10-06 19:45:48
    完成一个 java application应用程序,可以接收用户通过键盘输入的文本,并输出此段文本字符的个数。 主要方法: 通过 Scanner 类来获取用户的输入。 通过length获取字符串长度。 程序: import java.util...

    要求:

    • 完成一个 java application应用程序,可以接收用户通过键盘输入的文本,并输出此段文本字符的个数。

    主要方法:

    • 通过 Scanner 类来获取用户的输入。
    • 通过length获取字符串长度。

    程序:

    import java.util.Scanner;
    class CountInput {
    	public static void main(String[] args) {
    		
    		for( ; ; ) {  
    			Scanner scan = new Scanner(System.in);//声明Scanner对象,等待输入
    			System.out.println("请输入:");
    			String str = scan.nextLine();//读取字符
    			if (str.equals("byebye")) //判断输入byebye则退出程序
    				System.exit(0);
    			System.out.println("有 " + str.length() + "个字符");
    			
    		}
    		
    	}
    }
    

    运行结果:
    在这里插入图片描述

    展开全文
  • java使用JInvoke调用windows API 使用jinvoke调用windowsAPI。jna使用比较麻烦,需要写c代码和参数转换,jinvoke的使用就像jdk中的包一样。  官网使用参考:...
  • 由于最近要做空间分析,所以抽时间学习一下geometry-api-java ,本文没有具体做翻译和实践,主要是给出一个参考目录,对接下来所要学习的内容有一个全局把控,好了,看一遍,开始学习之旅吧! Esri Java ...
  • JAVA API 学习

    2017-09-07 22:05:01
    1.下载API 2.连接API和ECLIPSE 3.产看API以Sting为例 4.查找方式: ①只知道类名(在类列表中按字母顺序查看,这里都没有便捷搜索功能。。。) 5.String具体解释: 汉化帮助很大 在线API解释器可以协同工作 ...
  • JAVAAPI学习之Calendar类

    2012-10-12 19:32:45
    以下是Calendar类中的常用...import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * * @author yjmao * @deprecated Calendar的常用方法和常用属性小结 * @version V1.0
  • JAVA常用API整理

    2018-10-22 23:34:42
    一、JAVA常用API java.lang.Math 提供sin, cos, tan, exp, log, log10 等类方法,PI和E等类字段 java.lang.String(StringBuilder线程不安全,StringBuffer线程安全) char charAt(int index) 返回给定位置的...
  • Java API 最佳开发实践

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

    2019-08-01 00:47:27
    Java API中文版下载2006-12-20 21:27Java API中文版下载Java API Docs是学习和使用Java语言中最经常使用的参考资料之一,完整的Java API文档中文版文档共包括32个类库。但是长期以来此文档只有英文版和日文版,对于...
  • java常用API

    2018-06-09 10:39:16
    说明: 今天,无意间翻看手机便签的时候,看到以前学习java的时候,总结的一些知识点。不是什么干货,只是对于一些知识点的理解和认识。展示出来,一方面,是为了记录,一个自己在这条路上的学习和成长。另一方面,...
  • Java API 基础

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

    2018-08-18 16:30:31
    Java API是JDK所提供的使用类,这些类将底层的代码给封装起来了。Object类是java语言中的根类,它所描述的所有方法子类都可以使用,所有类在创建对象的时候,最终找的父类就是Object。在Objec类中,最常见的就是...
  • KETTLE JAVA API学习

    2007-05-24 15:57:00
    /**KETTLE是一个开源的ETL工具,运行本程序,应该确保在SQL Server中有相应数据库asop2,asop3,在asop2中有表department_user,但在表 asop3中有没有表test2均行。...另外,应该在spoon.bat中打开后建立存储库与asop2及...
  • 1. 前言相信很多java开发者在java关于日期时间的操作都不陌生,但在java8开始,产生了有关日期和时间相关操作的新的API。博主在此强烈建议各位java开发者在今后的代码编写过程中,若遇到时间日期相关操作,都用上...
  • 之前写过一篇TensorFlow Java 环境的搭建 TensorFlow Java+eclipse下环境搭建,今天看看TensorFlow Java API 的简单说明 和操作。 TensorFlow是什么 由 Google 开源,是一个深度学习库, 是一套使用数据流图 (data ...
  • javaapi文档的阅读技巧:  JavaAPI文档是SDK说明文件的一部分,是具体告诉你上述内容的使用方法的文档,是Java程序开发的最好帮手。当你从Sun Microsystems公司的网站...
1 2 3 4 5 ... 20
收藏数 303,440
精华内容 121,376