一: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 (永久有效)