栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java基础(day6)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java基础(day6)

java基础


笔记的都是需要背诵的零散知识点,以顺序的方式组织


文章目录
    • java基础
    • 包装类
    • 1、包装类分类
    • 2、包装类和基本数据类型的转换
    • 3、int Integer转换
    • 4、包装类型和String类型转换
    • 5、Integer 类和 Character 类的常用方法
    • 6、String类
    • 7、StringBuffer
    • 8、StringBuilder
    • 9、String、StringBuffer 和 StringBuilder 的比较
    • 10、String、StringBuffer 和 StringBuilder 的选择


包装类 1、包装类分类
  • 八大基本数据类型包装成类,就有了类的特点,可以调用类的方法,能够更好的,更方便的使用。

    2、继承关系


2、包装类和基本数据类型的转换

1.jdk5前的手动装箱和拆箱方式,装箱:基本类型->包装类型,反之,拆箱
2. jdk5以后(含jdk5)的自动装箱和拆箱方式
3.自动装箱底层调用的是valueOf方法,比如Integer.valueof
4.其它包装类的用法类似.不—举例

3、int Integer转换

(1)手动装箱int->Integer
  int n=100;
  Integer integer1 =new Integer(n);
  Integer integer2 =Integer.ValueOf(n);
(2)手动拆箱Integer->int
  int i=interger1 .intValue();
(3)自动装箱int->integer
  int n=100;
  Integer integer3=n;
  //底层使用的是Integer.ValueOf(n)
(4)自动拆箱Integer->int
  int n3=integer2;
  //底层使用的仍然是intValue()方法

4、包装类型和String类型转换

  Integer i=100//自动装箱
(1)包装类型Integer->String

  • 方式1:
      String str1=i+"";
  • 方式2:
      String str2=i.toString();
  • 方式3:
      String str3=String。valueOf(i);

(2)String->包装类(Integer)
  String str4=“12345”;
  Interger i2=Integer .parseInt(str4);
  //使用到自动装箱
  Integer i3=new Integer(str4)//构造器

5、Integer 类和 Character 类的常用方法
  • System.out.printIn(Integer.MIN_VALUE);//返回最小值
  • System.out.println(Integer.MAX_VALUE);/返回最大值
  • System.out.println(Character.isDigit(‘a’));//判断是不是数字
  • System.out.printIn(Character.isLetter(‘a’));//判断是不是字母
  • System.out.printIn(Character.isUpperCase(‘a’));//判断是不是大写
  • System.out.println(Character. isLowerCase(‘a’));//判断是不是小写
  • System.out.println(Character. isWhitespace(‘a’));//判断是不是空格
  • System.out.printIn(Character.toUpperCase(‘a’));/I转成大写
  • System.out.printIn(Character.toLowerCase(‘A’));/转成小写
6、String类

(1)String类

  • String对象用于保存字符串,也就是一组字符序列
  • 字符串的字符使用Unicode字符编码,一个字符占两个字节(不区分字母还是汉字)
  • String类较常用构造器(看api)
  • 继承关系:
  • String类实现了接口Serializable【String 可以串行化:可以在网络中传输】
  • String类实现了接口Comparable【String对象可以比较大小】
  • String 是fianl类,不能被其他类继承
  • String有属性 private fianl char value[];用于存放自字符串内容
  • 注意:value是fianl类型,不可以修改,即value不能指向新的地址,但是单个字符内容是可以变化的

(2)创建String对象

方式一:直接赋值 String s =“asfdgh”;
方式二:调用构造器String s =new String(“adsfgh”);
两种创建方式的区别:

  • 方式一:先从常量池查看是否有"hsp”数据空间,如果有,直接指向;如果没有则重新创建,然后指向。S最终指向的是常量池的空间地址
  • 方式二:先在堆中创建空间,里面维护了value属性,指向常量池的hsp空间.如果常量池没有"hsp",重新创建,如果有,直接通过value指向。最终指向的是堆中的空间地址。
  • 内存分布图
  • 当调用intern 方法时,如果池已经包含一个等于此String对象的字符串(用equals(Qbject)方法确定),则返回池中的字符串。否则,将此 String对象添加到池中,并返回此 String对象的引用,b.intern()方法最终返回的是常量池的地址(对象)﹒

(3)字符串的特性

  • String是一个final类,代表不可变的字符序列
  • 字符串是不可变的。一个字符串对象一旦被分配,其内容是不可变的。

(4)String类常见方法

  • String类是保存字符串常量的。每次更新都需要重新开辟空间,效率较低,因比java设计者还提供了StringBuilder 和 StringBuffer来增强String的功能并提高效率。
    第一组:
  • equals //区分大小写,判断内容是否相等
  • equalslgnoreCase//忽略大小写的判断内容是否相等
  • length//获取字符的个数,字符串的长度
  • indexOf//获取字符在字符串中第1次出现的索引,索引从0开始,如果找不到,返-1
  • lastIndexOf//获取字符在字符串中最后1次出现的索引,索引从0开始,如找不到,返回-1
  • substring //截取指定范围的子串
  • trim//去前后空格
  • charAt:获取某索引处的字符,注意不能使用Str[index]这种方式
    第二组:
  • toUpperCase 转换成大写
  • toLowerCase转换成小写
  • concat 拼接字符串
  • replace 替换字符串中的字符,s1.replace() 方法执行后,返回的结果才是替换过的。注意对 s1 没有任何影响
  • split 分割字符串, 对于某些分割字符,我们需要 转义比如 | 等
  • toCharArray 转换成字符数组
  • compareTo 比较两个字符串的大小,如果前者大, // 则返回正数,后者大,则返回负数,如果相等,返回 0
  • format 格式字符串
7、StringBuffer

(1)StringBuffer 可变长度字符序列,可以对字符串内容进行增删,StringBuffer是一个容器
(2)StringBuffer解读

  1. StringBuffer 的直接父类 是 AbstractStringBuilder
  2. StringBuffer 实现了 Serializable, 即 StringBuffer 的对象可以串行化
  3. 在父类中 AbstractStringBuilder 有属性 char[] value,不是 final ,该 value 数组存放 字符串内容,引出存放在堆中的
  4. StringBuffer 是一个 final 类,不能被继承
  5. 因为 StringBuffer 字符内容是存在 char[] value, 所有在变化(增加/删除) ,不用每次都更换地址(即不是每次创建新对象), 所以效率高于 String,放在堆中
    (3)String->StringBuffer

    (4)StringBuffer->String

    (5)StringBuffer常见方法
  • s.append(“张三丰”);//“hello,张三丰”
    s.append(“赵敏”).append(100).append(true).append(10.5);//“hello,张三丰赵敏 100true10.5”
    追加,连续追加

  • s.delete(11, 14);删

  • s.replace(9, 11, “周芷若”);改

  • int indexOf = s.indexOf(“张三丰”);
    查找指定的子串在字符串第一次出现的索引,如果找不到返回-1

  • s.insert(9, “赵敏”); System.out.println(s);
    //“hello,张三丰赵敏周芷若 true10.5”

  • s.length()长度

8、StringBuilder

(1)一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步(StringBuilder 不是线程安全)。该类被设计用作 StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候。如果可能,建议优先采用该类因为在大多数实现中,它比 StringBuffer 要快[后面测]。
(2)在 StringBuilder上的主要操作是 append和 insert方法,可重载这些方法,以接受任意类型的数据。
(3)StringBuffer 解读

  • StringBuffer 的直接父类是AbstractStringBuilder
  • StringBuffer 实现了Serializable,即 StringBuffer的对象可以串行化
  • 在父类中AbstractStringBuilder有属性char[] value,不是finall
  • 该value数组存放字符串内容,引出存放在堆中的
  • StringBuffer是一个final类,不能被继承
  • 因为StringBuffer字符内容是存在 char[] value,所有在变化(增加/删除)不用每次都更换地址(即不是每次创建新对象),所以效率高于String
9、String、StringBuffer 和 StringBuilder 的比较

10、String、StringBuffer 和 StringBuilder 的选择

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/293334.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号