當前位置:首頁 » 存儲配置 » string存儲

string存儲

發布時間: 2023-08-23 09:16:48

1. golang+存儲string到longtext欄位

首先,我們需要在表中定義一個長文本欄位,例如:

CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
description LONGTEXT
);

然後,我們可以使用"gorm"庫來將字元串存儲到長文本欄位中。

首先,我們需要創建一個User結構飢並並蔽灶體,如下所示:

go
type User struct {
ID uint gorm:"primary_key"
Name string gorm:"not null"
Description string gorm:"type:longtext"
}

然後,我們可以使用"gorm"庫中的Create函爛跡數來將字元串存儲到長文本欄位中,如下所示:

go
user := User{Name: "John Doe", Description: "This is a long text string."}
db.Create(&user)

這將使資料庫將字元串存儲到長文本欄位中。

2. java中String類型存儲位置

一、new String都是在堆上創建字元串對象。
當調用 intern() 方法時,
編譯器會將字元串添加到常量池中(stringTable維護),
並返回指向該常量的引用。

二、通過字面量賦值創建字元串(如:String str=」twm」)時,
會先在常量池中查找是否存在相同的字元串,若存在,
則將棧中的引用直接指向該字元串;若不存在,則在常量池中生成一個字元串,
再將棧中的引用指向該字元串。

三、常量字元串的「+」操作,
編譯階段直接會合成為一個字元串。
如string str=」JA」+」VA」,
在編譯階段會直接合並成語句String str=」JAVA」,
於是會去常量池中查找是否存在」JAVA」,從而進行創建或引用。

四、對於final欄位,編譯期直接進行了常量替換(而對於非final欄位則是在運行期進行賦值處理的)。
final String str1=」ja」;
final String str2=」va」;
String str3=str1+str2;
在編譯時,直接替換成了String str3=」ja」+」va」,根據第三條規則,
再次替換成String str3=」JAVA」

五、常量字元串和變數拼接時(如:String str3=baseStr + 「01」;)
會調用stringBuilder.append()在堆上創建新的對象。

六、JDK 1.7後,intern方法還是會先去查詢常量池中是否有已經存在,
如果存在,則返回常量池中的引用,這一點與之前沒有區別,
區別在於,如果在常量池找不到對應的字元串,則不會再將字元串拷貝到常量池,
而只是在常量池中生成一個對原字元串的引用。簡單的說,就是往常量池放的東西變了
原來在常量池中找不到時,復制一個副本放到常量池,1.7後則是將在堆上的地址引用復制到常量池。

舉例說明:

String str2 = new String(「str」)+new String(「01」);
str2.intern();
String str1 = 「str01」;
System.out.println(str2==str1);

在JDK 1.7下,當執行str2.intern();時,
因為常量池中沒有「str01」這個字元串,所以會在常量池中生成一個對堆中的「str01」的引用
(注意這里是引用 ,就是這個區別於JDK 1.6的地方。在JDK1.6下是生成原字元串的拷貝),
而在進行String str1 = 「str01」;字面量賦值的時候,常量池中已經存在一個引用,
所以直接返回了該引用,因此str1和str2都指向堆中的同一個字元串,返回true。

String str2 = new String(「str」)+new String(「01」);
String str1 = 「str01」;
str2.intern();
System.out.println(str2==str1);

將中間兩行調換位置以後,因為在進行字面量賦值(String str1 = 「str01″)的時候,
常量池中不存在,所以str1指向的常量池中的位置,而str2指向的是堆中的對象,
再進行intern方法時,對str1和str2已經沒有影響了,所以返回false。

3. String類型所接收的字元串在哪進行存儲

String類型表示字元串可以分為兩種方式:

  • 直接使用字元串變數接收一個字元串常量;這個字元串常量是在常量池中存儲的;

  • 使用new關鍵字創建字元串對象,則在堆中存儲。

熱點內容
如何分辨普拉多的配置 發布:2025-02-01 04:11:45 瀏覽:680
linuxc文件刪除 發布:2025-02-01 04:11:33 瀏覽:217
c語言稀疏矩陣轉置矩陣 發布:2025-02-01 03:47:57 瀏覽:531
坦克世界掛機腳本有哪些 發布:2025-02-01 03:07:41 瀏覽:134
串口編程at 發布:2025-02-01 03:06:05 瀏覽:909
合資汽車配置有什麼 發布:2025-02-01 02:56:07 瀏覽:79
wifi共享精靈源碼 發布:2025-02-01 02:40:15 瀏覽:973
java軟體怎麼安裝 發布:2025-02-01 02:40:09 瀏覽:549
河北稅務局電子密碼是什麼 發布:2025-02-01 02:40:07 瀏覽:835
檢查伺服器設置是什麼意思 發布:2025-02-01 02:31:26 瀏覽:185