一、Java基本数据类型
Java原生有8种基本数据类型:整型(int short long byte)浮点型(double float)字符型(char)布尔型(boolean)。注意:在Java中没有任何无符号(unsigned)形式的int long short 或byte类型。特别注意char是两个字节的,范围是0~65535,存的是Unicode编码(强烈建议不要在程序中使用char类型,除非确实要处理UTF-16代码单元。最好将字符串作为抽象数据类型处理)。short是两个字节,int是四个字节,long是八个字节,类型大小是固定的,与平台无关。boolean类型有两个值:false和true,用来判断逻辑条件。整型值和布尔值之间不能进行互相转换。
public class BasicTypeDemo { public static void main(String[] args){ System.out.println("Byte"); System.out.println(Byte.MIN_VALUE); // -128 System.out.println(Byte.MAX_VALUE); // 127 System.out.println("Short"); System.out.println(Short.MIN_VALUE); // -32768 System.out.println(Short.MAX_VALUE); // 32767 System.out.println("Character"); System.out.println((int)Character.MIN_VALUE); // 0 System.out.println((int)Character.MAX_VALUE); // 65535 System.out.println("Integer"); System.out.println(Integer.MIN_VALUE); // -2147483648 System.out.println(Integer.MAX_VALUE); // 2147483647 System.out.println("Long"); System.out.println(Long.MIN_VALUE); // -9223372036854775808 System.out.println(Long.MAX_VALUE); // 9223372036854775807 System.out.println("Float"); System.out.println(Float.MIN_VALUE); // 1.4E-45, 最小精度值,而不是最小值(-Float.MAX_VALUE) System.out.println(Float.MAX_VALUE); // 3.4028235E38 System.out.println("Double"); System.out.println(Double.MIN_VALUE); // 4.9E-324,最小精度值,而不是最小值(-Double.MAX_VALUE) System.out.println(Double.MAX_VALUE); // 1.7976931348623157E308 }
但在实际使用过程中往往需要基本数据类型的包装类。严格来说Java并不是纯的面向对象的编程语言,因为其基本数据类型不是对象。但是可以通过包装类进行转换。这样基本数据类型就可以当作对象来使用。
基本数据类型 包装类 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean
二、字符串
String底层使用char[]存储,Unicode编码,而且所有需要改变字符串状态的方法都通过创建新的字符串实例返回,不会改变字符串的底层数据,即状态不可变,线程安全。另String用了final修饰,即不可以再被继承。如果字符串需要频繁修改,使用StringBuilder,主要有append方法。String比较有用的方法有:
public class Main { /* String类的常用方法 */ public static void main(String[] args) { String a = "Hello "; String b = "World "; //返回字符串长度 System.out.println(a.length()); System.out.println(b.length()); //返回给定位置的代码单元,即将字符串当成数组返回给定下标的字符 System.out.println(a.charAt(0)); System.out.println(b.charAt(1)); //判断字符串是否相等 System.out.println(a.equals(b)); System.out.println(a.equalsIgnoreCase(b)); //忽略大小写 //子串查找,返回第一个对应的位置 System.out.println(a.indexOf("e")); System.out.println(b.indexOf("l", 1));//从指定位置向后查找 System.out.println(a.lastIndexOf("e"));//返回最后一次匹配成功的位置 System.out.println(b.lastIndexOf("l", 1));//从指定位置向后查找 //字符串的替换,返回一个新的字符串 System.out.println(a.replace("l","k")); //提取子串 System.out.println(b.substring(2));//提取指定位置之后的所有字符 System.out.println(b.substring(2, 3));//提取指定位置之间的字符 //返回一个新的字符串,大小写转换 System.out.println(a.toLowerCase());//转成小写 System.out.println(b.toUpperCase());//转成大些 //返回一个新的字符串,删除字符串前后的空格 System.out.println(a.trim()); //字符串拼接 System.out.println(a + b); System.out.println(String.join("*", a, b)); } }
注意:equals():检测字符串是否相等,不等使用==来判断字符串是否相等,只能判断两个字符串是否存储在同一位置。(在相等性检测中,对象类型只能用equals来检测,==只能判断两种类型的存储位置是否相等,如果位置想等,那么类型的内容一定相等)对于枚举类型永远不需要equals(),只需要==就可以了。
空串和null串:空串是一个Java对象,有长度(0)和内容(空)。null串则表示目前没有任何对象与该变量关联。
三、简单输入输出
import java.util.Scanner; public class Main { /* String类的常用方法 */ public static void main(String[] args) { Scanner in = new Scanner(System.in);//创建一个Scanner对象 System.out.println(in.nextLine());//读取输入的下一行内容 System.out.println(in.next());//读取输入的下一个单词(以空格作为分隔符) System.out.println(in.nextInt());//读取下一个表示整数的字符序列 System.out.println(in.nextDouble());//读取下一个表示浮点数的字符序列 System.out.println(in.hasNext());//检测输入中是否还有其他单词 System.out.println(in.hasNextInt());//检测是否还有表示整数的下一个字符序列 System.out.println(in.hasNextDouble());//检测是否还有表示浮点数的下一个字符序列 } }
三、数组
数组是一种数据结构,用来存储同一种类型值的集合。
import java.lang.reflect.Array; import java.util.Arrays; public class Main { /* String类的常用方法 */ public static void main(String[] args) { //int[] a = new int[10]; 定义数组 int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};//初始化数组 //遍历数组for循环,for each循环 for(int i = 0; i < 10; i++) System.out.print(a[i] + " "); System.out.println(); for(int i : a) System.out.print(i + " "); System.out.println(); //数组的拷贝 int[] b = a;//两个变量引用同一个数组 int[] c = Arrays.copyOf(a, 5); for(int i : c) System.out.print(i + " "); System.out.println(); int[][] d = {{1, 2, 3}, {4, 5, 6}}; for(int[] i : d) for(int j : i) System.out.print(j + " "); System.out.println(); System.out.println(Arrays.deepToString(d)); } }
三、控制语句
Java的控制语句:if(condition) statement1 else statement2, while(condition) statement, do statement while(condition), for(;;)确定循环,switch(case:)case类型可以为整型常量,枚举类型,SE7开始,支持字符串字面。Java中提供了一种带标签的break语句。在多层循环中很有用。(java 控制语句比较简单,便不再赘述)