*java API阶段

*java API阶段

java.lang.*:java最基础的包,这个包的类不需要导入。

java.util.*:java工具包,重点核心包

java.io.*:java数据流读写包

目录

*java API阶段

java.lang.*包

String:字符串类

String类常用方法:

数学运算类:Math

float类型转换图:

自动装箱和自动拆箱

BigInteger 与 BigDecimal

System(系统类)

java.util.*包(重点)

java.util.*(重点)

1.Date:日期类,表示特定的时间

构造方法:

方法:

Date类型转换

2.Calendar:日历

方法:

3.SimpleDateFormat

4.Arrays

方法:

5.Random

java集合框架

java.util.List集合

构造方法

方法

java.util.Set集合

-HashSet: 底层哈希表

-LinkedHashSet: 底层 哈希表 + 链表

-TreeSet:底层 红黑二叉树 (当链表数据长度大于8时转为红黑二叉树)

-Collections:

lamada表达式与Stream流式操作

一、lamada表达式组成:

二、Sream流式操作

方法

java.util.Map集合

-HashMap:底层哈希表

方法

-LinkedHashMap:链表+哈希表

-Hashtable:哈希表

方法:

-TreeMap:红黑二叉树

-ConcurrentHashMap: 哈希表

泛型

 java.IO.*包

1.IO流

注意:IO流对象资源不会被垃圾回收器回收,所以一定要关闭IO,释放内存资源。

2.File作用:读写文件数据和文件属性

File:文件和目录路径名的抽象表示,文件可认为是相关记录或放在一起的数据的集合

2.1.构造方法:

2.2.方法

3.字节流:图片,视频,音频等原始字节文件

4.字符流

5.缓冲流

5.1BufferedReader:

构造函数:

5.2BufferedWriter:

构造函数:

6.内存流: 当输出流的目的,和输入流的源是内存时,这样的流称之为内存流

7.转换流

8.打印流(输出流)

9.对象流: 对象流没有字符输入/输出流

10.Object

11.进程和线程

11.1.进程与线程的关系


java.lang.*包

String:字符串类

String类代表字符串,字符串不变;它们的值在创建后不能被更改。

注意: 不适合数据串的频繁修改操作,数据查找效率高。

String类常用方法:
char charAt(int index)返回 char指定索引处的值。
compareTo(String anotherString)按字典顺序比较两个字符串。
String concat(String str)将指定的字符串连接到该字符串的末尾。
boolean contains(CharSequence s)当且仅当此字符串包含指定的char值序列时才返回true。
boolean endsWith(String suffix)测试此字符串是否以指定的后缀结尾。
boolean startsWith(String prefix)测试此字符串是否以指定的前缀开头。
boolean equals(Object anObject)将此字符串与指定对象进行比较。
byte[] getBytes()使用平台的默认字符集将此 String编码为字节序列,将结果存储到新的字节数组中。
byte[] getBytes(Charset charset)使用给定的charset将该String编码为字节序列,将结果存储到新的字节数组中。
int indexOf(String str)返回指定子字符串第一次出现的字符串内的索引。
boolean isEmpty()返回 true如果,且仅当 length()为 0 。
int length()返回此字符串的长度。
boolean matches(String regex)告诉这个字符串是否匹配给定的 regular expression
String replace(char oldChar, char newChar)返回从替换所有出现的导致一个字符串 oldChar在此字符串 newChar 。
String replaceAll(String regex, String replacement)用给定的替换替换与给定的 regular expression匹配的此字符串的每个子字符串。
String[] split(String regex)将此字符串分割为给定的 regular expression的匹配。
String substring(int beginIndex)返回一个字符串,该字符串是此字符串的子字符串。
String substring(int beginIndex, int endIndex)返回一个字符串,该字符串是此字符串的子字符串。
String toLowerCase()将所有在此字符 String使用默认语言环境的规则,以小写。
String toUpperCase()将所有在此字符 String使用默认语言环境的规则大写。
String trim()返回一个字符串,其值为此字符串,并删除任何前导和尾随空格。
static String valueOf(Object obj)返回 Object参数的字符串 Object形式

字符串类:StringBuilder([线程不安全,可变的字符序列]。 字符串缓冲区就像一个String ,但可以修改.) StringBuffer ( [线程安全,可变的字符序列]。 字符串缓冲区就像一个String ,但可以修改.*注意: 频繁添加删除修改字符串时候,StringBuffer节约内存空间。String

StringBuffer append(Object obj)追加 Object参数的字符串表示。
int capacity()返回当前容量。
StringBuffer delete(int start, int end)删除此序列的子字符串中的字符。
StringBuffer deleteCharAt(int index)删除 char在这个序列中的指定位置。
StringBuffer insert(int offset, Object obj)将 Object参数的字符串表示插入到此字符序列中。
StringBuffer reverse()导致该字符序列被序列的相反代替。

总结字符串类的综合效率: StringBuilder > StringBuffer > String

数学运算类:Math
static double abs(double a)返回值为 double绝对值。
static double sqrt(double a)返回的正确舍入正平方根 double值。
static double pow(double a, double b)将第一个参数的值返回到第二个参数的幂
static double floor(double a)返回小于或等于参数的最大(最接近正无穷大) double值,等于一个数学整数
static double ceil(double a)返回大于或等于参数的最小(最接近负无穷大) double值,等于一个数学整数
static double max(double a, double b)返回两个 double值中的较大值
static int min(int a, int b)返回两个 int的较小值
static double random()返回值为 double值为正号,大于等于 0.0 ,小于 1.0 。 => [0,1)
static long round(double a)返回参数中最接近的 long ,其中 long四舍五入为正无穷大

*Object: toString() equal() finalize()

Object protected void finalize() 当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象。

基本数据类型: byte short int long float double boolean char

包装类: Byte Short Integer Long Float Double Boolean Character

float类型转换图:

自动装箱和自动拆箱

自动装箱:基本类型自动转化为包装类型

//1.Int -> Integer int value = 10; Integer it1 = new Integer(value); //JDK版本的变更,实现自动的吧int -> Integer 自动装箱 Integer it2 = 30; //1.5编译报错 实现值类型->引用类型转换赋值

自动拆箱:包装类型自动转化为基本类型

//2.Integer -> int int number = it2.intValue(); number = it1; //引用类型->值类型 1.5编译报错 自动拆箱

BigInteger 与 BigDecimal

常用类型

BigInteger add(BigInteger val)返回值为 (this + val)
BigInteger subtract(BigInteger val)返回值为 (this - val)
BigInteger multiply(BigInteger val)返回值为 (this * val)
BigInteger divide(BigInteger val)返回值为 (this / val)
BigInteger remainder(BigInteger val)返回值为 (this % val)
BigInteger not()返回值为 (~this)
BigInteger or(BigInteger val)返回值为 (this|val)
BigInteger shiftLeft(int n)返回值为 (this << n)
BigInteger shiftRight(int n)返回值为 (this >> n)
BigInteger xor(BigInteger val)返回值为 (this ^ val)
BigInteger and(BigInteger val)返回值为 (this & val)
System(系统类)

System类提供的System包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量;是一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。

arraycopy(Object src, int srcPos, Object dest, int destPos, int length)将指定源数组中的数组从指定位置复制到目标数组的指定位置。
static long currentTimeMillis()返回当前时间(以毫秒为单位)。
static void exit(int status)终止当前运行的Java虚拟机。
static void gc()运行垃圾回收器。

java.util.*包(重点)

java.util.*(重点)

java.util.*:java工具包

1.Date:日期类,表示特定的时间
构造方法:
Date(long date) :分配一个 Date对象,并将其初始化为表示自称为“时代”的标准基准时间以后的指定毫秒数. 即1970年1月1日00:00:00 GMT。
Date() :分配一个 Date对象,并初始化它,以便它代表它被分配的时间,测量到最近的毫秒。
方法:
(boolean )after(Date when) :测试此日期是否在指定日期之后。
boolean) before(Date when) :测试此日期是否在指定日期之前。
(int) compareTo(Date anotherDate) :比较两个日期进行订购。
(boolean) equals(Object obj) :比较两个日期来平等。
(long) getTime() :返回自1970年1月1日以来,由此 Date对象表示的00:00:00 GMT的毫秒数 。
(void) setTime(long time) :设置此 Date对象以表示1970年1月1日00:00:00 GMT后的 time毫秒的时间点。
Date类型转换
   - 1. java.util.Date -> java.sql.Date
    java.sql.Date  date5 = new java.sql.Date(new java.util.Date().getTime());
​
    - 2. java.sql.Date ->  java.util.Date
    java.util.Date date6 = new java.sql.Date(0);
2.Calendar:日历

-创建对象: 子类构造 ​ Calendar cl = new GregorianCalendar(); ​ -静态方法构建日历对象 ​ Calendar cl = Calendar.getInstance();

方法:
int get(int field) :返回给定日历字段的值。
void set(int field, int value) :将给定的日历字段设置为给定的值。
void setTime(Date date):使用给定的 Date设置此日历的时间。
void setTimeInMillis(long millis) :从给定的长值设置此日历的当前时间。
void roll(int field, int amount):将指定(签名)金额添加到指定的日历字段,而不更改较大的字段。
long getTimeInMillis() :以毫秒为单位返回此日历的时间值。
Date getTime():返回一个 Date表示此物体 Calendar的时间值(毫秒从偏移 Epoch “)。
3.SimpleDateFormat

SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。 ​ 它允许格式化(日期文本),解析(文本日期)和归一化。

4.Arrays
方法:
(static int) binarySearch(int[] a, int key)使用二叉搜索算法搜索指定的int数组的指定值。
static int binarySearch(int[] a, int fromIndex, int toIndex, int key)使用二叉搜索算法搜索指定值的指定数组的范围。
static int[] copyOf(int[] original, int newLength)复制指定的数组,用零截取或填充(如有必要),以便复制具有指定的长度。
static void fill(int[] a, int val)将指定的int值分配给指定的int数组的每个元素。
static void sort(int[] a)按照数字顺序排列指定的数组。
5.Random

该类的实例用于生成伪随机数的流。

java集合框架

-List -Set -Map

java.util.List集合

变量:保存单个数据

数组:保存多个数据(基本类型+对象)

-由于数组的长度不可变,无法往数组中动态添加或者删除数据。

集合:多个对象数据

List集合:有序集合(也称为序列),列表通常允许重复的元素

-ArrayList:动态数组(即长度可以改变的数组),底层数据

特点:查询效率高,添加和删除效率低。

构造方法
ArrayList()构造一个初始容量为十的空列表。
ArrayList(Collection<? extends E> c)构造一个包含指定集合的元素的列表,按照它们由集合的迭代器返回的顺序。
ArrayList(int initialCapacity)构造具有指定初始容量的空列表。
方法
boolean add(E e)将指定的元素追加到此列表的末尾。
void add(int index, E element)在此列表中的指定位置插入指定的元素。
int size()返回此列表中的元素数。
E get(int index)返回此列表中指定位置的元素。
void clear()从列表中删除所有元素。
boolean contains(Object o)如果此列表包含指定的元素,则返回 true
int indexOf(Object o)返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。
boolean isEmpty()如果此列表不包含元素,则返回 true 。
E remove(int index)删除该列表中指定位置的元素。
boolean remove(Object o)从列表中删除指定元素的第一个出现(如果存在)。
E set(int index, E element)用指定的元素替换此列表中指定位置的元素。
void sort(Comparator<? super E> c)使用提供的 Comparator对此列表进行排序以比较元素。
List<E> subList(int fromIndex, int toIndex)返回此列表中指定的 fromIndex (包括)和 toIndex之间的独占视图。

-LinkedList: 底层结构是双链表结构 特点:添加和删除元素效率高,查询元素数据效率底。

-Vector :底层数据结构 数组结构,线程安全的ArrayList 优点:查找元素的效率高,删除和添加元素效率低。

java.util.Set集合

*Set : 无序并且不可重复

-HashSet: 底层哈希表

JDK1.7之前: 哈希表(数组+链表) JDK1.8:哈希表(数组+链表+红黑二叉树)

-LinkedHashSet: 底层 哈希表 + 链表

方法同上HashSet

-TreeSet:底层 红黑二叉树 (当链表数据长度大于8时转为红黑二叉树)

特点:实现自然排序,查询某个元素效率较快。 添加元素,效率较低。 实现了自然排序。

ceiling(E e)返回此集合中最小元素大于或等于给定元素,如果没有此元素,则返回 null 。
higher(E e)返回严格大于给定元素的该集合中的最小元素,如果没有此元素则返回 null 。
floor(E e)返回此集合中最大的元素小于或等于给定元素,如果没有这样的元素,则返回 null 。
lower(E e)返回这个集合中最大的元素严格小于给定的元素,如果没有这样的元素,则返回 null 。
last()返回此集合中当前的最后(最高)元素。
first()返回此集合中当前的第一个(最低)元素。
-Collections:

此类仅由静态方法组合或返回集合。 它包含对集合进行操作的多态算法,“包装器。 理解: Colleciton集合的包装类。

lamada表达式与Stream流式操作

基于Java 8 新特性:lamada表达式

面向对象: 接口式编程 面向函数编程

一、lamada表达式组成:
  1. 参数部分 () -参数类型可以省略 -当且仅当参数部分只有一个参数,则参数()可以省略

  2. ->

  3. 函数体部分 {} 只有一个表达式,{}可以省略。 只有一条语句{}可以省略。

4.方法引用:

  • 类名::方法名 对象::方法名

    • 类名:: new

二、Sream流式操作

接受声明于 java.util.function 包内的接口,例如 Predicate、Function、Consumer 或 Supplier,那么可以向其传lambda表达式

方法
static <T> Stream<T> generate(Supplier<T> s) :返回无限顺序无序流
forEach(Consumer action):对流中的每个元素执行给定的操作。
limit(long maxSize):限制流的大小,只取前N个元素。
filter(Predicate predicate):根据给定的条件对流进行过滤,只保留满足条件的元素。
map(Function<T, R> mapper):将流中的每个元素通过给定的映射函数进行转换。
flatMap(Function<T, Stream> mapper):将流中的每个元素通过给定的映射函数转换为一个新的流,并将所有流合并为一个流。
sorted():对流进行排序,默认按照元素的自然顺序进行排序。
java.util.Map集合
-HashMap:底层哈希表

特点: HashMap类大致相当于Hashtable ,线程不安全,并允许键和值都允许为null。

方法
boolean containsKey(Object key)如果此映射包含指定键的映射,则返回 true 。
boolean containsValue(Object value)如果此地图将一个或多个键映射到指定值,则返回 true 。
void forEach(BiConsumer<? super K,? super V> action)对此映射中的每个条目执行给定的操作,直到所有条目都被处理或操作引发异常。
V get(Object key)返回到指定键所映射的值,或 null如果此映射包含该键的映射。
boolean isEmpty()如果此地图不包含键值映射,则返回 true 。
Set<K> keySet()返回此地图中包含的键的Set视图。
V put(K key, V value)将指定的值与此映射中的指定键相关联。
void putAll(Map<? extends K,? extends V> m)将指定地图的所有映射复制到此地图。
V remove(Object key)从该地图中删除指定键的映射(如果存在)。
boolean remove(Object key, Object value)仅当指定的密钥当前映射到指定的值时删除该条目。
V replace(K key, V value)只有当目标映射到某个值时,才能替换指定键的条目。
boolean replace(K key, V oldValue, V newValue)仅当当前映射到指定的值时,才能替换指定键的条目。
int size()返回此地图中键值映射的数量。
Collection<V> values()返回此地图中包含的值的Collection视图。

-LinkedHashMap:链表+哈希表
-Hashtable:哈希表

该类实现了一个哈希表,它将键映射到值。 [线程安全的,键和值都不允许为null]。 [为了从散列表成功存储和检索对象用作键的对象必须实现hashCode方法和equals方法]。

方法:
Enumeration<K> keys()
返回此散列表中键的枚举。
-TreeMap:红黑二叉树
-ConcurrentHashMap: 哈希表
泛型

 1.泛型类定义:
     [访问修饰符] class 类名<泛型..>{
     
     }

   2.泛型方法:
     [访问修饰符] <泛型> 返回值类型 方法名(泛型类型 参数名){
     
     } 

     泛型上限:
     - 格式: 类型名称<? extends 类> 对象名称`
     - 意义: 只能接收该类型及其子类
     
     泛型上限:
     - 格式:`类型名称<? super 类> 对象名称`
     - 意义:只能接收该类型及其父类类型

 java.IO.*包

1.IO流

流定义:

IO指的是Input/output,IO流:输入输出流,统称为数据流。

-流向划分:1.输入流[Input] 2.输出流[Output]

-数据传输单位方式划分:1.字节流(InputStream|OutputStream) 2.字符流(Reader|Writer)

按功能分:1.节点流:用于直接操作目标设备的流

2.处理流:是对一个已存在的流的连接和封装,通过对数据的处理为程序提供更强大、灵活的读写功能

File:操作文件或目录名各项属性和文件或者目录的创建删除

注意:IO流对象资源不会被垃圾回收器回收,所以一定要关闭IO,释放内存资源。
2.File作用:读写文件数据和文件属性
File:文件和目录路径名的抽象表示,文件可认为是相关记录或放在一起的数据的集合
2.1.构造方法:
File(File parent, String child)从父抽象路径名和子路径名字符串创建新的 File实例。
File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
File(String parent, String child)从父路径名字符串和子路径名字符串创建新的 File实例。
2.2.方法
boolean canRead()测试应用程序是否可以读取由此抽象路径名表示的文件。
boolean canWrite()测试应用程序是否可以修改由此抽象路径名表示的文件。
boolean createNewFile()当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。
static File createTempFile(String prefix, String suffix)在默认临时文件目录中创建一个空文件,使用给定的前缀和后缀生成其名称。
boolean delete()删除由此抽象路径名表示的文件或目录。
boolean exists()测试此抽象路径名表示的文件或目录是否存在。
File getAbsoluteFile()返回此抽象路径名的绝对形式。
String getAbsolutePath()返回此抽象路径名的绝对路径名字符串。
String getName()返回由此抽象路径名表示的文件或目录的名称。
String getParent()返回此抽象路径名的父 null的路径名字符串,如果此路径名未命名为父目录,则返回null。
File getParentFile()返回此抽象路径名的父,或抽象路径名 null如果此路径名没有指定父目录。
boolean isFile()测试此抽象路径名表示的文件是否为普通文件。
long length()返回由此抽象路径名表示的文件的长度。
String[] list()返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
File[] listFiles(FileFilter filter)返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。
boolean mkdir()创建由此抽象路径名命名的目录。
boolean mkdirs()创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。

3.字节流:图片,视频,音频等原始字节文件

-FileInputStream: ​ 输入流如果文件不存在,则抛出FileNotFoundException。 ​ -FileOutputStream: ​ 输出流如果文件不存在,则自动创建文件然后写入数据。

4.字符流

-FileReader(输入流) ​ -FileWiter(输出流)

5.缓冲流

5.1BufferedReader:

BufferedReader :从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取.

构造函数:
BufferedReader(Reader in)创建使用默认大小的输入缓冲区的缓冲字符输入流。
BufferedReader(Reader in, int sz)创建使用指定大小的输入缓冲区的缓冲字符输入流。

5.2BufferedWriter:

BufferedWriter:将文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入.

构造函数:
BufferedWriter(Writer out)创建使用默认大小的输出缓冲区的缓冲字符输出流。
BufferedWriter(Writer out, int sz)创建一个新的缓冲字符输出流,使用给定大小的输出缓冲区。
6.内存流: 当输出流的目的,和输入流的源是内存时,这样的流称之为内存流

ByteArrayOutputStream ByteArrayInputStream

CharArrayReader CharArrayWriter

7.转换流

字节流(1) -> 字符流(2) InputStreamReader OutputStreamWriter

8.打印流(输出流)

PrintStream: 为另一个输出流添加了功能,即能够方便地打印各种数据值的表示. PrintWriter:将对象的格式表示打印到文本输出。

9.对象流: 对象流没有字符输入/输出流

注意: 1.序列化不会写出任何不实现java.io.Serializable接口的对象的字段(Serializable 默认的序列化) 2.实现Externalizable接口允许对象完全控制对象的序列化表单的内容和格式。 调用Externalizable接口writeExternal和readExternal的方法来保存和恢复对象的状态 3.static 或者 transient 修饰的字段是不能够被序列化

10.Object

ObjectInputStream: 字节流 (对象信息持久化) -> 程序中 -> java对象信息 反序列化ObjectOutputStream: 对象信息 -> 字节流 (对象信息持久化) 序列化

ObjectOutputStream将Java对象的原始数据类型和图形写入OutputStream。 ​ 可以使用ObjectInputStream读取(重构)对象。 可以通过使用流的文件来实现对象的持久存储。

11.进程和线程

进程:每个独立执行的程序称为进程。

线程:是CPU调度和分派的基本单位,它可与同属一个进程的其他的线程共享进程所拥有的全部资源,多个线程共享内存,从而极大地提高了程序的运行效率。

多个线程组合成一个进程

11.1.进程与线程的关系

—进程的产生,肯定会产生至少一个以上的线程;

—进程关闭,该进程内的线程会全部销毁;

—线程销毁,进程未必会关闭

多线程:多线程指的是一个进程内的多个任务并发执行。

多线程好处:可以更高效地利用CPU资源,同时,让固定流程的程序更加灵活;

​​​​​​​

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值