Java常用包

java常用包及其功能

java.lang java核心包,该包中的所有内容都由Java虚拟机自动导入。如:System,String java.util 该包是Java语言的工具包,里面提供了大量工具类以及集合类等。如Scanner类,Random类,List集合 java.io 该包提供了大量关于读写相关操作的类。如FileInputStream类,FileOutputStream类等。 java.net 该包是Java中的网络包,里面提供了大量网络编程相关的类,如SeverSocket类、Socket类 java.sql 该包是java语言中的数据包,里面提供了大量操作数据库的类和接口等。如DriverManager接口、Connection接口等

Object类的概念

基本概念

  • java.lang.Object类是java语言中所有类的父类或超类,所有的类是Object类的直接 子类或者间接子类
  • 自定义的类如果没有指定继承其他类,则默认继承Object类
  • Object定义了对象的基本行为,子类默认继承

常用方法

image.png

包装类

包装类的概念

java中常用数据类型沿用了C语言,但java是一种面向对象的编程语言,所以为了能够使数据类型转变为一种对象,同时为了能够将数据和其他的对象一起使用时,例如将数据存储至集合中的操作,需要将java中的基本数据类型封装为对象。

  • 常用的包装类可分为3类:

image.png

image.png

image.png
(注:所有的包装类实现都在java.lang包中)

Integer类介绍

常用常量

image.png

常用方法

image.png

Double类介绍

常用常量

image.png

常用方法

image.png

Boolean类介绍

常用变量

image.png

常用方法

image.png

Character类介绍

常用变量

image.png

常用方法

image.png

包装类特性

  • 包装类和基本数据类型之间的转换在JDK1.5版本之前需要装箱和拆箱的操作,在JDK1.5及后续版本中为了方便代码的编写引入了自动装箱和拆箱的机制
  1. //未使用自动装箱
  2. int a = 10;
  3. Integer b = new Integer(a);
  4. //使用了自动装箱
  5. Integer b = a;
  6. //未使用自动拆箱
  7. int c =b.intValue();
  8. //使用自动拆箱
  9. int c = b;
  • Integer类的内部提供了自动装箱的技术,将-128~127之间的整数已经完成了装箱,当使用该范围整数时,无需装箱直接取用自动装箱池中的对象即可。(详细可参考博客:https://www.cnblogs.com/dolphin0520/p/3780005.html)


数据处理类

Math类概述

包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数

Math类常用方法

image.png

BigDecimal类和BigInterger类特点

  • 由于float类型和double类型在运算时可能会有误差,若希望实现精确运算则借助 java.math.BigDecimal类型加以描述。
  • 若希望表示比long类型范围还大的整数数据,则需要借助java.math.BigInteger类型描述。

String类

String类概念

  • java.lang.String类用于描述字符串
  • 该类由final关键字修饰,表示该类不能被继承
  • 从jdk1.9版本开始String类底层不再使用char[]来存储数据,改成了byte[]加上编码标记,节省了部分空间
  • 该类所描述的字符串内容是个常量即不能被修改

常量池概念

由于String类型描述的字符串内容是常量不可改变,因此Java虚拟机将首次出现的字符串放入常量池中,若后续代码中出现了相同字符串内容则直接使用池中已有的字符串对象而无需申请内存及创建对 象,从而提高了性能。

  1. String a = "123";
  2. String b = "123";
  3. System.out.println(a == b); // true
  4. String a = new String("123");
  5. String b = new String("123");
  6. System.out.println(a == b); // false
  7. //""表示空字符串对象,表示有对象只是没内容和null表示连对象都没有
  8. String a = new String();
  9. System.out.println("a = "+a); // a =

常用构造方法

image.png

常用的成员方法

image.png

  • 案例,判断一个字符串是否为回文字符串
    1. String a = "上海自来水来自海上";
    2. for (int i = 0; i < a.length()/2; i++) {
    3. if(a.charAt(i) != a.charAt(a.length() - i - 1)){
    4. System.out.println("不是回文");
    5. return; //返回数据并结束当前方法
    6. }
    7. }
    8. System.out.println("是回文");
    image.pngimage.png

正则表达式

正则表达式概念

正则表达式本质就是一个“规则字符串”,可以用于对字符串数据的格式进行验证,以及匹配、查找、替换等操作。该字符串通常使用^运算符作为开头标志,使用$运算符作为结尾标志,当然也可以省略。常用正则表达式生成网站:https://c.runoob.com/front-end/854/

正则表达式规则

image.png
image.png

正则表达式常用方法

image.png
image.png

可变字符串类

可变字符串基本概念

  • String类型的字符串由于被final修饰,所以对应的数值不可修改,当程序中需要描述大量的字符串时需要创建多个对象造成空间浪费
  • java.lang.StringBuffer和java.lang.StringBuilder两个类可以修饰可变的字符串变量
  • StringBuffer类是JDK1.0版本就存在的类,其线程安全,效率较低
  • StringBuilder类是JDK1.5版本新增的类,其非线程安全,效率较高

StringBuffer和StringBuilder类

StringBuffer

StringBuilder类常用构造方法

image.png

StringBuilder类常用的成员方法

image.png

注:作为参数传递,方法内部String不会改变值,StringBuilder和StringBuffer会改变值

笔试考点

  • 考点一

    问:既然StringBuilder类的对象本身可以修改,为什么成员方法还要有返回值? 答:为了能够让对象连续调用方法。例new StringBuilder().append(“a”).reverse().append(“a”)

  • 考点二

    问:如何实现StringBuilder和String类型之间的转换 答: String a = new StringBuilder().toString; StringBuilder a = new StringBuilder(new String())

  • 考点三

    问:String、StringBuilder、StringBuffer三个哪个效率最高 答:String < StringBuffer < StringBuilder

日期相关类

System类中方法

image.png

Date类常用方法

image.png

SimpleDateFormat类

image.png

Calender类

Calender类基本概念

  • java.util.Calender类主要用于描述特定的瞬间,取代Date类中的过时方法实现全球化。
  • 该类是个抽象类,因此不能实例化对象,其具体子类针对不同国家的日历系统,其中应用最广泛的是GregorianCalendar(格里高利历),对应世界上绝大多数国家/地区使用的标准日历系统。

Calender类常用方法

image.png

多态的使用场合

  • 通过方法的参数传递形成多态
  • 在方法体中直接使用多态的语法格式
  • 通过方法的返回值类型形成多态

Java8中的日期相关类

LocalDate类

LocalTime类

LocalDateTime类

Instant类

DateTimeFormatter类