以下是关于java中8种基本类型的介绍说明:
1 package cn.review.day01; 2 /** 3 * java基础复习,8种数据类型 4 * (byte,short,long,int,double,float,boolean,char) 5 * @author dyq 6 * 7 */ 8 public class JavaBase01 { 9 public static void main(String[] args) { 10 /** 11 * 整数类型 byte,short,int,long 12 * byte范围:-128~127,1个字节 13 * short范围:-2的15次方~2的15次方-1,2个字节 14 * int范围:-2的31次方~2的31次方-1,4个字节 15 * long范围:-2的63次方~2的63次方-1,8个字节,声明方式一般后缀加L; 16 * 以下为一般申明方式 17 */ 18 byte b = 127; 19 System.out.println(b); 20 short s = 123; 21 System.out.println(s); 22 int i = 10; 23 System.out.println(i); 24 long l = 100000000L; 25 System.out.println(l); 26 /** 27 * 浮点型 28 * float范围:10的-38次方到10的38次方,4个字节,声明方式必须后缀加f 29 * double范围:10的-308次方到10的308次方,8个字节 30 */ 31 float f = -4.23f; 32 double d = 4.23; 33 /** 34 * 布尔类型:boolean 35 */ 36 boolean bool = true; 37 System.out.println(bool); 38 /** 39 * 字符类型 40 * char:使用单引号括起来,2个字节 41 */ 42 char c = 'a'; 43 System.out.println(c); 44 45 } 46 }
关于String,StringBuffer,StringBuilder的相关介绍以及区别说明:
package cn.review.day01; /** * String,StringBuffer,StringBuilder的介绍 * 三者的区别: * 1.执行速度方面:StringBuilder>StringBuffer>String * 2.StringBuilder是线程不安全的,而StringBuffer是线程安全的 * * 使用场景: * String适用于少量字符串操作的情况下 * StringBuilder适用于单线程情况小,在字符缓存区进行大量操作的情况下。 * StringBuffer适用于在多线程的情况下,在字符缓存区进行大量操作的情况下。 * @author dyq * */ public class JavaBase02String { public static void main(String[] args) { /** * String为字符常量,长度不可变,不可变常量是线程安全的。 * String类型比较不同对象内容是否相同,应该用equals,因为==用于比较引用类型和比较基本数据类型时具有不同的功能。 * 如果String缓冲池内不存在与其指定值相同的String对象,那么此时虚拟机将为此创建新的String对象,并存放在String缓冲池内。 * 如果String缓冲池内存在与其指定值相同的String对象,那么此时虚拟机将不为此创建新的String对象,而直接返回已存在的String对象的引用。 */ String a = "aaa"; System.out.println(a); String str1 = "aaab"; String str2 = a+"b"; System.out.println(str1==str2);//false System.out.println(str1.equals(str2));//true /** * StringBuffer为字符串变量,查看源码发现其方法都使用synchronized关键字修饰,所以为线程安全的。 * * 例如源码: @Override * public synchronized StringBuffer append(String str) { * toStringCache = null; * super.append(str); * return this; * } */ StringBuffer sbf = new StringBuffer(); sbf.append("aaa"); System.out.println(sbf); /** * StringBuilder为字符串变量,查看源码发现其方法没有使用synchronized关键字修饰,所以为线程不安全的。 * 例如源码: * @Override * public StringBuilder append(String str) { * super.append(str); * return this; * } */ StringBuilder sbu = new StringBuilder(); sbu.append("aaa"); System.out.println(sbu); } }