zoukankan      html  css  js  c++  java
  • 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);
            
            
        }
    }
  • 相关阅读:
    如何为创建大量实例节省内存?
    4-5
    4-6
    4-4
    4-3
    4-2
    3-11
    4-1
    3-10
    3-8
  • 原文地址:https://www.cnblogs.com/XiOrang/p/9337973.html
Copyright © 2011-2022 走看看