2020.7.30 日期 正则 System

发布于 14 天前  6 次阅读


1.学习内容

  • Java Object 类

    • Object类
      • 在java中是所有类的根类(显式继承,隐式继承)
    • 经常被重写的属性
      • toString()
        • 将对象转为字符串
      • equals()
        • 比较对象的方法(两个对象调用equals时候)
        • 比如一个Todo办事View,可以根据创建时间进行比较
  • java日期相关类

    • Date类

      • 目录:java.util.Date
      • 构造:
        • 两个构造方法,一个是无参,一个是毫秒
        • 两个常用方法:getTime(),setTime()
      • 说明:
        • java设置了时间原点一个0点毫秒,是1970-1-1 0:0:0
        • 日期就是毫秒值和日期直接的转换
          • 毫秒值可以用于时间的运算
    • DateFormat类(抽象类)

      • SimpleDateFormat 实现了DateFormat类
      • SimpleDateFormat(pattern) //可以为空
      • pattern 常用的格式规则为:
        • 双位就是补零 MM -> 01
        标识字母(区分大小写) 含义
        y
        M
        d
        H
        m
        s
      • format(Date)方法 和 parse(String)方法
        • 一个是返回字符串日期
        • 一个是返回日期对象
    • 日历类 Calendar (替代了Date)

      • Calendar可以算作是日期类的加强,可以方便的操作每一个元素(日期,时间,年份等等)类似python中的元组,将每个日期时间分为多个字段,
      • 主要通过set,和get获取修改字段(Calendar类下有常量)
      • Calendar中add是一个偏移量,可以更加方便的计算日期
      • Calendar是抽象类,GregorianCalendar
      • 使用:
        • getInstance() 返回一个子类,但是用Calendar接收
        • GregorianCalendar 是实现Calendar的子类
      • 常用方法
        • get,set,add
  • java System类

    • system介绍

      • 包含很多系统中的字段,out,in,等常用字段属性
      • 不能被实例化,使用静态来使用
    • 常用方法

      方法名 说明
      public static void exit(int status) 终止当前运行的 Java 虚拟机,非零表示异常终止
      public static long currentTimeMillis() 返回当前时间(以毫秒为单位)
      public static void arrayCopy(Object src, int srcPos, Object dest, int destPos, int length) 从指定源数组中复制一个数组
      public static void gc() 运行垃圾回收器。
    • arrayCopy(src,srcPost,dest,destPos,lenght)方法:

      • Object src:要复制的数据源数组
      • int srcPost:数据源数组的开始索引
      • Object dest:复制后的目的数组
      • int destPos:目的数组开始索引
      • int length:要复制的数组元素的个数
    • gc()方法

      运行垃圾回收器,JVM将从堆内存中清理对象,清理对象的同时会调用对象的finalize()方法,JVM的垃圾回收器是通过另一个线程开启的,因此程序中的效果并不明显。

    *

  • Arrays工具类

    • toString(数组)
      • 将数组转换成可以看见的字符串
    • sort(数组)
      • 对数组升序排序
      • equals重写,可以比较对象
    • binarySearch(数组,元素)
      • 二分查找查找元素
      • 找不到元素,找地方插入,返回(插入点-1的索引)
  • Java正则表达式

    • Pattern 正则表达式的编译形式
      • matches(规则,字符串)
    • 字符串带matches(pattern)方法,判断是否符合正则表达式
  • Math类

    • 说明

      • 封装了一些数学的运算,比如指数,对数,平方根,三角函数
      • 是一个工具类,不用创建对象就可以使用
    • 常用方法

      方法名 方法名 说明
      public static int abs(int a) 返回参数的绝对值
      public static double ceil(double a) 返回整数(入)5.10 = 6.0
      public static double floor(double a) 返回整数(舍)5.10 = 5.0
      public static int round(float a) 按照四舍五入返回最接近参数的int
  • BigInteger类(超大整数)

    • 说明

      • 不可变的任意精度的整数
      • 数据的范围超过了long类型后,可以使用BigInteger类实现,该类的计算整数是不限制长度的。
      • 构造参数是字符串(超级大的整数,无法用数字来表示)
    • 常用方法

      方法名 含义
      add(BigInteger value) 返回其值为 (this + val) 的 BigInteger,超大整数加法运算
      subtract(BigInteger value) 返回其值为 (this - val) 的 BigInteger,超大整数减法运算
      multiply(BigInteger value) 返回其值为 (this * val) 的 BigInteger,超大整数乘法运算
      divide(BigInteger value) 返回其值为 (this / val) 的 BigInteger,超大整数除法运算,除不尽取整数部分
  • BigDecimal类(超大浮点数)

    • 说明

      • 不可变的、任意精度的有符号十进制数。
      • 该类可以实现超大浮点数据的精确运算。
      • 构造参数是字符串(超级大的整数,无法用数字来表示)
    • 加减乘除

      • add() 、subtrac、multiply、divide
  • java的基本类型包装类

    • 基本类型 byte,short,int,long,float,double,char,boolean
    • 包装类型:Byte,Short,Integer,Long,Float,Double,Character,Boolean
    • 转换规则:
      • 都有一个方法valueof(),可以将值转换为相应类型
      • 除了Character ,都有parse类型,可以解析字符串参数为相应参数
  • Java装箱与拆箱

    • 装箱:从基本类型转换为对应的包装类对象。
    • 拆箱:从包装类对象转换为对应的基本类型。
  • 自动装箱与自动拆箱

    • 在做运算的时候,会自动装箱自动拆箱

2.扩展延伸知识

  • java折半查找

    • 1.排序(正序逆序都可以)
    • 2.使用公式(min+max)/2
      • min是最小下标,max是最大下标,公式值mid
    • 3.使用while循环查找(判断条件min<=max)
    • 4.大了给min赋值max,小了给max赋值min,继续使用公式算mid
  • 5.查找到值,结束(考虑没找到的情况)
  • java中的static块,可以执行几次?

    • 一次
  • java中navicat关键字的作用:

    • c或者c++代码
  • java中子类继承时候重写方法时候的权限?

    • 子类中重写权限要比父类权限大
  • 为什么使用多态?

    • 调用父类方法,执行子类方法(比如昆虫-飞 ,蝴蝶-翅膀飞)
  • java字符串格式化参数

  • java中jvm的内存块(未完成)

    • img
    • java栈

      • 局部变量,操作数(变量之间的运算),指向常量池的引用,方法返回地址(执行完方法返回的地址),每个java线程有一个自己的栈
    • 本地方法栈

      • 执行navicat方法的地方
      • c语言中,可以通过malloc和free操作内存
      • java中一般不需要手动操作,gc来操作
      • 堆是所有线程共享,JVM中只有一个堆
    • 方法区

      • 和堆一样,是被线程共享的一个区域
      • 存储了类信息(类名称,方法,字段)
      • 静态变量、常量、编译后的代码
    • https://www.cnblogs.com/dolphin0520/p/3613043.html
  • java中 数组和ArrayList区别 int[]

    • 数组和ArrayList的本质区别在于前者是类型安全的,而后者是类型不安全的.
    • ArrayList为了兼容所有类型对象,使用了Object数组,在使用元素的时候会有装箱和拆箱的操作,降低了程序的性能.
    • ArrayList会动态扩充容量,容量为原来的2倍.
    • ArrayList只有把元素添加进去之后才可以通过下标访问相应的元素.
    • 数组在创建的时候就已经确定了数据类型,并且它的长度是固定的,只能通过下标改变各个元素的值和访问.
  • java中的时间怎么比较?

    • 日期类带有before()和after()方法可以比较

3.灵感代办

  • 能够说出Object类的特点
  • 能够重写Object类的toString方法
  • 能够重写Object类的equals方法
  • 能够使用将日期格式化为字符串的方法
  • 能够使用将字符串转换成日期的方法
  • 能够使用日历对象的方法
  • 能够使用Math类的方法
  • 能够使用System类获取当前系统毫秒值
  • 能够说出数组冒泡排序的原理
  • 能够说出数组二分查找法的原理
  • 能够使用String类的matches和split方法

4.复习内容

5.学习成果&问题


Ares个人进阶之路