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

Java--高级基础的学习总结

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

Java--高级基础的学习总结

 字符串(String)
  • String是一个类,属于引用类型。字符串定义后,其值不可更改是一个常量。

如果要频繁更改字符串中的值,建议使用StringBuilder类或StringBuffer类。

//100次的循环,会创建100个字符串对象,但最终只有最后的字符串对象对str引用.
//其余字符串均为“垃圾”
  System.out.println("程序执行开始");
      String str = "a";
    for (int i=0;i<100;i++){
    str+=i;
    }
  System.out.println("程序执行结束");
//由此可见,如果要频繁更改String类型变量的值。
//不要使用String对象操作字符串,效率会很低又浪费内存空间。
创建字符串方法
  1. 使用""赋值创建
    String str = "hello world";
  2. 通过构造方法创建
    常用构造方法说明
    String() 创建一个空白字符串对象,实际创建一个空字符数组 。
    String(String str)创建一个指定的字符串对象,实际是创建一个形参字符串的副本。
    String(char[] list)创建一个指定字符数组的字符串对象。
    String(byte[] list) 按默认编码格式创建一个指定字节数组的字符串对象。
     String(byte[] list,String charsetName)按指定的编码格式创建一个指定字节数组的字符串对象。
 使用字符串注意事项
  • 在使用字符串时,如果要比较其值是否相同,不要使用"=="进行判断。因为使用等号比较的是其内存地址。
  • 在使用equals方法时,通常要将已知的非空字符串作为调用者。
    //如果这样写,在password变量为null的情况下,运行时会报空指针异常错误。
      password.equals("123456");
    
    //像这样将已知非空的字符串作为调用对象,就可以避免空指针异常。
      "123456".equals(password);
 
可变字符串 StringBuilder类
  • 用于表示可变字符串的一个类,是非线程安全的,建议在单线程环境下使用,效率 略高于StringBuffer。
StringBuffer类
  • 用于表示可变字符串的一个类,是线程安全的,建议在多线程环境下使用,效率略低于StringBuilder。
  • 俩者方法作用都一致。只不过StringBuffer中的方法使用了synchronized关键字修饰,表示同步方法,在多线程环境下不会出现问题。( 所以这里以StringBuilder为例。)
构造方法
常用构造方法 作用
StringBuilder()创建一个大小为16的字符数组。类似于String str="";
StringBuilder(int capacity)创建一个指定大小的字符数组
StringBuilder(String str)创建一个str长度+16的字符串数组后,将str添加到其中。类似于String str="初始值";
普通方法
方法作用
append(Object obj)将指定内容添加到原可变字符串对象末尾
delete(int start,int end)删除[start,end)范围内的字符
deleteCharAt(int index)删除指定索引的字符
insert(int index,Object obj)将obj添加到index位置上
replace(int start,int end,String str)将[start,end)范围内的字符替换为str
reverse()翻转原字符串
注意
  • 以上方法都是在直接操作字符串,每个方法调用后,原字符串都会发生变化。
  • StringBuilder或StringBuffer中并没有重写equlas方法,所以要比较两个可变字符串对象的值是否相同时,需要将可变字符串对象转换为String对象后,调用equals方法比较。
  • 在程序中,如果要频繁操作某个字符串,一定使用可变字符串类StringBuilder或StringBuffer创建对象。

可变字符串与不可变字符串之间的转换
  • 有些方法如indexOf()、charAt()等,在String和StringBuilder中都存在,可以不用转换。
  • 但有些方法如getBytes()、contains()等,只能通过String调用,这时就需要进行转换。
不可变字符串转换为可变字符串
  • 通过创建一个可变字符串对象,将不可变字符串作为参数实现转换
//定义一个不可变字符串对象
  String str="hello";
//创建一个可变字符串对象,将不可变字符串对象作为参数
  StringBuilder sb = new StringBuilder(str);
可变字符串转换为不可变字符串
  • 通过调用可变字符串的toString()方法实现转换
//创建一个可变字符串对象
  StringBuilder sb = new StringBuilder("hello");
//调用toString()转换为String类型
  String str=sb.toString();
System类
  • 这个类包含了一些系统相关的信息和操作数组的方法。其中的方法和属性都是静态的。
    常用属性和方法作用
    System.in获取系统输入流对象,通常用于获取输入信息。
    System.out获取系统打印输出流对象,通常用于打印普通信息。
    System.err获取系统打印输出流对象,通常用于打印异常信息。
    System.exit(int statues)终止虚拟机运行,0表示正常结束。
    System.getenv(String key)获取系统指定环境变量信息。
    System.arraycopy(原数组,原数组起始位置,目标数组,目标数组起始位置,原数组要赋值的元素数量)将原数组中指定长度的元素复制到新的数组中。
    System.currentTimeMills()获取从1970.1.1 0:0:0(UTC)至今经过了多少毫秒。中国是UTC(+8),所以是从1970.1.1 8:0:0至今经过了多少毫秒,返回long类型。
Runtime类
  • Runtime类的对象,用于表示程序运行时对象(获取运行环境对象)
  • 包含了程序运行环境相关的信息,常用于获取运行环境信息(如虚拟机内存)或执行某个命令
特点:
  1. 这个类不是一个抽象类,但不能创建对象,因为其构造方法是私有的。
  2. 可以通过它的一个静态方法getRuntime()获取一个Runtime类对象。
包装类
  • Java是纯面向对象语言,宗旨是将一切事物视为对象处理。
  • 原始类型不属于对象,不满足面向对象的思想,但原始类型使用时无需创建对象,保存在栈中,效率更高。
  • 包装类就是原始类型对应的类型。包装类通常用于将字符串转换为对应的原始类型。
  • 在web应用中,从浏览器中获取到后台的数据,全是String类型,一定要使用转换的方法。
    包装类原始类型将字符串转换为原始类型
    BytebyteByte.parseByte(String str)
    ShortshortShort.parseShort(String str)
    IntegerintInteger.parseInt(String str)
    LonglongLong.parseLong(String str)
    FloatfloatFloat.parseFloat(String str)
    DoubledoubleDouble.parseDouble(String str)
    BooleanbooleanBoolean.parseBoolean(String str)
    Characterchar
特点
  • 八个原始类型中,除了int和char之外,其余类型的包装类,都是将首字母改为大写。int为Integer,char为Character。
  • 除了Character类之外,其余类都有至少两个构造方法:参数为原始类型或字符串的构造方法。Character的构造方法只有一个,参数为char变量。
  • 除了Character类之外,其余类都有静态方法parse原始类型(String str),用于将字符串转换为相应的原始类型
    • 数值型的包装类的parseXXX()方法,如果不是一个真正的对应类型的数,转换时会抛出NumberFormatException异常。如"123abc"、"123.456"都不能使用Integer.parseInt()转换
    • Boolean类型中的parseBoolean()方法,参数如果是"true"这个单词,无论大小写,都能转换为真正的boolean值的true,只要不是"true"这个单词,转换结果都为false
  • 除了Boolean类之外,其余类都有MAX_VALUE和MIN_VALUE这两个静态属性,用于获取对应原始类型支持的最大最小范围
  • 所有包装类中都有一个compareTo(参数1,参数2)方法,用于比较两个参数
    • 如果是数值型,参数1>参数2返回1,参数1<参数2返回-1,相同返回0
    • 如果是Boolean型,两个参数相同返回0,不同时,如果参数1为true返回1,否则返回-1
    • 如果是Character型,返回参数1-参数2的值。
  • 所有包装类中都有toString()方法,用于将包装类对象转换为String字符串对象

总结:

        作为一个还不算小白的我,并且没有经历过社会的毒打与考验。自己依然坚定能开发行业当中创出一片属于自己的白云蓝天。内容可能有点抽象,只有不断地尝试,不断地敲代码。俗话:时间才是检验真理的唯一标准。学习如此,生活亦如此。只有不断尝试,不断经历,不断犯错。才能找到完美的自己。活得更像自己。所以虽抽象,多多练习,多多尝试,有的东西不懂也会从体会中慢慢地理解。只有磨平生活的棱角,才会体会得到生活的本质。

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

版权所有 (c)2021-2022 wk8.com.cn

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