1. 程式人生 > >怎麼理解字串常量和字串字面量

怎麼理解字串常量和字串字面量

/**
 *  1) 字串字面量和常量稱為“靜態字串”<br>
 *  2) 字面量和常量的連線在編譯期間執行,優化為一個靜態字串<br>
 *  3) 在執行期間,Java在靜態緩衝池中建立靜態字串,並且儘量使用同一個字串物件。<br>
 *  4) 動態字串:字串運算結果,或者連線結果或者 new運算建立的字串,等執行期間建立的字串不參與靜態優化<br>
 * @author Heying
 *
 */
public static final String S = "123ABC";
public static final String SS = "ABC";
public static void main(String[] args) {
    String s1 = "123ABC";
    String s2 = 123 + SS;
    String s3 = 123 + "ABC";
    String s4 = 1+2+3+ "ABC";
    String s5 = "1"+2+3+ "ABC";
    String s6 = '1'+2+3+ "ABC";
    String s7 = "ABC";
    String s8 = 123+s7;
    String s9 = new String("123ABC");
    String s10 = "123abc".toUpperCase();

    System.out.println(s1); //123ABC
    System.out.println(s2); //123ABC
    System.out.println(s3); //123ABC
    System.out.println(s4); //6ABC
    System.out.println(s5); //123ABC
    System.out.println(s6); //54ABC
    System.out.println(s7); //ABC
    System.out.println(s8); //123ABC
    System.out.println(s9); //123ABC
    System.out.println(s10); //123ABC
}

相關推薦

怎麼理解字串常量字串字面

/** * 1) 字串字面量和常量稱為“靜態字串”<br> * 2) 字面量和常量的連線在編譯期間執行,優化為一個靜態字串<br> * 3) 在執行期間,Java在靜

(轉載)Java中字串常量字串變數的區別

https://blog.csdn.net/u010617952/article/details/51781319         ava中字串物件建立有兩種形式,一種為字面量形式,如String str = "droid";,另一種就是使

字串常量字串變數

public class main { public static void main(String[] args) { String str1 = "abc";

Java中字串常量字串變數的區別

ava中字串物件建立有兩種形式,一種為字面量形式,如String str = "droid";,另一種就是使用new這種標準的構造物件的方法,如String str = new String("droid");,這兩種方式我們在程式碼編寫時都經常使用,尤其是字面量的方式。

字串常量指標的理解

字串常量和字元陣列 2018年05月04日 10:03:22 靖_harry 閱讀數:193更多 個人分類: C/C++ 據C語言記憶體模型,字串常量應該被放在程式碼區(也有書上稱作資料區),是隻讀不可寫的(所以說字串常量不可修改)。下面兩個函式分別返回hello和wo

字元常量字串常量的區別

字元常量有兩種: 一種是普通字元,即用單撇號括起來的一個字元,如'b' ,'y',‘?’。字元常量在儲存在計算機的儲存單元中時,是以其程式碼(一般採用ASCII程式碼)儲存的。 另一種是轉義字元,即特殊字元常量。轉移字元是C語言中表示字元的一種特殊形式,其含義是將反斜槓後面的

字串常量變數區別

#include #include using namespace std; int main() { string s1 = “abc”;//字串變數 char* s2 = “abc”;//字串常量,先在常量區儲存"abc",s2直接指向常量區的"abc"

Java字串常量static物件的區別

java中將記憶體分為四個區:heap、stack、data segment、code segment; 字串常量和靜態變數都存於資料區;字串常量存於資料區,如果內容相同,則地址指向相同;靜態變數也存

字串常量字元陣列的區分

首先我們來看個程式,這個程式說的是字串函式strcat()函式的實現: #include<stdlib.h> #include<assert.h> #include<stdio.h> #define MAX 20 char

字元型資料(字元常量字串常量)使用及區別

1-字元型     在各種不同系統中,字元型別都佔一個位元組(8位)。定義如下:   char c='a';//C 語言中,使用單引號把字元引起來構成字元常量,雙引號"abc"是字串常量也可以

指標指向字串常量陣列存放字串常量(char *p="abcd", char p[]="abcd")

指標指向字串常量和陣列存放字串常量(char *p=”abcd”, char p[]=”abcd”) 程式碼 結果 分析 fun()函式 首先abacd字串是在靜態常量區分配的記憶體,然後指標c在棧裡分配的記憶體,然後將指標指向”abacd”

java字串常量池——字串==比較的一個誤區

轉自:https://blog.csdn.net/wxz980927155/article/details/81712342     起因 再一次js的json物件的比較中,發現相同

字串常量字串陣列

其實這個問題已經遇到很多次了,每次都百度,當時都明白了,過一會就忘記了 現在暫時記錄整理一下,有時間作總結 首先,C語言沒有字串變數,只有字串常量,所以字串變數的任務就交給字元陣列解決了! 字串常量:"qwer" 嗯,這是一個字串常量,字串常量會在結尾

字串char *字串陣列char []的區別

字串char* char *str1="abcde"; 其實上面的char *str1是字串常量,儲存在靜態儲存區,是隻讀的,也就是說它是const char *str1 更好的表達它本身的意思。str1是一個變數,代表的意思就是字串的第一個字元的值 *(str1++

2018-5-25字串常量字串變數

/*本質上我是不想搞清楚這些奇奇怪怪的東西的,都是奇奇怪怪東西 0-0 -__-*/ 下面是來自各個地方關於這個解釋,大家瞅著那個看上去比較合理就接受那一個吧,突然感覺陣列和指標是不一樣的。 char *s1="helloworld"; char s2[]="hello

字串拼接字串陣列拼裝成字串

  使用前提是使用jdk1.8 package com.neutron.string; import java.util.ArrayList; import java.util.List; pub

不要再直接用字串常量字串指標初始化/賦值了

起因是我看別人程式碼發現了那麼一段程式,就是諸如char *p ="abcde";這樣的我之前是從來沒這樣初始化過的,所以還以為get到了新方法,後來一想不對。。。”abcde”應在常量儲存區,這

巨集定義。字串拼接字串整形轉字串

適用場景舉例 流媒體處理系統中,取樣率是個很重要的引數,很多地方都要用,如果用來分配記憶體,則 #define SAMPLE_RATE 16000 如果用來配置第三方庫,則#define SAMPLE_RATE "16000" 這樣每次改取樣率都要改兩處地方,容易遺漏 網上搜到第一篇文章,匆忙試了試

C++中字串常量字串變數

今天在敲遍歷內容為字串的棧的時候,發現在儲存出棧的字串時不需要另外開闢空間來儲存其中的內容,可以直接使用指標指向字串的儲存地址。 剛開始我認為字串常量在使用指標來給其他的字串變數賦值時,原來的字串在改變時,會導致指向該地址的字串變數也改變。 但是一個很重要的概念就是 字串

字串常量字串變數

定義:在一個雙引號“ ”內的字元序列或者轉義字元序列稱為字串常量 例如:“HI HI!”  “a”  “\n\t” 這些字串常量是不能改變的,如果試圖改變指標所指向的內容是錯誤的 因為字串常