Java基础(六)

  1. 简单的符号位并不能区分正负数,如:+0、-0。为了避开+0、-0,负数补码的符号位不变,其余按位取反后+1
  2. 枚举类:一个类固定了对象的个数,不能通过其他方式新建,比如:new方式
  3. 字符串底层是char类型的基本数组
  4. String xx=""; 占用内存,空的字符串并不是空的,有\0,因为在c语言中 char aa[]={ 'a','b','c','\0'};
  5. 字符串算法:
  • 获取子字符串(字符串截取,substring(,) )
  • 替换字符串(所有的“发艾克”都被替换,replace(,)
  • 判断是否是一个字符串的子串(如果输出为-1,则不是子串,输出为其他数字,则代表从哪开始有这个子串;indexof()
  • 字符串拼接(输出结果为xx字符串后面加上23;3333)
  • 字符串切分(split() 切分结果用逗号表示)
Syetem.out.println(ww.replace(" ","")); 意思是将空格替换成空字符串,输出结果为
  1. 不可变字符串原地址内存的数据不变
  • 字符串的值发生变化,不在原来的地方进行修改,而是申请新的空间
  • 若原来的空间足够大,为什么不用原来的空间?
将aaa改成kk,需要两个边界,不然读出来的数据是kka,两个边界比较麻烦。所以原来的空间是不能用的。
  1. 字符串常量池 
字符串常量池在 中,常量池内没有被指向的数据空间不会被 回收,清掉。
基本类型==基本类型,比较的是 是否相等,输出结果为true。
引用类型==引用类型,比较的是 指向是否相同。如果是一个单等于号,意思是保持指向相同。
new方法创建的对象不在字符串常量池中,并且k5,k6有自己独立的空间和地址,即使k5和k6的数据一样。除非String k7=k6,这样k7和k6指的是同一块内存,同一块地址。
  1. 检测字符串的值是否相等 
equals 本身就相当于== 比较 地址指向是否相同 ,在 字符串类中重写了,String里面的equals只比较 字面值
  1. null串不占空间,没有任何指向,不消耗空间;"" 空字符串占用空间,有指向,消耗空间(面试点
  2. 码点(编码值)与代码单元(存储单位,2B)
码点,输出的数字为哈的编码值
  1. 字符串包括:汉字、字母、数字、几何图形(%)、换行、空格
  2. 字符串拼接
使用StringBuilder拼接速度更快
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值