当前位置:   article > 正文

java jdk1.8常用API(应用程序编程接口:有关字符串,数组操作工具,常用集合,图形化界面(按钮,弹窗))合集_jdk api

jdk api

此篇文章参考于博主袁袁袁袁满关与Java核心类库之(常用API、字符串类、集合类、泛型)的文章。所有代码截图皆由个人编写。此文章仅仅用于交流学习


1 API的基本概念

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

 ps:我的个人理解是Sun Microsystems公司已经把程序员平时最常使用的功能,例如数组排序,数学基本运算,网络爬虫等等提前写好,这样普通用户就可以直接拿来使用而减少了编写重复工具类的时间,很大概率提高了程序工程师的工作效率。

 ps:我这边建议使用idea编译器进行程序的编写,目前社区版是免费的。我认为idea具有强大的整合能力:比如Git、Maven、Spring等支持,提示功能的快速、便捷,提示功能的范围比较广,好用的快捷键和代码模板,精准搜索等等,可以在原来的基础上更大幅度提高程序员的编程效率,也更容易找到bug。本文所有的程序代码皆由idea编译器实现(由于idea是自动导包的,所以本文暂不介绍导包内容)。

1.1 Math类(有关数学计算)

  • Math类的使用不需要创建对象进行调用,因为他所有的成员变量及其方法都是由静态修饰符(static)修饰的,所以通过类名就可以直接调用里面的方法。
  • 常用的Math类方法

    1de3b6e1380447a988df4cf97ebf9f29.jpeg

 接下来我将用代码形式逐一调用这些方法并实现其功能。

90767a6362b6489e9bd4b437d3ef826e.png

 ps:通过图片我们可以非常清楚的看到当我们键入Math类时强大的idea立即就在后面显示了Math中所创建的方法。

f573d795661b42f5b02c2f8bfff41167.png

ps:我认为Math中的random非常适合用于一些随机概率功能的实现,如抽奖等功能。而其他方法主要用于编程当中遇到的数学计算问题。当然这些方法都不需要去死记硬背,都是背不下来的,只要记住类的名称然后通过API文档查询,熟能生巧。

2.1 System类(有关系统)

  • System类同样是静态修饰,不需要创建对象而直接用类名进行调用
  • 常用的方法

2f3a6337878a4abb8a267e0a0e74aa40.jpeg

  •  代码演示

 813c82708f644ca4809851069bd7cbb5.png

ps:这个是System中的exit方法,可以看到本来应该打印一个"mjk是大帅哥",而现在只打印了一个"mjk是 ",这就是因为exit方法中止了JVM虚拟机,导致后面一句没有打印出来。

d1cf4baabaa8426f81e20c9e8326bb3d.png

 ps:这个方法所输出的时间是一个long类型的数,他输出的数字由c语言的生日和现在的时间的差值,所以下面要通过减去共同的数字从而到达计算程序运行时间的目的。这个方法有助于程序员优化自己的程序结构,尽量用最短的耗时去实现相同的功能,从而达到系统优化的目的。

3.1 Arrays(用于数组的各种操作)

  • 构造方法用private私有化修饰符修饰(可以直接使用类名调用方法)
  • 成员用public static 修饰
  • 主要用于实现与冒泡排序相同的功能
  • 常用方法

 1ecd0be61d4f491d8d7bdf3fe55e2e98.jpeg

  •  代码实现

d992ed0fd783484fae9a02cc34ce6b3d.png

 ps:使用Arrays中的sort方法可以实现数组的从小到大,从大到小排序,默认是从小到大,从大到小需要重写compare方法(o1 - o2就是从小到大排序, o2 - o1就是从大到小排序。)打印数组的方法名是Tostring。

4.1 Date类(有关时期类)

  • 构造方法

 ee8fcf5a30d3448883c4c854e2b158c0.jpeg

  •  常用方法

 dd218009624440fd965d8c319157420f.jpeg

 

  •  代码实现

 ps:创建对象的名字一般由类名的每个英文单词的首字母组成。

7ab4b025beb44c49b36f8f2e4c3b3ef8.png

 ps:c语言的生日是1970年1月1日00:00:00。

4.2 SimpleDateFormat类(日期格式化及解析)

  • 可以对日期进行指定时间的操作。
  • 字母对应:y-年;M-月;d-日;H-时;m-分;s-秒;E-星期几;a-上午/下午。
  • 构造方法

 6b76bb39c48e4b6bbf8cad88ed456f36.jpeg

  •  常用方法

 e8ff6ff4ea74459b90fe0badfa8964b7.jpeg

  •  代码实现(按照图片顺序)

 0171c1881ba84b80b4585bd38d8bcb9c.png

 ps:直接调用parse方法代码会报错,需要在主方法中添加接口ParseExeption。这个类非常适合用来进行秒杀等活动日期时间等数据的计算及判定。

4.3Calendar类(代表系统此刻日期对于的日历对象)

  • Calendar类被abstract抽象修饰符修饰,所以不能直接创建对象。
  • 常用方法

 c5bf5a9ae9bb4ac195c1cec512995540.jpeg

  •  代码实现

93c2ab168cad458f86d92721c36b5d80.png

 ps:要注意Calendar是一个抽象类,不可以直接创建新的对象。

5.1 String类(字符串对象)

  • 构造方法

 7820b90da5674598acfec3934f883583.jpeg

  • 字符串的比较
  • 当使用==进行比较时
  1. 基本类型:比较的是数据值是否相等。
  2. 引用类型:比较的是地址值是否相等。
  •  当进行字符串的对象比较时用equals()方法。
  • 通过索引输出字符串中的元素是字符串名.charAt(索引)。

 ps:当进行用户登录时可以利用equals方法判断用户输入的数据与系统中存储的正确数据是否一致,一致则登录成功。键盘输入的类是Scanner。

5.2 StringBuilder(可变字符串)

  • 构造方法

public StringBuilder()              创建一个空白字符串对象

public StringBuilder()               创建一个有内容的字符串对象

  • 常用方法

 4d89a5720e5c484d89eecb50fccb2fe8.jpeg

  • 代码实现 

 4428639aa9e8436fae85e780eed79b6f.png

ps:将字符串对象反转,添加元素之后依然是一个对象而不是一个字符串,需要利用其它方法将StringBuilder的对象转回字符串,下面就会说到。

5.3 StringBuilder 与 String 的互相转换

这里将StringBuilder的对象暂时设为sb,则sb这个对要转换为字符串的操作就是sb.toString。

将字符串转换成StringBuilder对象前面已经有说过,直接在创建对象时通过有参构造直接导入字符串。

6 五种常用的集合 

  • 集合是用于存储对象的容器,集合的长度是可变的而数组的长度是固定不变的需要人为的去添加,所以集合比数组更加的灵活。注意点:集合中不可以存储基本数据类型值
  • 集合的构造格式

 集合类名<引用数据类型>  集合名(自己取的名字)  = new 集合类名<>();

以ArrayList为例子:ArrayList<Integer>   =  new ArrayList<>();

6.1 ArrayList(最常用的集合类)

  • 特点:底层是动态数组,元素是有序可重复的有索引的,查询快增删慢。
  • 添加方法

 34838eae0dec47fc83ea95bb6620c2f8.jpeg

  •  代码实现

 a4cdcb138a9846a08b8f17d436f86fb0.png

  •  常用方法(所有集合通用)

67ddfa855e824897840b4115d49bfdb1.jpeg

  •  代码实现

8e6809b6dc2c4e48ba7be3772f3a9906.png 6.2 LinkedList

  • 特点:添加的元素有序,可重复,有索引。查询慢,增删快。

ps:LinkedList跟ArrayList的构造方法相同与常用方法也大致相同,不过LinkedList有特殊的增删查改第一个元素和最后一个元素的独有方法,因为其底层原理是链表所以需要一个个的查询,查询慢增删快。

6.3 Vector

  • 这个集合已经逐渐被淘汰所以这里不进行讲解。

7 Set集合

  • 和list最本质的区别就是list集合中元素是可重复的,而Set集合中是不可重复的,而且Set集合中没用带索引的方法。

7.1 HashSet 

特点:添加的元素是无序的,不重复的,无索引的。

注意:用到HashSet这个集合必须在对象中重写toString()方发和equals()方法,因为集合底层是哈希表,不重写的话会报错。因为HashSet是无索引的,所以是不能通过索引进行增删查改的,也不可以用普通for循环进行遍历,需要使用加强for循环或者迭代器listterator中的hasNext()和next()方法。

下面是利用迭代器与加强for循环HashSet的代码实现,其他所有集合同样也可以使用这些方法进行遍历。

ps:在创建集合时只可以用对象作为引用数据类型。我这下面的代码用例中先创建了一个Student类然后生成一个最基本的javabean,再在当中重写HashSet当中需要的equals()方法及toStirng方法,在测试类中引用数据类型中就是用的Student。

  • 代码实现

 25d7f3240cd947a5b05be954d4631e75.png

 ps:在Student类中重写的haseCode()及equals()方法。

2a022251c28c442bb6eb773401e9e8f3.png

ps:增强for循环及使用迭代器遍历集合。

ps:LinkedHashSet集合与HashSet集合非常相似,只不过LinkedHashSet是有序的,而HashSet是无序的,LinkedHashSet的底层原理是哈希表加链表。

ps:TreeSet涉及红黑树相关知识,这边仅仅进行代码展示,读者自行理解

3688d6b2bbdf46d8819495da5bc47ccf.png

 8.1 Runtime类(表示虚拟机的运行环境)

  • 构造方法

Runtime r = Runtime.getRuntime();

ps:要在主方法后加上throws IOException。

对象名.exec("shutdow -s -t ");

ps:这个是关机指令,exec的括号里面填的是command(命令) -s 1分钟之内关机 -s - t指定时间  取消关机指令。(快用这个方法让你的好基友的电脑关闭吧!ps:-a是取消关机)

63ddfa5c52e943cbae6abe6504ac375b.png

 

9.1 JFrame类(初始化界面)

9.2 JMenu类(按钮)

9.3 JDialog类(弹窗)

9.4 MouseListener(鼠标监听)

9.5 Jpanel(画笔工具)

emm这五个现在先晾在这里以后再来补充

大概给个实际效果参考一下

  • 界面

fc463589adb94b91aee23bfc592e10a3.png

 

  •  弹窗(点击注册按钮之后的,包含了鼠标监听)

6dce3090223b472e9ebf3d9d53cf1d54.png

  • 按钮

aeb5cb3047f8442c80af3b8dd9bb326a.png 

  1.  感谢食堂的饭让我能有力气打字
  2.  感谢我的电脑没用像上次一样文件夹突然打不开
  3. 感谢xuexueTV在后方一直支持着我
  4. 感谢与曾大帅的互相学习与进步。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/629557
推荐阅读
相关标签
  

闽ICP备14008679号