资讯专栏INFORMATION COLUMN

Java学习笔记3-Number,String,StringBuilder类

pkhope / 3051人阅读

摘要:创建字符串教程字符串长度用于获取有关对象的信息的方法称为访问器方法。类在中被提出,它和之间的最大不同在于的方法不是线程安全的不能同步访问。然而在应用程序要求线程安全的情况下,则必须使用类。

一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte、int、long、double 等。

在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java 语言为每一个内置数据类型提供了对应的包装类。

所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。

这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。Number 类属于 java.lang 包。

Math 类

Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。

Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。

public class Test {  
    public static void main (String []args)  
    {  
        System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2));  
        System.out.println("0度的余弦值:" + Math.cos(0));  
        System.out.println("60度的正切值:" + Math.tan(Math.PI/3));  
        System.out.println("1的反正切值: " + Math.atan(1));  
        System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI/2));  
        System.out.println(Math.PI);  
    }  
}
Character 类

Character 类用于对单个字符进行操作。
Character 类在对象中包装一个基本类型 char 的值。

char ch = "a";
 
// Unicode 字符表示形式
char uniChar = "u039A"; 
 
// 字符数组
char[] charArray ={ "a", "b", "c", "d", "e" };

然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情况。为了解决这个问题,Java语言为内置数据类型char提供了包装类Character类。

Character类提供了一系列方法来操纵字符。你可以使用Character的构造方法创建一个Character类对象,例如:

Character ch = new Character("a");

例如,将一个char类型的参数传递给需要一个Character类型参数的方法时,那么编译器会自动地将char类型参数转换为Character对象。 这种特征称为装箱,反过来称为拆箱

// 原始字符 "a" 装箱到 Character 对象 ch 中
Character ch = "a";
 
// 原始字符 "x" 用 test 方法装箱
// 返回拆箱的值到 "c"
char c = test("x");
String 类

字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。

创建字符串

String greeting = "Hello教程";

字符串长度
用于获取有关对象的信息的方法称为访问器方法。

String 类的一个访问器方法是 length() 方法,它返回字符串对象包含的字符数。

下面的代码执行后,len变量等于14:

public class StringDemo {
    public static void main(String args[]) {
        String site = "www.runoob.com";
        int len = site.length();
        System.out.println( "SF网址长度 : " + len );
   }
}

连接字符串:

String 类提供了连接两个字符串的方法:

string1.concat(string2);

更常用的是使用"+"操作符来连接字符串,如:

"Hello," + " runoob" + "!"
结果如下:

"Hello, runoob!"

举例:

public class StringDemo {
    public static void main(String args[]) {     
        String string1 = "菜鸟教程网址:";     
        System.out.println("1、" + string1 + "www.runoob.com");  
    }
}
格式化字符串

我们知道输出格式化数字可以使用 printf()format() 方法。

String 类使用静态方法 format() 返回一个String 对象而不是 PrintStream 对象。

String 类的静态方法 format() 能用来创建可复用的格式化字符串,而不仅仅是用于一次打印输出。

System.out.printf("浮点型变量的值为 " +
                  "%f, 整型变量的值为 " +
                  " %d, 字符串变量的值为 " +
                  "is %s", floatVar, intVar, stringVar);
StringBuffer,StringBuilder 类

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

public class Test{
  public static void main(String args[]){
    StringBuffer sBuffer = new StringBuffer("教程官网:");
    sBuffer.append("www");
    sBuffer.append(".runoob");
    sBuffer.append(".com");
    System.out.println(sBuffer);  
  }
}

结果打印:

教程官网:www.runoob.com

小结:

java 中 StringBuffer 和 String 是有一定的区别的,首先,String 是被 final 修饰的,他的长度是不可变的,就算调用 String 的
concat 方法,那也是把字符串拼接起来并重新创建一个对象,把拼接后的 String 的值赋给新创建的对象,而 StringBuffer 的长度是可变的,调用StringBuffer 的 append 方法,来改变 StringBuffer 的长度,并且,相比较于 StringBuffer,String 一旦发生长度变化,是非常耗费内存的!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/70821.html

相关文章

  • Java基础知识学习笔记(1)

    摘要:并没有对方法进行加同步锁,所以是非线程安全的。相同情况下使用相比使用仅能获得左右的性能提升,但却要冒多线程不安全的风险。水池异常表示程序可以处理的异常,可以捕获且可能恢复。 一、String, StringBuffer, StringBuilder 1、可变性 (1)String类型是使用一个final修饰的字符数组,因此它是不可变的。 private final char value...

    Leck1e 评论0 收藏0
  • Java String笔记

    摘要:这两个操作符都是编译器默认引入了类,最后都调用方法返回对象,临时对象被回收,因此效率极为低下 Java String类笔记 声明 文章均为本人技术笔记,转载请注明出处https://segmentfault.com/u/yzwall String的不可变性 String的不可变性 // String declaration public final class String ...

    Vicky 评论0 收藏0
  • Java基础(笔记)

    摘要:拆箱将包装类型转换为基本类型的过程。否则会抛出异常。默认采用单链表解决冲突,如果链表长度超过,将单链表转换为红黑树。内部使用红黑树实现,存储映射。红黑树减弱了对平衡的要求,降低了保持树平衡需要的开销,在实际应用中,统计性能超过平衡二叉树。 引言 showImg(https://segmentfault.com/img/bVbv7Mr?w=242&h=410); 在学习《Java编程的逻...

    PrototypeZ 评论0 收藏0
  • Java编程思想》笔记13.字符串

    摘要:的构造器经过重载可以接受多种输出目的地,不过最常用的还是和。组号为表示整个表达式,组号表示被第一对括号括起的组,依此类推。有多个重载的构造器,可以接受和对象。 点击进入我的博客 字符串操作是计算机程序设计中最常见的行为 13.1 不可变String String底层是由char[]实现的,是不可变的。看起来会改变String的方法,实际上都是创建了一个新的String对象,任何指向它...

    since1986 评论0 收藏0
  • JAVA学习之路 (八)字符串

    摘要:在中,字符串被作为类型的对象处理。所以我们看到上面的程序运行结果中,每个汉字对应两个字节值,如学对应,而英文字母对应。 字符串 在程序开发中字符串无处不在,如用户登陆时输入的用户名、密码等使用的就是字符串。 在 Java 中,字符串被作为 String 类型的对象处理。 String 类位于 java.lang 包中。默认情况下,该包被自动导入所有的程序。 String s1 = st...

    aaron 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<