一:Java中常用的包、类、接口
常用的类:
BufferedReader BufferedWriter
FileReader FileWirter
String Integer
Date Class
HashMap Object
Runtime file
Integer Long
Thread
常用的包:
java.lang java.io
java.util java.sql
java.swt java.math
javax.servlet org.apache.struts.action
org.hibernate
常用的接口:
List Map
Document NodeList
Servlet HttpServletResponse
Session Transaction
HttpSession Iterator
Comparable Clone
Serializable Runnable
二:java.util包下的常用类和方法(工具包)
java学习–java.util包中常用类
java.util包被称为java工具包,里面包含大部分的工具类:
包括:
1.Random类产生随机数:
Random 类作为JAVA中用于产生的随机数 ,new Random(10) :10是种子数。
注意:Random 的一个特点是:相同种子数的Random对象,对应相同次数生成的随机数字是完全相同的。
1):Random生成随机数:
Random random =new Random(); for(int i = 0;i < 4;i++){ // random.nextInt(10)意思是返回大于等于0,小于10的一个正整数,要想生成多少位的随机数,只需要修改参数值即可。 System.out.println(random.nextInt(10)); }
2):math.random()生成的是个伪随机数,何为伪随机数,这里java是以当前系统时间的相关数字作为种子数,按照特定复杂算法生成的,其实它生成的大量随机数是线性均匀分布的,黑客是完全可能通过返回的大量随机数结果破解种子数的,所以它并不是真正的随机,叫伪随机数。由此我们可以知道通过计算机生成一个真随机数几乎是不可能的,因为最终的输出结果都是依赖算法程序的,这些算法程序本身就是固定的,我们只能通过更复杂的算法不断优化,让它无限趋近于真随机数,但不绝对。
案例:
//生成一个5位数的随机数 想生成几位就*多少 for (int i =0;i<100;i++){ System.out.println((int)((Math.random()*9+1)*10000)); }
2.Date 日期类:
Date 类的基本用法:
package com.example.springboot.caipiao; 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(); //返回当前的时间 Mon Mar 11 20:30:06 CST 2019 System.out.println(date); //SimpleDateFormat 主要用来进行date格式转换。 SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd"); String time="2018-09-03"; //把String类型转换成date类型 Date date1 =(Date) simpleDateFormat.parse(time); System.out.println(date1); //把date类型转成String String dateStr=simpleDateFormat.format(date1); System.out.println(dateStr); } }
3.Calendar 日历类:
基本使用:
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);
ps:Calendar类是一个抽象类,需要通过getInstance()方法来实现
Calendar与Date类之间的转换分别是getTime()和setTime()
Calendar对象获取month将会比实际的月份少一个月,是从下标为0开始的
Calendar对象获取day_of_week是获取到当前星期,返回的是重这周日到当前礼拜的天数。
package com.example.springboot.caipiao; import javax.xml.crypto.Data; import java.util.Calendar; import java.util.Date; import java.util.Random; public class Test1 { public static void main(String[] args) { Calendar calendar =Calendar.getInstance(); Date date =new Date(); //把date set到Calendar calendar.setTime(date); //获取当前时间的年 System.out.println(calendar.get(Calendar.YEAR)); //当前年+1 calendar.add(Calendar.YEAR,1); System.out.println(calendar.get(Calendar.YEAR)); } }
3-1: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包中。
三:日期的操作和格式化
1、增加和减少日期
2、格式化日期
新的日期API中提供了一个DateTimeFormatter类用于处理日期格式化操作,它被包含在java.time.format包中,Java 8的日期类有一个format()方法用于将日期格式化为字符串,该方法接收一个DateTimeFormatter类型参数:
四:时区
Java 8中的时区操作被很大程度上简化了,新的时区类java.time.ZoneId是原有的java.util.TimeZone类的替代品。ZoneId对象可以通过ZoneId.of()方法创建,也可以通过ZoneId.systemDefault()获取系统默认时区:
五:日期和时间主要类的关系
4.TimerTask 定时任务类:
5.Arrays 数组类:
binarySearch(数组,值) 用二分法查找值在数组中出现的下标位置,前提条件,数组必须是有序的
sort(数组) 对数组用快排法进行排序
toString(数组) 将数组转换成字符串形式
copyOf(数组,长度)拷贝数组,得到一个新数组
六:Java.util包中所有的接口、类、异常 等等
一:Java.util包中所有的接口
- Collection
- Comparator
- Deque
- Enumeration
- EventListener
- Formattable
- Iterator
- List
- ListIterator
- Map
- Map.Entry
- NavigableMap
- NavigableSet
- Observer
- PrimitiveIterator
- PrimitiveIterator.OfDouble
- PrimitiveIterator.OfInt
- PrimitiveIterator.OfLong
- Queue
- RandomAccess
- ServiceLoader.Provider
- Set
- SortedMap
- SortedSet
- Spliterator
- Spliterator.OfDouble
- Spliterator.OfInt
- Spliterator.OfLong
- Spliterator.OfPrimitive
二:Java.util包中所有的类
- AbstractCollection
- AbstractList
- AbstractMap
- AbstractMap.SimpleEntry
- AbstractMap.SimpleImmutableEntry
- AbstractQueue
- AbstractSequentialList
- AbstractSet
- ArrayDeque
- ArrayList
- Arrays
- Base64
- Base64.Decoder
- Base64.Encoder
- BitSet
- Calendar
- Calendar.Builder
- Collections
- Currency
- Date
- Dictionary
- DoubleSummaryStatistics
- EnumMap
- EnumSet
- EventListenerProxy
- EventObject
- FormattableFlags
- Formatter
- GregorianCalendar
- HashMap
- HashSet
- Hashtable
- IdentityHashMap
- IntSummaryStatistics
- LinkedHashMap
- LinkedHashSet
- LinkedList
- ListResourceBundle
- Locale
- Locale.Builder
- Locale.LanguageRange
- LongSummaryStatistics
- Objects
- Observable
- Optional
- OptionalDouble
- OptionalInt
- OptionalLong
- PriorityQueue
- Properties
- PropertyPermission
- PropertyResourceBundle
- Random
- ResourceBundle
- ResourceBundle.Control
- Scanner
- ServiceLoader
- SimpleTimeZone
- Spliterators
- Spliterators.AbstractDoubleSpliterator
- Spliterators.AbstractIntSpliterator
- Spliterators.AbstractLongSpliterator
- Spliterators.AbstractSpliterator
- SplittableRandom
- Stack
- StringJoiner
- StringTokenizer
- Timer
- TimerTask
- TimeZone
- TreeMap
- TreeSet
- UUID
- Vector
- WeakHashMap
三:Enums(枚举)
四:Exceptions(异常)
- ConcurrentModificationException
- DuplicateFormatFlagsException
- EmptyStackException
- FormatFlagsConversionMismatchException
- FormatterClosedException
- IllegalFormatCodePointException
- IllegalFormatConversionException
- IllegalFormatException
- IllegalFormatFlagsException
- IllegalFormatPrecisionException
- IllegalFormatWidthException
- IllformedLocaleException
- InputMismatchException
- InvalidPropertiesFormatException
- MissingFormatArgumentException
- MissingFormatWidthException
- MissingResourceException
- NoSuchElementException
- TooManyListenersException
- UnknownFormatConversionException
- UnknownFormatFlagsException
五:Errors
Java API 1.8 中文版 (帮助文档)免费下载:
[百度云盘链接]链接已更新:
链接:https://pan.baidu.com/s/11GhY8EIQjRN1MRxKUYlB2g
提取码:gaf5 (永久有效)