Java.util.Arrays工具类:

  ·所有的方法是由static修饰,都是静态的,直接使用Arrays类名调用即可;

  ·而常用的Arrays方法为排序,以及二分法查找,使用可参考文档;

常用工具类:

  ·String

  ·StringBuffer

  ·基础类型对应的8个包装类

  ·日期相关类

  ·数字相关类

  ·Random

  ·Enum

  在java中,使用双引号括起来的字符串是不可变的;且字符串数据是存储在方法区的“字符串常量池”当中;

  new对象时,一定会在堆内存中开辟空间;

字符串通常有两种声明方式:

  第一种是直接使用等号“=”赋值的方式,

 (该方式存储字符串,会直接把数据存储在字符串常量池当中,先在栈中,压栈,然后内存地址会指向字符串常量池)

  第二种是使用new的方式;

 (首先然后new对象,就一定会在堆内存中开辟空间,该方法是先会在栈中压栈,然后再在堆内存new对象,然后再把内存地址指向“字符串常量池”)

  注意:垃圾回收器是不会释放常量的;

  字符串在比较时,双等号比较是变量中保存的内存地址,而不是值;

 ·在实际开发中,字符串比较一般采用的是equals()方法;但是java中最原始的equals()方法比较依然是内存地址,所以equals()方法需要重写,String类已经重写了方法;

 ·数字,可用使用运算符号进行比较,但是字符串之间进行比较需要使用compareTo()方法

 ·contains() 判断是否包含某个字符串;

 ·endSWith() 判断是否以某个字符串结尾;

 ·startsWith() 判断是否以某个字符串开始;

 ·toCharArray() 将字符串转化为char数组;

 ·toLowerCase() 将字符串转化为小写;

 ·toUpperCase() 将字符串转换为大写;

  在String中,只有一个方法(valueOf())是静态的,不用new对象的;

  ·valueOf() 将不是字符串的数据。转化为字符串;当该方法转化的是一个对象时,并且对象没有重写toString时,valueOf()会把对象转换成一个内存地址;但如果重写了          toString()方法,则会把重写的内容转换为字符串;

StringBuffer:

  ·在实际开发中,每次使用+号拼接字符串,都会产生一个新的字符串,而这样则会在方法去的字符串常量池中,占用大量的内存空间;导致内存空间的浪费;而怎么做才不会造成      内存浪费呢,这个时候,就可以选择使用StringBuffer或者StringBuilder;

    这两选择其中一个即可;

  ·StringBuffer底层实际是一个byte[] 数组;往StringBuffer中存储数据,实际上是存储在byte[]数组当中;

  ·StringBuffer的初始化容量是16;

    然而在进行字符串拼接时,StringBuffer已经不是使用+号进行拼接了,而是使用append(),追加字符串;

    append()方法底层在进行追加的时候,如果byte数组满了,会自动扩容;

    如何给StringBuffer做性能优化?

 ·在创建StringBuffer的时候,最好先预定一个合适的初始值,可以提高程序的执行效率,这样可以减少byte[]数组的扩容次数,从而达到性能的优化;

StringBuffer和StringBuilder的区别:

 ·StringBuffer的源代码有synchronized关键字修饰,它是线程安全的;在多线程的环境下运行,它是安全的;
 ·StringBuilder的源代码中,没有synchronized关键字修饰,它是非线程安全的,表示,在多线程环境下运行,它是不安全的;

java定时器的作用:

  ·间隔特定的时间,去执行特定的程序;

  ·在实际开发中,每隔一段时间执行一段特定的代码;这种需求是很常见的;

   那么其实在Java中是可以有多种方式实现的;

  第一种:

  可以使用sleep方法;睡眠,设置睡眠时间,每到这个时间点醒来,执行任务,但这种方法是最原始的定时器;

  第二种:

  在Java的类库中,已经写好了一个定时器,Java.util.Timer;可以直接拿来用,不过,这种方式在实际的开发中,也很少使用,因为现在有很多的高级框架都是支持定时任务的;

  第三种:

  在实际开发中,目前使用最多的是spring框架提供的springTask框架;在这个框架中,只要进行简单的配置,就可以完成定时器的任务;

定时器的实现方法:

  首先new 一个Timer();

  语法:

  Timer timer=new Timer();  在括号内写上ture,为开启定时守护;

  使用schedule()方法;方法内有三个参数;

  第一个参数为:需要执行的程序;

  第二个参数为:第一次执行程序的时间;

  第三个参数为:每隔多长时间执行程序;

  Timer.schedule();

posted on 2022-03-04 14:41  Jron*  阅读(85)  评论(0)    收藏  举报