java基础语法day10

API:

开发人员写好的类当我们要使用这些方法时

静态方法:类名.方法名

成员方法:对象.方法名

Object

当一个类没有直接继承某个类时,该类都是object的子类

  • toString()

    • 直接打印对象引用时,默认调用了toString方法

    • 继承了object,所以拿来重写

Math

ceil:向上取整

floor:向下取整

random:随机数0-1之间

Random

生成随机数int范围之间的整数,可以在bound自定义范围

Random().nextInt(bound)

String类

常用方法

 

 

 

String构造方法

 

  • 不可变性

    • 字符串底层使用一个用fnal修饰的char类型数组进行存储的,一旦初始化,就不能改变

    • 字符串存储在字符串常量池中,每当改变字符串变量时,常量池中会开辟一个新的字符串的空间,此时变量指向新的空间,达到值改变的效果

  • 字符串的初始化

    • 直接声明

    • 通过构造函数进行初始化

字符串的比较

  • “==”比较

    • 基本数据类型:比较的是内容

    • 引用数据类型:比较地址

 

 

  • equals比较

    • object类中的声明方法,使用的是“==”进行比较的,比较的是地址

      • 在字符串中比较的时候比较的是内容,因为在String类中重写了父类object中的equals方法,使其比较的是字符串的内容

     

String的常用方法

  • charAt()返回指定下标字符

 charAt(int idnex):返回指定下标字符
 ​
 例:
 String str = "123vasd";
 str.charAt(3);//获取第三个数字为v
  • concat()拼接字符串到末尾,返回一个新的字符串

 String str2 = str.concat("789");//"123vasd789”

  • endWith()判断字符串指定的字符串结尾

 str.endWith("asd")//true
  • startWith(String suffix) 判断字符串是否以指定的字符串开头

 str.startWith("123")//true
  • equalsImnoreCase(String anotherString):忽略大小写比较 ABC abc

 str.equalsIgnoreCase(str3)//true
  • indexOf ( )返回指定字符串在源字符串中第一次出现的下标

 str.indexOf(va)//3
  • lastIndexOf(String str) 返回指定字符串在源字符串中最后一次开始出现的下标

 str.lastIndexOf("va")//3
  • replace() 字符串的替换,返回一个新字符

 str.replace("va","av")//va替换成av
  • split()字符串分割

 String str4 = "民族、富强、和谐";
 str4.split("、");//转换成数组[富强, 民族, 爱情]
  • subString()从下表index开始对字符串进行截取

 String str = "123vasd";
  System.out.println(str.substring(2));//3vasd
  • toCharArray():将字符串转换成字符数组

  char [] c = str.toCharArray();
  System.out.println(Arrays.toString(c));//[1, 2, 3, v, a, s, d]
  • trim():去除两端字符串空白

    String str3 ="  hello  ";
    System.out.println(str3.trim());//hello

StringBuffer

可以存储操作字符串,存储的字符串值是可变的,可以堪称一个字符缓冲,在频繁操作字符串的时候节省空间

原因:在StringBuffer中用于存储字符串的Char【】没有使用final修饰,说明初始化后,值是可变的,当我们改变字符串的值时,不会开辟新的空间,直接在原有的空间上改变字符串的值,所以节约空间消耗

  • append(String str):拼接

     StringBuffer s = new StringBuffer("Java");
     s.append("  nihao ");//Java  nihao 
  • replace(int start,int end,String str)指定下标位置进行替换,左闭右开

  StringBuffer s = new StringBuffer("Java");
         String str = "**";
         s.replace(2,5,str);//Ja** 
  • setCharAt替换指定下标

  StringBuffer s = new StringBuffer("Java");
 s.setCharAt(2,'b');//Jaba
  • toString()把StringBuffer类型转换成String类型

 StringBuffer s = new StringBuffer("Java");
 s.toString();//Java
  • reverse() 翻转

 s.reverse();//abaJ

StringBuffer之间的比较

  • 不能使用equals去比较StringBuffer,因为没有从写equals方法,调用了object中的方法,是==

    • 比较时,转换成String类型使用equals比较

Date类

获取并操作时间的类

getTime()标识1970年1月1日 到现在的毫秒值

SimpleDateFormat类

  • 格式化日期

    • 使用SimpleDateFormat格式化日期

    • 使用format将指定日期格式转换成日期字符串

  Date date = new Date();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy年" + "MM月" + "dd日" + "HH时" + "ss分");
         String time = sdf.format(date);
         System.out.println(time);//2022年11月29日15时32分

parse(String s):指定的日期字符串转换成Date类型对象。

注意:字符串所标识的日期,格式必须和构造函数传递 的格式一致

     Date date = new Date();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH时ss分");
         String time = sdf.format(date);
         String dateStr ="2018年12月25日11时24分";
         Date d = sdf.parse(dateStr);
         System.out.println(d);

递归

方法自己调用自己,可以实现一些功能或者得到某些数据

根据公式

递归的的使用注意事项

  • 方法不能一直调用自己,必须加上方法结束的自调条件,否则会造成栈异常,消耗栈内存

  • 不要去递归构造函数(会无限创造对象)

  • 递归次数不宜太多

  • 方法调用的时候,会压栈

    • 出栈的条件

      • 执行return的时候出栈

      • 方法从上往下执行出栈

  • 总结数学公式,找到递归结束条件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值