栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础重点知识总结 - 怒更中

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础重点知识总结 - 怒更中

文章目录
  • Java基础重点知识总结
    • 一、Java基础内置对象
      • 1.Object
      • 2.String
      • 3.StringBuffer/StringBuilder
      • 4.BigInteger/BigDecimal
      • 5.数组工具类Arrays
      • 6.系统工具类System
      • 7.时间
      • 8.instanceof
      • 9.Comparable - compareTo
    • 二、高级功能
      • 1.反射
      • 2.断言
      • 3.异常
      • 4.日志
      • 5.泛型
    • 三、集合
    • 四、JDK1.8新特性
  • 回头继续补充........
  • over

Java基础重点知识总结 一、Java基础内置对象 1.Object

可以使用该类型的变量引用任何类型的对象,其中有如下几个方法

  • toString()

  • getClass():获取对象的“运行时”类型

  • finalize():垃圾回收

  • hashCode():返回一个对象的hashCode值

    1. 如果一个对象的参与计算hashCode值的成员变量没有修改,那么在程序运行期间,每次获取的hashCode值不变
    2. 如果两个对象hashCode不同,那么这两个一定不“相等”
    3. 如果两个的hashCode值相同,那么这两个对象不一定“相等”
    4. 如果两个相等,那么他们的hashCode值一定要相同
  • equals()

    用于判断当前对象与指定对象是否相等,默认的实现,等价于“==”,比较对象的内存地址

  • clone()

    一个类实现了Cloneable接口,以向Object.clone()方法指示该方法制作该类实例的字段对字段副本是合法的

2.String

它有如下特点

  • String类是final修饰的,不能被继承
  • String类的底层使用数组存储
  • String类的对象不可变(没有提供修改字符串中某个字符的方法)
    1. 字符串常量池中存储字符串常量,可以共享
    2. 每次修改都会产生新对象,频繁修改的话效率不高

常用API如下

序号方法签名方法功能简介
1String()创建空字符串
2String(String original)根据original创建一个新字符串
3static String valueOf(xx value)根据value内容创建一个字符串
4String intern()将字符串的内容存入常量池
5String concat()字符串拼接
6boolean equals(Object obj)判断当前字符串与指定字符串内容是否已在,严格区分大小写
7boolean equalsIgnoreCase(String obj)判断当前字符串与指定字符串内容是否已在,不区分大小写
8int compareTo(String str)比较当前字符串与指定字符串的大小,严格区分大小写
9int compareToIgnoreCase(String str)比较当前字符串与指定字符串的大小,不区分大小写
10boolean isEmpty()判断当前字符串是否为空
11int length()返回当前字符串的长度
12String toLowerCase()将当前字符串转为小写
13String toUpperCase()将当前字符串转为大写
14String trim()去掉当前字符串前后空白符
15boolean contains(xx)判断当前字符串中是否包含xx
16int indexOf(xx)在当前字符串中查找xx第一次出现的下标
17int lastIndexOf(xx)在当前字符串中查找xx最后一次出现的下标
18String substring(int beginIndex)从当前字符串的[beginIndex, 最后]截取一个子串
19String substring(int beginIndex, int endIndex)从当前字符串的[beginIndex, endIndex)截取一个子串
20char charAt(index)返回当前字符串[index]位置字符
21char[] toCharArray()将当前字符串的内容用一个字符数组返回
22String(char[] value)用value字符数组的元素构建一个新字符串
23String(char[] value,int offset, int count)用value字符数组的[offset]开始的count个字符构建一个新字符串
24static String copyValueOf(char[] data)用data字符数组的元素构建一个新字符串
25static String copyValueOf(char[] data, int offset, int count)用data字符数组的[offset]开始的count个字符构建一个新字符串
26static String valueOf(char[] data)用data字符数组的元素构建一个新字符串
27static String valueOf(char[] data, int offset, int count)用data字符数组的[offset]开始的count个字符构建一个新字符串
28byte[] getBytes()将当前字符串按照平台默认字符编码方式编码为字节序列
29byte[] getBytes(字符编码方式)将当前字符串按照指定字符编码方式编码为字节序列
30String(byte[] bytes)将bytes字节序列按照平台默认字符编码方式解码为字符串
31String(byte[] bytes,String charsetName)将bytes字节序列按照指定字符编码方式解码为字符串
32boolean startsWith(xx)判断当前字符串是否以xx开头
33boolean endsWith(xx)判断当前字符串是否以xx结尾
34boolean matchs(xx)判断当前字符串是否满足xx正则
35String replace(xx,yy)将当前字符串中所有xx替换为yy
36String replaceFirst(xx,value)将当前字符串中第一个满足xx正则的字符替换为value
37String repalceAll(xx, value)将当前字符串中所有满足xx正则的字符替换为value
38String[] split(xx)将当前字符串按照xx正则拆分为多个字符串
39void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)将当前字符串的[srtBegin,srcEnd)部分字符复制到dst字符数组中,dst数组从[dstBegin]开始存储
3.StringBuffer/StringBuilder

两者的区别

  • String类的对象是不可变字符序列,StringBuffer和StringBuilder的对象是可变字符序列

    当前String类创建对象完毕之后,该对象的内容(字符序列)是不能改变的

    一旦改变就会得到(返回)一个全新的String

  • StringBuffer:老点,线程安全的,因为它的方法有synchronized修饰

  • StringBuilder:JDK1.5之后引入的,线程不安全,单线程情况下推荐使用

常用API如下

序号方法签名方法区功能简介
1StringBuffer()创建一个空的可变字符序列,默认长度16
2StringBuffer(String str)用字符串str内容创建一个可变字符序列
3StringBuffer append(数据类型 b)在当前字符序列后面追加b
4StringBufferinsert(int index, 数据类型 s)在当前字符序列[index]插入s
5StringBuffer delete(int start, int end)删除当前字符序列[start,end)部分字符
6StringBuffer deleteCharAt(int index)删除当前字符序列[index]位置字符
7void setLength(int newLength)修改当前字符序列的长度为newLength
8void setCharAt(int index, char ch)替换当前字符序列[index]位置字符为ch
9StringBuffer reverse()将当前字符序列内容反转
10StringBuffer replace(int start, int end, String str)替换当前字符序列[start,end)部分字符为str
11int indexOf(String str)在当前字符序列中开始查找str第一次出现的下标
12int indexOf(String str, int fromIndex)在当前字符序列[fromIndex]开始查找str第一次出现的下标
13int lastIndexOf(String str)在当前字符序列中开始查找str最后一次出现的下标
14int lastIndexOf(String str, int fromIndex)在当前字符序列[fromIndex]开始查找str最后一次出现的下标
15String substring(int start)截取当前字符序列[start,最后]部分构成一个字符串
16String substring(int start, int end)截取当前字符序列[start,end)部分构成一个字符串
17String toString()将当前可变字符序列的内容用String字符串形式表示
18void trimToSize()如果缓冲区大于保存当前字符序列所需的存储空间,则将重新调整其大小,以便更好地利用存储空间。
19int length()返回当前字符序列的长度
20char charAt(int index)返回当前字符序列[index]位置字符
21void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)将当前字符串的[srtBegin,srcEnd)部分字符复制到dst字符数组中,dst数组从[dstBegin]开始存储
4.BigInteger/BigDecimal

大数,为了解决基本的整数or浮点数精度不能够满足需求

  • BigInteger:实现任意精度的整数运算

  • BigDecimal:实现任意精度的浮点数运算

5.数组工具类Arrays

java.util.Arrays

此类包含用于操作数组的各种方法(例如排序和搜索)

序号方法签名方法功能简介
1static int binarySearch(数据类型[] a, 数据类型 key)使用二分查找法在a数组中查找key的下标
2static 数据类型[] copyOf(数据类型[] original, int newLength)根据original复制一个新数组长度为newLength
3static 数据类型[] copyOfRange(数据类型[] original, int from, int to)根据original的[from,to)部分复制一个新数组
4static boolean equals(数据类型[] a1, 数据类型[] a2)比较两个数组内容是否一致
5static void fill(数据类型[] a, 数据类型val)用val的值填充a数组
6static void sort(数据类型[] a)将a数组按照自然排序规则实现升序排列
7static void sort(数据类型[] a, Comparator c)将a数组按照c指定的定制比较规则实现升序排列
8static String toString(数据类型[] a)将数组的元素拼接为一个字符串返回
6.系统工具类System
  • static long currentTimeMillis():获取系统时间的毫秒值

  • static void exit(x):退出JVM

  • static void arraycopy(原数组, 原数组的起始下标, 目标数组, 目标数组的起始下标,一共复制几个元素)

  • static void gc():通知垃圾回收器工作

  • static String getProperty(系统属性名)

7.时间

java.util.Date

  • new Date():获取系统日期时间
  • new Date(long 毫秒):根据毫秒值来获取日期时间
  • long getTime():获取该日期时间对应的毫秒值,距离1970-1-1 0:0:0

java.util.Calendar

日历

如何创建/获取Calendar的对象?

  1. 创建子类对象:GregorianCalendar
Calendar calendar = new GregorianCalendar();
  1. 获取指定时区的日历对象
  • getInstance()
  • getInstance(TimeZone 时区) 或 getInstance(Locale 语言环境)
  • getInstance(TimeZone, Locale)
  1. get(字段名)

    例如:int year = get(Calendar.YEAR);

java.text.DateFormat

日期时间格式化

// 使用它的子类:SimpleDateFormat
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 把日期转字符串
String str = sf.format(Date的日期对象);
// 把字符串解析为日期
Date d = sf.parse(字符串);

java.time

LocalDate/LocalTime/LocalDateTime

  • now():获取当前的日期或时间

  • of(x,x,x):获取指定的日期或时间

  • withXxx(), plusXxx(), minusXxx():修改日期和时间,修改后要重新接收新对象

  • isLeapYear():判断是否是闰年

  • between(x,y):间隔两个日期或时间

8.instanceof

Java关键字(一)——instanceof - YSOcean - 博客园 (cnblogs.com)

9.Comparable - compareTo

Comparable接口中只有一个compareTo方法,它用于与指定的对象进行比较以进行排序。 当此对象小于、等于或大于指定对象时,返回一个负整数、零或正整数

二、高级功能 1.反射

用几个用处

  1. 运行时获取类信息、分析类能力
  2. 运行时检查实例对象,通过java.lang.reflect中的三个类Field、Method、Constructor
  3. 实现泛型

关于类加载的机制,看JVM篇

java.lang.Class类

可以访问Java运行时系统为所有对象维护的一个运行时的类型标识,我觉得也可以叫他是字节码对象

获取Class对象的四种方式

  1. 类型名.class
  2. 对象.getClass()
  3. Class.forName(类型全名称)
  4. ClassLoader的类加载器对象.loadClass(类型全名称)

关于反射的应用这里不展开详细说明,就简单列举一下,回头再补充

  1. 获取类型的详细信息
  2. 创建任意引用类型的对象
  3. 操作任意类型的属性
  4. 调用任意类型的方法
  5. 获取泛型父类信息
  6. 读取注解信息
2.断言

也就是所谓的Assertion,是jdk1.4后加入的新功能,它主要使用在代码开发和测试时期,用于对某些关键数据的判断,如果这个关键数据不是你程序所预期的数据,程序就提出警告或退出

语法

  • assert expression;

    expression代表一个布尔类型的表达式,如果为真,就继续正常运行,如果为假,程序退出

  • assert expression1 : expression2;

    expression1是一个布尔表达式,expression2是一个基本类型或者Object类型,如果expression1为真,则程序忽略expression2继续运行;如果expression1为假,则运行expression2,然后退出程序。

举例说明

int i = 3;
assert i==6;  
System.out.println("如果断言正常,我就被打印");

断言功能用于软件的开发和测试,是禁止用于生产环境中的代码

3.异常

这个就不说了,后面会做统一异常返回的结果类

4.日志

这个就不说了,后面会做统一日志处理的类

5.泛型

以后补充

三、集合

首先看看菜鸟教程的集合框架图

我觉得涉及到的知识点大概如下

  1. 有哪些集合
  2. 集合之间的差别
  3. 线程安全/效率
  4. 算法
四、JDK1.8新特性

1

回头继续补充… over
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/361735.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号