一: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(枚举)

  • Formatter.BigDecimalLayoutForm
  • Locale.Category
  • Locale.FilteringMode
  • Locale.IsoCountryCode

四:Exceptions(异常)

 

  • ConcurrentModificationException
  • DuplicateFormatFlagsException
  • EmptyStackException
  • FormatFlagsConversionMismatchException
  • FormatterClosedException
  • IllegalFormatCodePointException
  • IllegalFormatConversionException
  • IllegalFormatException
  • IllegalFormatFlagsException
  • IllegalFormatPrecisionException
  • IllegalFormatWidthException
  • IllformedLocaleException
  • InputMismatchException
  • InvalidPropertiesFormatException
  • MissingFormatArgumentException
  • MissingFormatWidthException
  • MissingResourceException
  • NoSuchElementException
  • TooManyListenersException
  • UnknownFormatConversionException
  • UnknownFormatFlagsException

五:Errors

  • ServiceConfigurationError

Java API 1.8 中文版 (帮助文档)免费下载:


链接:https://pan.baidu.com/s/11GhY8EIQjRN1MRxKUYlB2g
提取码:gaf5     (永久有效)