java.util java.util被称为java工具包,里面包含大部分的工具,包括:
java.util.ArrayList
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 package api;import java.util.ArrayList;import java.util.Iterator;import java.util.ListIterator;public class ArrayList1 { @SuppressWarnings("unchecked") public static void main (String[] args) { ArrayList<String> list1 = new ArrayList<String>(); ArrayList<String> list2 = new ArrayList<String>(10 ); ArrayList<String> list3 = new ArrayList<String>(); list1.ensureCapacity(40 ); System.out.println(list1.size()); list1.add("zero" ); list2.add("one" ); list1.add("two" ); list1.addAll(list2); list1.add(1 ,"three" ); list3 = (ArrayList<String>) list1.clone(); list3.remove(1 ); list3.add("four" ); list1.add("five" ); list1.addAll(3 ,list2); list1.addAll(list3); list1.retainAll(list3); list1.set(0 , "one" ); int length = list1.size(); boolean m = list1.contains("zero" ); System.out.println("list1 contains ? " + m); boolean n = list1.containsAll(list3); System.out.println("list1 contans ?" + n); System.out.println(list1.get(1 )); System.out.println("indexOf :" + list1.indexOf("one" )); System.out.println("isEmpty:" + list2.isEmpty()); System.out.println("sublist:" + list1.subList(2 , 4 )); Iterator<String> ite = list1.iterator(); String str="" ; while (ite.hasNext()) { str += ite.next(); } System.out.println("iterator: " + str); System.out.println("lastIndexOf :" + list1.lastIndexOf("one" )); boolean k = true ; if (list1.indexOf("one" ) != list1.lastIndexOf("one" )) { k = false ; } System.out.println("once?" + k); ListIterator<String> ite2 = list1.listIterator(5 ); String str2 = " " ; while (ite2.hasNext()) { str2 += ite2.next(); } System.out.println("str2: " + str2); String [] a = new String[list1.size()]; list1.toArray(a); String [] b = new String[list2.size()]; list2.toArray(b); list1.trimToSize(); list2.trimToSize(); list3.trimToSize(); System.out.println("size of list1: " + list1.size() + "size of list2: " + list2.size() + "size of list3: " + list3.size()); System.out.println("list1:" + list1); System.out.println("list2:" + list2); System.out.println("list3:" + list3); System.out.println("list1:" ); for (String s:a) { System.out.println(s); } System.out.println(); System.out.println("list2:" ); for (String f: b) { System.out.println(f); } } }
java.util.Random Random类作为java中用于产生随机数的类,如new Random(10),10是种子数。
注意:Random的一个特点是:相同种子数的Random对象,对应相同次数产生的随机数是完全相同的。
1)Random生成随机数
1 2 3 4 5 Random random = new Random(); for (int i = 0 ; i<=4 ; i++ ) { System.out.println(random.nexInt(10 )); }
2)math.random()生成的是一个伪随机数,何为伪随机数,这里java是以当前系统时间的相关数字作为种子数,按照特定复杂算法生成的,其实它生成的大量随机数是线性均匀分布的,黑客是完全可能通过返回的大量随机数结果破解种子数的,所以它并不是真正的随机,叫伪随机数。由此我们可以知道通过计算机生成一个真随机数几乎是不可能的,因为最终的输出结果都是依赖算法程序的,这些算法程序本身就是固定的,我们只能通过更复杂的算法不断优化,让它无限趋近于真随机数,但不绝对。 案例:
1 2 3 4 for (int i = 0 ; i < 100 ; i++) { System.out.println((int )((Math.random()*9 +1 )*n)); }
java.util.Date Date类的基本用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import java.text.SimpleDateFormat;import java.util.ConcurrentModificationException;import java.util.Date;public class Test2 { public static void main (String[] args) throws Exception { Date date = new Date(); System.out.println(date); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd" ); String time = "2022-05-17" ; Date date1 = (Date)simpleDateFormat.parse(time); System.out.println(date1); String dateStr = simpleDateFormat.format(date1); System.out.println(dateStr); } }
java.util.Calendar 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH);int day = c.get(Calendar.DAY_OF_MONTH);int hour = c.get(Calendar.HOUR_OF_DAY);int min = c.get(Calendar.MINUTE);int sec = c.get(Calendar.SECOND);int w = c.get(Calendar.DAY_OF_WEEK);import javax.xml.crypto.Data;import java.util.Date;import java.util.Calendar;import java.util.Random;public calss Test1 { public static void main (String[] args) { Calendar calendar = Calendar.getInstance(); Date date = new Date(); calendar.setTime(date); System.out.println(calendar.get(Calendar.YEAR)); calendar.add(Calendar.YEAR,1 ); System.out.println(calendar.get(Calendar.YEAR)); } }
jdk1.8的时间: 一、jdk8与之前的日期和时间处理类的不同:
Java的java.util.Date和java.util.Calendar类易用性差,不支持时区,并且是可变的,也就意味着他们都不是线程安全的; 用于格式化日期的类DateFormat被放在java.text包中,它是一个抽象类,所以我们需要实例化一个SimpleDateFormat对象来处理日期格式化,并且DateFormat也是非线程安全,这意味着如果你在多线程程序中调用同一个DateFormat对象,会得到意想不到的结果。 对日期的计算方式繁琐,而且容易出错,因为月份是从0开始的,这意味着从Calendar中获取的月份需要加一才能表示当前月份 由于以上这些问题,出现了一些三方的日期处理框架,例如Joda-Time,data4j等开源项目 二、Java 8日期/时间类 Java 8的日期和时间类包含LocalDate、LocalTime、Instant、Duration以及Period,这些类都包含在java.time包中。
java.lang java.lang.String java.swing Swing 是一个为Java设计的GUI工具包。Swing是JAVA基础类的一部分。Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。这意味着你可以在任意平台上使用JAVA支持的任意面板。轻量级组件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。
javax.swing.JPanel(面板) JPanel,面板。是在开发中使用频率非常高的一般轻量级面板容器组件。
JPanel常用的构造方法 1 2 3 4 JPanel() JPanel(LayoutManager layout)
代码实例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 package com.xiets.swing;import javax.swing.*;import java.awt.*;public class Main { public static void main (String[] args) { JFrame jf = new JFrame("用户登录" ); jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); JPanel panel01 = new JPanel(); panel01.add(new JLabel("用户名" )); panel01.add(new JTextField(10 )); JPanel panel02 = new JPanel(); panel02.add(new JLabel("密 码" )); panel02.add(new JPasswordField(10 )); JPanel panel03 = new JPanel(new FlowLayout(FlowLayout.CENTER)); panel03.add(new JButton("登录" )); panel03.add(new JButton("注册" )); Box vBox = Box.createVerticalBox(); vBox.add(panel01); vBox.add(panel02); vBox.add(panel03); jf.setContentPane(vBox); jf.pack(); jf.setLocationRelativeTo(null ); jf.setVisible(true ); } }