JAVA基础部分复习(一、8中基础类型,以及String相关内容)

以下是关于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);
        
        
    }
}
原文地址:https://www.cnblogs.com/XiOrang/p/9337973.html