Java学习记录(Day5)

  • 字符串

String 类  引用类型  默认值null  不是”“

1.声明字符串

2.字符串的拼接

(1)+  加号在拼接字符串和数学运算时优先级是一样的(都是从左向右开始计算)

(2)字符串和所有类型相加(+)得到的都是字符串

3.字符串比较equals

使用equals方法比较字符串 比较值。改写了Object类的equals方法,如果不改写就是比较两者的地址用==来比较。

4.String类型中常用的方法

valueOf----将传入的参数转成字符串

5.查找字符(字符串)出现的位置(index)

字符串会返回第一个元素的下标

找不到会返回-1

从后往前找使用lastindexOf()方法。

6.获取指定位置的字符charAt

7.替换replace

8.分割字符串split()

将2切掉,第一位是2的话,切割完是,开头。在最后是没有,号的

9.获取字符串的长度length()

10.去除前后空白位trim

可以去掉 空格,\n,\r,\t   但是不会去掉中间的空白位

11.大写小写(针对字母)toUpperCase  toLowerCase

12.判断是否为空串isEmpty()

13.以某个字符开始或结束 startsWith  endsWith

  1. 截取字符串substring

  • 字符串常量池

String 对象  定义后就不可改变  常量  private final 修饰value数组

字符串常量池  池  容器  重用  String 字符串定义后就不可改变  存在常量池里面

字符串怎样加入到常量池------使用量的方式声明的字符串就会加入到常量池中

程序中第一次使用量的形式定义“123”,会将这个字符串存入到<字符串常量池中>,之后再使用量的形式使用该对象,就执行使用常量池中的对象

strA和strB指向的是常量池中同一个字符串”123”,所以地址相同为true

New出来的就是新的,所以指向的对象不是同一个

以下是不同的示例:

定义一个确定的变量,也可以常量优化,但是构造方法只有在执行的时候才知道是什么

intern()

(1)返回 str对象在字符串常量池中的副本对象

(2)过程:检查str是否在字符串常量中存在副本,如果不存在就复制一份存入到常量池中

(3)然后返回常量池中的副本对象

(4)如果已经存在副本对象,直接返回副本对象,所以在new出新的字符串时会创建1个或2个对象

(5)如果两个字符串equals 为true,那么两个字符串的intern方法比较是一样的

  • StringBuilder和StringBuffer

在运行代码的时候,会产生中间串,会大大消耗内存,所以在拼接字符串时,不要产生中间串,可以使用StringBuilder  StringBuffer

调用append 往StringBuilder数组中追加字符,其中没有产生字符串对象

StringBuilder 和StringBuffer 都默认容量是 16

追加字符时容量不够就需要扩容(value)   默认原来的容量*2+2 具体可看append的方法介绍

两者之间的区别:StringBuffer安全但效率慢StringBuilder不安全但效率快

数组复制的实现:

参数的含义分别是:被复制的对象,开始复制的位置,目的对象,目的对象的开始复制的位置,复制数组的长度。

  • 日期Date

long 类型来表示日期 开始日期为1970-1-1  00:00:00  000

日期的类型 Date

  1. 获取当前时间对象-------执行时的时间

  1. 获取时间戳,每毫秒加一,从1970-1-1 00:00:00 000开始

示例:获取两天后的时间

通过改变时间戳,将时间戳赋值给date对象

  1. 获取月份

  1. 时间格式化

首先定义时间显示的模式,然后将date对象的格式化赋值给String对象打印出来

  1. 其他时间表示

当地的时间显示:

  • 随机数
  1. 假随机数 Math.random()

double类型的,Math.random()的取值范围是[0~1)之间的随机数

[8,90)可以看成[0,82),所以就是ran*82,但是还差8,所以要加8。

  1. 假随机数Random();

不带种子将会返回随机的数字,每次运行结果不一样

有种子无论程序运行多少次,返回结果都是一样的

  • 其余
  1. 取整(四舍五入)Math.round()

去掉小数点后面的数

Float 类型返回的是int类型,其余返回的是long类型

  1. 向上取整Math.ceil()

ranNum=12.5

  1. 向下取整Math.floor()

ranNum=12.5

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值