目录

--- Number & Math类

--- Character 类

--- String 类

--- StringBuffer 类

--- 数组

Number & Math类:

一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte、int、long、double 等。然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java 语言为每一个内置数据类型提供了对应的包装类,即编译器可以把内置类型可装箱为包装类。所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。相似的,编译器也可以把一个对象拆箱为内置类型。Number 类属于 java.lang 包。

public class Test{
public static void main(String args[]){
Integer x = ; //当 x 被赋为整型值时,由于 x 是一个对象,所以编译器要对 x 进行 装箱
x = x + ; //然后,为了使 x 能进行加运算,所以要对 x 进行 拆箱
System.out.println(x);
}
} /* 装箱就是自动将基本数据类型转换为包装器类型;
拆箱就是自动将包装器类型转换为基本数据类型。*/

Java Math 类:Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数,Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用.

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

Math实例

其他常用的 Number & Math类方法

序号    方法与描述
xxxValue():将 Number 对象转换为xxx数据类型的值并返回。
compareTo():将number对象与参数比较。
equals():判断number对象是否与参数相等。
valueOf():返回一个 Number 对象指定的内置数据类型
toString():以字符串形式返回值。
parseInt(): 将字符串解析为int类型。
abs(): 返回参数的绝对值。
ceil(): 对整形变量向左取整,返回类型为double型。
floor(): 对整型变量向右取整。返回类型为double类型。
rint(): 返回与参数最接近的整数。返回类型为double。
round(): 返回一个最接近的int、long型值。
min(): 返回两个参数中的最小值。
max(): 返回两个参数中的最大值。
exp(): 返回自然数底数e 的参数次方。
log(): 返回参数的自然数底数的对数值。
pow(): 返回第一个参数的第二个参数次方。
sqrt(): 求参数的算术平方根。
sin(): 求指定double类型参数的正弦值。
cos(): 求指定double类型参数的余弦值。
tan(): 求指定double类型参数的正切值。
asin(): 求指定double类型参数的反正弦值。
acos(): 求指定double类型参数的反余弦值。
atan(): 求指定double类型参数的反正切值。
atan2(): 将笛卡尔坐标转换为极坐标,并返回极坐标的角度值。
toDegrees(): 将参数转化为角度。
toRadians(): 将角度转换为弧度。
random(): 返回一个随机数。

常用 Math 类方法

Character 类:Character 类用于对单个字符进行操作

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

  • 将一个char类型的参数传递给需要一个Character类型参数的方法时,那么编译器会自动地将char类型参数转换为Character对象。 这种特征称为装箱,反过来称为拆箱。
  • 转义序列:前面有反斜杠(\)的字符代表转义字符,它对编译器来说是有特殊含义的
    转义序列    描述
    \t 在文中该处插入一个tab键
    \b 在文中该处插入一个后退键
    \n 在文中该处换行
    \r 在文中该处插入回车
    \f 在文中该处插入换页符
    \' 在文中该处插入单引号
    \" 在文中该处插入双引号
    \\ 在文中该处插入反斜杠

    转义序列

    eg:System.out.println("访问\"教程!\"");  //结果: 访问"教程!"
  • Character 类的方法,常用的如下:
    isLetter(): 是否是一个字母
    isDigit():是否是一个数字字符
    isWhitespace():是否是一个空格
    isUpperCase():是否是大写字母
    isLowerCase():是否是小写字母
    toUpperCase():指定字母的大写形式
    toLowerCase():指定字母的小写形式
    toString():返回字符的字符串形式,字符串的长度仅为1

    Character 类常用方法

    其余可自行查看

String 类:在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串

  • 创建字符串最简单的方式如下:String greeting = "欢迎来到 String!";
  • 和其它对象一样,可以使用关键字和构造方法来创建 String 对象。String 类有 11 种构造方法,这些方法提供不同的参数来初始化字符串,比如提供一个字符数组参数:
    public class StringDemo{
    public static void main(String args[]){
    char[] helloArray = { 'w', 'e', 'l', 'c', 'o', 'm', 'e'};
    String helloString = new String(helloArray);
    System.out.println( helloString );
    }
    }

    StringDemo.java 字符数组参数

  • 注意:String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了.eg:
    String s = "Google";
    System.out.println("s = " + s); // 输出 Google s = "Glossary";
    System.out.println("s = " + s); // 输出 Glossary /*从结果上看是改变了,但为什么门说String对象是不可变的呢?
    原因在于实例中的 s 只是一个 String 对象的引用,并不是对象本身,当执行 s = "Runoob"; 创建了一个新的对象 "Runoob",而原来的 "Google" 还存在于内存中。*/
  • String 类常用的方法:
    • 字符创长度 length(), eg: String str = "welc";  int len = str.length();
    • 连接字符串:string1.concat(string2); 或  string1 + shring2;
    • 创建格式化字符串:我们知道输出格式化数字可以使用 printf() 和 format() 方法。String 类使用静态方法 format() 返回一个String 对象而不是 PrintStream 对象。String 类的静态方法 format() 能用来创建可复用的格式化字符串,而不仅仅是用于一次打印输出。eg:
      System.out.printf("浮点型变量的的值为 " +
      "%f, 整型变量的值为 " +
      " %d, 字符串变量的值为 " +
      "is %s", floatVar, intVar, stringVar); /*你也可以这样写:*/
      String fs;
      fs = String.format("浮点型变量的的值为 " +
      "%f, 整型变量的值为 " +
      " %d, 字符串变量的值为 " +
      " %s", floatVar, intVar, stringVar);
    •     char charAt(int index):返回指定索引处的 char 值。
      int compareTo(Object o):把这个字符串和另一个对象比较。
      int compareTo(String anotherString):按字典顺序比较两个字符串。
      int compareToIgnoreCase(String str):按字典顺序比较两个字符串,不考虑大小写。
      String concat(String str):将指定字符串连接到此字符串的结尾。
      boolean contentEquals(StringBuffer sb):当且仅当字符串与指定的StringButter有相同顺序的字符时候返回真。
      static String copyValueOf(char[] data):返回指定数组中表示该字符序列的 String。
      static String copyValueOf(char[] data, int offset, int count):返回指定数组中表示该字符序列的 String。
      boolean endsWith(String suffix):测试此字符串是否以指定的后缀结束。
      boolean equals(Object anObject):将此字符串与指定的对象比较。
      boolean equalsIgnoreCase(String anotherString):将此 String 与另一个 String 比较,不考虑大小写。
      byte[] getBytes():使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
      byte[] getBytes(String charsetName):使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
      void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin):将字符从此字符串复制到目标字符数组。
      int hashCode():返回此字符串的哈希码。
      int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引。
      int indexOf(int ch, int fromIndex):返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
      int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引。
      int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
      String intern():返回字符串对象的规范化表示形式。
      int lastIndexOf(int ch): 返回指定字符在此字符串中最后一次出现处的索引。
      int lastIndexOf(int ch, int fromIndex):返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
      int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引。
      int lastIndexOf(String str, int fromIndex):返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
      int length():返回此字符串的长度。
      boolean matches(String regex):告知此字符串是否匹配给定的正则表达式。
      boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len):测试两个字符串区域是否相等。
      boolean regionMatches(int toffset, String other, int ooffset, int len):测试两个字符串区域是否相等。
      String replace(char oldChar, char newChar):返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
      String replaceAll(String regex, String replacement:使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
      String replaceFirst(String regex, String replacement): 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
      String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。
      String[] split(String regex, int limit):根据匹配给定的正则表达式来拆分此字符串。
      boolean startsWith(String prefix):测试此字符串是否以指定的前缀开始。
      boolean startsWith(String prefix, int toffset):测试此字符串从指定索引开始的子字符串是否以指定前缀开始。
      CharSequence subSequence(int beginIndex, int endIndex):返回一个新的字符序列,它是此序列的一个子序列。
      String substring(int beginIndex):返回一个新的字符串,它是此字符串的一个子字符串。
      String substring(int beginIndex, int endIndex):返回一个新字符串,它是此字符串的一个子字符串。
      char[] toCharArray():将此字符串转换为一个新的字符数组。
      String toLowerCase():使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
      String toLowerCase(Locale locale)
      :使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。
      String toString(): 返回此对象本身(它已经是一个字符串!)。
      String toUpperCase():使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
      String toUpperCase(Locale locale):使用给定 Locale 的规则将此 String 中的所有字符都转换为大写。
      String trim():返回字符串的副本,忽略前导空白和尾部空白。
      static String valueOf(primitive data type x):返回给定data type类型x参数的字符串表示形式。

      常见 String 类方法

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);
    }
    }

    StringBuffer 实例 Tese.java

  • Java 中 StringBuffer 和 String 是有一定的区别的:首先,String 是被 final 修饰的,他的长度是不可变的,就算调用 String 的 concat 方法,那也是把字符串拼接起来并重新创建一个对象,把拼接后的 String 的值赋给新创建的对象,而 StringBuffer 的长度是可变的,调用 StringBuffer 的 append 方法,来改变 StringBuffer 的长度,并且,相比较于 StringBuffer,String 一旦发生长度变化,是非常耗费内存的!
  • StringBuffer 类支持的主要方法
        public StringBuffer append(String s):将指定的字符串追加到此字符序列。
    public StringBuffer reverse():将此字符序列用其反转形式取代。
    public delete(int start, int end):移除此序列的子字符串中的字符。
    public insert(int offset, int i):将 int 参数的字符串表示形式插入此序列中。
    replace(int start, int end, String str):使用给定 String 中的字符替换此序列的子字符串中的字符。

    StringBuffer 类支持的主要方法

        int capacity():返回当前容量。
    char charAt(int index):返回此序列中指定索引处的 char 值。
    void ensureCapacity(int minimumCapacity):确保容量至少等于指定的最小值。
    void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin):将字符从此序列复制到目标字符数组 dst。
    int indexOf(String str):返回第一次出现的指定子字符串在该字符串中的索引。
    int indexOf(String str, int fromIndex):从指定的索引处开始,返回第一次出现的指定子字符串在该字符串中的索引。
    int lastIndexOf(String str):返回最右边出现的指定子字符串在此字符串中的索引。
    int lastIndexOf(String str, int fromIndex):返回最后一次出现的指定子字符串在此字符串中的索引。
    int length():返回长度(字符数)。
    void setCharAt(int index, char ch):将给定索引处的字符设置为 ch。
    void setLength(int newLength):设置字符序列的长度。
    CharSequence subSequence(int start, int end):返回一个新的字符序列,该字符序列是此序列的子序列。
    String substring(int start):返回一个新的 String,它包含此字符序列当前所包含的字符子序列。
    String substring(int start, int end):返回一个新的 String,它包含此序列当前所包含的字符子序列。
    String toString():返回此序列中数据的字符串表示形式。

    以下方法和 String 类的方法类似

Java 数组:Java 语言中提供的数组是用来存储 固定大小 的 同类型元素

  • 声明数组,语法:dataType[] arrayRefVar; ,eg:

    double[] myList;   //首选的方法,在Java中采用是为了让 C/C++ 程序员能够快速理解java语言
    /* 或 */
    double myList[]; //效果相同,但不是首选方法,该风格是来自 C/C++ 语言
  • 创建数组,语法:arrayRefVar = new dataType[arraySize]; //创建并赋值给变量 ,综合有以下方式:
    创建数组:arrayRefVar = new dataType[arraySize];
    声明和创建数组一句完成:dataType[] arrayRefVar = new dataType[arraySize];
    创建并初始化数组:dataType[] arrayRefVar = {value0, value1, ..., valuek};
    public class TestArray {
    public static void main(String[] args) {
    // 数组大小
    int size = ;
    // 定义数组
    double[] myList = new double[size];
    myList[] = 5.6;
    myList[] = 4.5;
    myList[] = 3.3;
    myList[] = 13.2;
    myList[] = 4.0;
    myList[] = 34.33;
    myList[] = 34.0;
    myList[] = 45.45;
    myList[] = 99.993;
    myList[] = ;
    // 计算所有元素的总和
    double total = ;
    for (int i = ; i < size; i++) {
    total += myList[i];
    }
    System.out.println("总和为: " + total);
    }
    }

    数组实例 TestArray.java

  • 处理数组,数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,我们通常使用基本循环或者 foreach 循环。
    public class TestArray {
    public static void main(String[] args) {
    double[] myList = {1.9, 2.9, 3.4, 3.5}; // 打印所有数组元素
    for (int i = ; i < myList.length; i++) {
    System.out.println(myList[i] + " ");
    } // 计算所有元素的总和
    double total = ;
    for (int i = ; i < myList.length; i++) {
    total += myList[i];
    }
    System.out.println("Total is " + total); // 查找最大元素
    double max = myList[];
    for (int i = ; i < myList.length; i++) {
    if (myList[i] > max) max = myList[i];
    }
    System.out.println("Max is " + max);
    }
    }

    基本循环 for 实例--算总和,找最大值

    JDK 1.5 引进了一种新的循环类型,被称为 foreach 循环或者加强型循环,它能在不使用下标的情况下遍历数组。

    public class TestArray {
    public static void main(String[] args) {
    double[] myList = {1.9, 2.9, 3.4, 3.5}; // 打印所有数组元素:使用加强循环
    for (double element: myList) {
    System.out.println(element);
    }
    }
    }
  • 数组作为函数参数:
    public static void printArray(int[] array) {
    for (int i = ; i < array.length; i++) {
    System.out.print(array[i] + " ");
    }
    } printArray(new int[]{, , , , , }); //调用上述方法,写入 main() 函数中

    数组作为参数传递给方法

    public static int[] reverse(int[] list) {
    int[] result = new int[list.length]; for (int i = , j = result.length - ; i < list.length; i++, j--) {
    result[j] = list[i];
    }
    return result;
    }

    数组作为函数的返回值-数组倒序

  • 多维数组,创建:
    /* 1 直接为每一维分配空间,格式如下:*/
    type arrayName = new typ[arraylenght1][arraylenght2]; //type 可以为基本数据类型和复合数据类型,arraylenght1 和 arraylenght2 必须为正整数,arraylenght1 为行数,arraylenght2 为列数。
    eg: int a[][] = new int[2][3] /* 2 从最高维开始,分别为每一维分配空间,例如:*/
    String s[][] = new String[][];
    s[] = new String[];//为最高维分配引用空间,即最高维限制其能保存数据的最长的长度
    s[] = new String[]; //为最高维分配引用空间,即最高维限制其能保存数据的最长的长度
    s[][] = new String("Good"); //然后为其每个数组元素单独分配空间 
    s[][] = new String("Luck");
    s[][] = new String("to");
    s[][] = new String("you");
    s[][] = new String("!");
  • Arrays 类:java.util.Arrays 类 能方便地操作数组,它提供的所有方法都是静态的。具有以下功能:
    • 给数组赋值:通过 fill 方法。
    • 对数组排序:通过 sort 方法,按升序。
    • 比较数组:通过 equals 方法比较数组中元素值是否相等。
    • 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
序号 方法和说明
1 public static int binarySearch(Object[] a, Object key)
用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。
2 public static boolean equals(long[] a, long[] a2)
如果两个指定的 long 型数组彼此相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。
3 public static void fill(int[] a, int val)
将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。
4 public static void sort(Object[] a)
对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。

Pre-article:Java 学习(5):修饰符 运算符

Next:java 日期时间 & 正则表达式

Java 学习(6):java Number & Math & String & 数组...常用类型的更多相关文章

  1. [ Java学习基础 ] Java的继承与多态

    看到自己写的东西(4.22的随笔[ Java学习基础 ] Java构造函数)第一次达到阅读100+的成就还是挺欣慰的,感谢大家的支持!希望以后能继续和大家共同学习,共同努力,一起进步!共勉! ---- ...

  2. [java学习笔记]java语言核心----面向对象之this关键字

    一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理:         代表的是当前对象.         this就是所在函数 ...

  3. [java学习笔记]java语言核心----面向对象之构造函数

    1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用:                给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...

  4. [ Java学习基础 ] Java构造函数

    构造方法是类中特殊方法,用来初始化类的实例变量,它在创建对象(new运算符)之后自动调用. Java构造方法的特点如下: 构造方法名必须与类名相同. 构造方法没有任何返回值,包括void. 构造方法只 ...

  5. [ Java学习基础 ] Java的抽象类与接口

    一.抽象类 1. 抽象类 Java语言提供了两种类:一种是具体类:另一种是抽象子类. 2. 抽象类概念: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的 ...

  6. java学习笔记--java中的基本数组[5]

    java基础很重要, 今天呆家看java视频,顺便总结前几周看的java书籍,做一下简单的总结:1:数组的声明,2:数组的赋值: 3:数组的方法: 声明一个数组主要有两种方式: //类型 []数组名字 ...

  7. Java学习笔记-文件读写和Json数组

    Java文件读写 Java中I/O流对文件的读写有很多种方法,百度后主要看了以下三种 第一种方式:使用FileWriter和FileReader,对文件内容按字符读取,代码如下 String dir ...

  8. Java学习日记-4 StringBuffer类和数组

    一.StringBuffer类 StringBuffer是一个可变字符序列. 1.1 构造函数 StringBuffer() 构造一个不带字符的字符缓冲区,初始容量为16个字符. StringBuff ...

  9. java学习路线图-----java基础学习路线图(J2SE学习路线图)

    安装JDK和开发软件跳过,网上太多了,不做总结,以下是我总结的学习路线图,欢迎补充. JAVA基础语法 注释,标识符命名规则及Java中的关键字 Java基本数据类型 Java运算符与表达式 Java ...

随机推荐

  1. Left Join 时筛选条件在on后与where后的区别

    a left join  b 时限制条件在on后, 相当于先筛选右连接表b的数据后,再进行数据连接.形成最终的集合. 这时不影响a表中相关字段的显示. SELECT T001W~WERKS, LGOR ...

  2. $割点割顶tarjan$

    原题 #include <bits/stdc++.h> using namespace std; typedef long long LL; inline LL read () { LL ...

  3. springmvc中的web.xml配置(包含中文乱码解决)

    <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:// ...

  4. 通过创建元素从而实现三个下拉框的联动效果(create.Element("option"))和提交表单时的验证p.match("请选择")

    <html> <head> <meta charset="utf-8"> <title>下拉框</title> < ...

  5. C#模拟百度登录并到指定网站评论回帖(三)

    上次说到怎么获取BAIDUID,这个相信很多人都能够拿到就不多说了,今天一连说两个,获取token和raskey 2.利用以上获得的cookie直接访问页面 https://passport.baid ...

  6. EasyUI系列学习(六)-Tooltip(提示框)

    一.创建组件 0.Tooltip不依赖其他组件 1.使用class加载 <a href="#" class="easyui-tooltip" title= ...

  7. Laravel5.1学习笔记23 Eloquent 序列化

    Eloquent: Serialization Introduction Basic Usage Hiding Attributes From JSON Appending Values To JSO ...

  8. Android setOnPageChangeListener 过时了怎么办?

    今天使用ViewPager发现setOnPageChangeListener的方法居然过期了,而且AS编译不通过了,最后查了一下原来把set换成add了,代码如下: setOnPageChangeLi ...

  9. Android基础TOP6_2:Gallery +Image完成画廊

    Activity: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmln ...

  10. Chromium浏览器编译成功庆祝

     1.什么是Chromium     Chromium 是Google公司的开源项目     Google浏览器  最新版360浏览器 都是在Chromium的基础上重新编译的. 2.什么是双核浏览器 ...