JAVA支持的类型分为两类:基本类型/原生类型(Primitive Type)和引用类型(Reference Type)
1. Java包含8种原生数据类型:
byte, short, int, long, float, double, boolean, char
8种Wrapper类
Byte, Short, Integer, Long, Float, Double, Boolean, Character
2. 引用类型包括类、接口、数组类型,还有一种特殊的null类型
整型字面值:十进制、二进制(0b/0B)、八进制(0)、十六进制(0x/0X)
package Content; import java.util.Arrays; public class DataTypeDemo { public static void main(String[] args) { int a = 10; int b = 0b1001; int c = 076; int d = 0xff; // 浮点字面值:包含小数部分的数值 float e = 3.14f; double f = 3.14; // 布尔字面值:true、false boolean g = true; // 字符字面值:包含在单引号中的单个字符 char h = 'a'; // 字符串字面值:包含在双引号中的一串字符 String k = "Hello"; System.out.println("a = " + a); // 将整型转成二进制、八进制和十六进制字符串 System.out.println("b = " + Integer.toBinaryString(b)); System.out.println("c = " + Integer.toOctalString(c)); System.out.println("d = " + Integer.toHexString(d)); System.out.println("e = " + e); System.out.println("f = " + f); System.out.println("g = " + g); System.out.println("h = " + h); System.out.println("i = " + k); /*Java 数据类型: 基本数据类型 * byte short int long float double char boolean * 引用数据类型: * 类、数组、接口 * 数组初始化: * 静态初始化 */ // **************一维数组************* //静态初始化 int[] intArray; //声明 intArray = new int[] {1,2,3,4}; //初始化 //声明+初始化 int[] intArray1 = new int[] {1,2,3,4,5}; int[] intArray2 = {1,2,3,4,5,6}; //动态初始化 int[] intArray3 = new int[5]; for(int i=0; i<intArray3.length; i++) { intArray3[i] = i; } //for循环遍历 for (int i=0; i<intArray3.length; i++) { System.out.print(intArray3[i] + " "); } System.out.println(); // for-each循环遍历 for (int value : intArray3) { System.out.print(value + " "); } System.out.println(); // Arrays.toString():将数组转换为String System.out.println("intArray3 is" + Arrays.toString(intArray3)); int[] intArray4 = { 6, 7, 8, 9, 10 }; intArray3 = intArray4;// **** System.out.println("intArray3 is" + Arrays.toString(intArray3)); intArray4[4] = 100; System.out.println("intArray3 is" + Arrays.toString(intArray3)); // *********二维数组*********** int[][] intArray5 = new int[][] { { 1, 2 }, { 3, 4 }, { 5, 6 } }; int[][] intArray6 = { { 1, 2 }, { 3, 4 }, { 5, 6 } }; int[][] intArray7 = new int[3][2]; // 二维数组的遍历 for (int i = 0; i < intArray7.length; i++) { for (int j = 0; j < intArray7[i].length; j++) { intArray7[i][j] = i * j; } } String m = "20"; String n = "30"; // 此时“+”号为连接字符串 System.out.println(m + n); // 将字符串转成整型再相加 System.out.println(Integer.parseInt(m) + Integer.parseInt(n)); } }
String
package Content; import java.util.*; public class StringDemo { /* * String 不可变类: * 字符串的内容不可变,一旦创建了 String 对象,那它的值就无法改变; * String 引用的字符串变量可以改变 * 只能产生一个新的变量,使string1指向变量的地址改变 * 字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类 * */ public static void main(java.lang.String[] args) { Scanner scanner = new Scanner(System.in); String string1 = "Hello World"; String string2 = string1; System.out.println(string1); System.out.println(string2); System.out.println(string1 == string2); System.out.println(); string1 += " and Java !"; System.out.println(string1); System.out.println(string2); System.out.println(string1 == string2); System.out.println(string1.length()); System.out.println(string1.charAt(4)); System.out.println(string1 == string2); /*比较两个字符串是否相等: * equals():区分大小写 * equalsIgnoreCase():不区分大小写 */ System.out.println("equals()&equalsIgnoreCase()"); System.out.println(string1.equals(string2)); System.out.println(string1.equalsIgnoreCase(string2)); /*比较两个字符串大小: * 按字典顺序比较两个字符串的大小 * compareTo() :区分大小写 * compareToIgnoreCase():不区分大小写*/ String stringa = "Hello Word"; String stringb = "hello word"; System.out.println(stringa.compareTo(stringb)); System.out.println(stringa.compareToIgnoreCase(stringb)); /* startsWith():判断字符串是不是以特定的字符开头 * endsWith():判断字符串是不是以特定的字符结束*/ System.out.println("startsWith&endsWith"); System.out.println(string1.startsWith("Hello")); System.out.println(string1.endsWith("Java")); String string3 = "Hello"; String string4 = "world"; System.out.println(string3 + string4); //concat() 连接两个字符串 System.out.println(string1.concat(string2)); /* toUpperCase(): 将字符串转换为大写 * toLowerCase():将字符串转换为小写*/ System.out.println(string1.toUpperCase()); System.out.println(string1.toLowerCase()); // trim()去掉起始和结束的空格 String string5 = " Hello World "; System.out.println(string5.trim()); /*substring(beginIndex,endIndex)截取字符串 * 输出的结果第一条为“Hello”, * 第一个参数0(beginIndex)是开始截取的位置, * 第二个参数5(endIndex)是截取结束的位置,输出的结果第二条是“Word”, * 参数6(beginIndex)是开始截取的位置。 * */ String string6 = "Hello Word"; System.out.println(string6.substring(0, 5)); System.out.println(string6.substring(6)); /* * indexOf():查找字符或字符串第一次出现的地方 * lastIndexOf():查找字符或字符串最后一次出现的地方*/ String string7 = "Hello Word"; System.out.println(string7.indexOf("o")); System.out.println(string7.lastIndexOf("o")); //字符串常量池 String string8 = "Hello"; String string9 = "Hello"; System.out.println(string7 ==string8); String string10 = "Hello"; String string11 = "Hello"; System.out.println(string9 ==string10); //replace() 替换: String a = "Hello Word"; String b = "你好"; System.out.println(a.replace(a, b)); System.out.println(a.replace(a, "HELLO WORD")); System.out.println(b.replace("你", "大家")); //进制转换 //把int型数据转换乘X进制数并转换成string型 System.out.println("进制转化:"); int num = scanner.nextInt(); int x = scanner.nextInt(); String s = Integer.toString(num, x); System.out.println(s); //把字符串当作X进制数转换成int型 int y = Integer.parseInt(s, x); System.out.println(y); //stringBuilder:不是线程安全的 优先使用 效率更高 //stringBuffer: 是线程安全的 StringBuilder stringBuilder = new StringBuilder("ruists"); StringBuilder stringBuilder2 = stringBuilder; //append():将指定的字符串追加到此字符序列。 stringBuilder.append(" are good for health"); System.out.println(stringBuilder); //delete():移除此序列的子字符串中的字符。 stringBuilder.delete(10, 15); System.out.println(stringBuilder); //insert():将 String 参数的字符串表示形式插入此序列中 stringBuilder.insert(10, " AAAA "); System.out.println(stringBuilder); //reverse():将此字符序列用其反转形式取代。 stringBuilder.reverse(); System.out.println(stringBuilder); //replace():使用给定 String 中的字符替换此序列的子字符串中的字符。 stringBuilder.replace(0, 6, "RUISTS"); System.out.println(stringBuilder); System.out.println(stringBuilder == stringBuilder2); String string = stringBuilder.toString(); } }