當前位置:首頁 » 存儲配置 » java數組對象的存儲

java數組對象的存儲

發布時間: 2022-06-01 05:27:22

『壹』 在java中如何將數組里的數據存入資料庫

保存位元組數組到資料庫分兩步:
第一、利用FileInputStream.read(byte[])方法把內容讀取到byte[]數組中,比如圖片是由二進制數組成的,就可以定義為一個位元組數組。
第二、在資料庫中對應記錄欄位應該設置為blob類型,這樣就能夠順利保存了
事例代碼如下:
PreparedStatement stmt = connection.generatePreparedStatement("INSERT INTO ... ");
stmt.setBytes(1, yourByteArray);

其中,yourByteArray是你讀出來的字元數組。

『貳』 Java數組中存儲的是引用還是值

跟你說一句話你應該就明白了:
JAVA中值類型的只有short,char,byte,int,long,double,float,boolean八大基本類型,其他的所有類型都是引用類型。

『叄』 有個小小的java問題,請問在java中數組可以儲存對象嗎如果可以儲存的話,那可以再調用儲存在

java中數組可以存儲對象

public class Test14 {
public static void main(String[] args) {
Book[] book = new Book[3];
book[0] = new Book("java編程思想","Bruce Eckel",108);
book[1] = new Book("菜根譚","洪應明",58);
book[2] = new Book("百年孤獨","加西亞·馬爾克斯",108);

for(int i=0;i<book.length;i++){
System.out.println(book[i].getName()+"\t"+book[i].getAuthor()+"\t"+book[i].getPrice());
}
}
}

class Book{
private String name;
private String author;
private double price;

public Book(){

}

public Book(String name, String author, double price) {
this.name = name;
this.author = author;
this.price = price;
}

public String toString() {
return "Book [author=" + author + ", name=" + name + ", price=" + price
+ "]";
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}

public double getPrice() {
return price;
}

public void setPrice(double price) {
this.price = price;
}

}

『肆』 java動態數組元素的存儲和讀取

String[] a = { "12", "aa", "迭代", "as" };
String[] b = new String[a.length];
Random random = new Random();
int i = random.nextInt(a.length);
int index = 0;

b[0] = a[i];
index++;

if(index >0){
for (int j = 0; j < a.length; j++)
{
for(int k = 0; k<index; k++){
if (a[i].compareTo(b[k]) == 0)
{
continue;
}
else
{

b[index] = a[i];
index ++;
}
}
}
}

String bianliang = b[index-1];

『伍』 在java中一個數組里是怎樣存放類對象的

也就是對象數組嘛,通常定義一個數組格式是:
變數類型
[]
數組名
=
new
變數類型[10];(動態初始化)
變數類型
[]
數組名
=
new
變數類型[]{變數1,變數2,...};(靜態初始化)
那麼對象數組就是,舉例創建類A的對象數組:
A[]
aArray
=
new
A[10];(動態)
A[]
aArray
=
new
A[]{new
A(),new
A(),...};(靜態)
也就是說aArray
這個數組保存的是一系列A類對象(其實准確說保存的是A類對象的地址值)

『陸』 java 對象數組定義

寫了一個簡單的實例,你可以參考一下。
public class a {
public static void main(String[]args){

int a[]={3,9,8};//這個是數組的靜態初始化.

Date days[]={new Date(1,4,2994),new Date(2,4,2004),new Date(2,5,2005)};
//創建了3個Date對象放在days[]數組里。

//這里還有種寫法。你可以先定義個數組,然後動態的進行付值。

//這樣寫可能煩了點,你也可以用for循環來進行動態賦值。

//列:Date days[];

// days=new Date[3];

// days[0]=new Date(1,2,3);

// days[1]=new Date(1,2,3);

// days[2]=new Date(1,2,3);

for(int i=0;i<days.length;i++){

//循環數組里的對象
System.out.println(days[i].a);
//將對象中的a屬性列印輸出。

}
}
}

class Date{
int a,b,c;
Date(int x,int y,int z){
a=x;
b=y;
z=c;
}
}

『柒』 Java中數組對象的存儲位置

原帖地址:http://hi..com/sqldebug/blog/item/9758b9ffa605e51a09244d91.html

數組單一說在棧中還是堆中都是錯誤的,分為幾種情況:

1、固定數組在函數體內分配是在棧中的

我們做一個試驗,一般DELPHI程序線程的棧大小是1M,如果我們函數體中申請4M大小的數組,報棧溢出,則表示數據的大小是在棧中的。

const
CArrayCount = 1024*1024*4;

procere TForm1.btnMainThreadClick(Sender: TObject);
var
MainThreadArray: array[1..CArrayCount] of Char;
i: Integer;
begin
for i := Low(MainThreadArray) to High(MainThreadArray) do
MainThreadArray[i] := #0;
end;

我把以上代碼在主線程中測試時,確實報了棧溢出,如果這時你把DELPHI程序的棧調大為6M則正確,表示在函數體中申請的數組是在棧中的。

2、固定數組在類中分配是在堆中的

我們在類中加一下定義語句

FFixArray: array[1..CArrayCount] of Char;

程序正常,表示在類中分配固定數組是在堆中的。

3、固定數組全局變數是在堆中的

我們在程序定義全部數組

GFixArray: array[1..CArrayCount] of Char;

程序也正常,表示全局固定長度是在堆中的。

3、動態數組不管在函數體中、類中、全局變數都是在堆中

如果你會匯編,看一下匯編就明白了。DELPHI這么實現是合理的,在函數里中分配的固定長度數組放在棧中可以加快運行效率,而且在多線程的情況下,不用像堆分配有加鎖。只是大家在寫程序的過程中注意在函數里定義太長的數組需要注意,否則棧溢出,程序就崩潰了。

『捌』 Java數組是存儲在內存中的什麼地方

因為我也不清楚你理解的內存指啥,說我的理解,猜測一下,但願符合你的理解:
對程序而言,內存分為:
a、靜態區塊或叫全局區塊,指程序載入的時候就分配的固定存儲區;
b、棧內存,代碼塊執行的時候動態分配的內存塊,代碼運行完後,操作系統或運行平台負責自動回收這部分使用的內存。
c、堆內存塊,由操作系統提供api程序自由分配管理的內存塊。
java的內存管理機制,我個人認為是黑盒的,寫java也很少有人去關心,但是如果看虛擬機的實現源碼還是能知道的。(樓主懂c由興趣自己看)。那麼從逆向工程的角度我們可以猜測到:
靜態類,靜態變數,存儲在,靜態區塊中。
類本身代碼需要時再載入到內存中,java的動態代理實現的根本。既然是動態載入肯定是在堆中,不過載入進來的類代碼可能永不會銷毀(虛擬機運行區間內,可以加快運行平台的處理速度,java屬於半編譯半解釋的一門語言,要解釋執行的是預先編譯好的指令,就是class類文件)。
我們創建的任何對象,時間是隨機的,創建的時候才會分配內存,必然在堆上。虛擬機的垃圾回收機制要管理的剛好是這部分內存。
類中的方法,或靜態代碼塊必定運行在占上,代碼運行完,內存立即回收。此處有個例外,不同於c語言或操作系統實現。在方法中返回的任何對象:c需要動態分配存儲空間,兵自行管理,或者申明為全局局部靜態存儲,代碼運行完,對象才能保留下來。java可以直接保留下來。說明虛擬機自動給我們申請了動態內存保存對象。此處分配的內存也需要垃圾回收機制管理。沒門語言都有原始類型,方法或函數中返回的原始類型不需要從堆上分配內存,直接復制給接收變數,或代碼運行的形參所分配的空間中即可。
從操作系統理解,內存分為內核使用的內存與程序使用的內存,java運行在虛擬機上,虛擬機運行在操作系統上,內核內存屬於操作系統自用內存,由操作系統負責管理,運用程序不能直接管理分配內核內存。應用程序可管理的是分配給自己的運行空間。因此java使用內存屬於應用程序內存。內核內存管理方式windows與unix實現管理方式不一樣,最大差別windows的每一個程序,內核需要使用掉一部分地址空間,餘下的留給應用程序。如32位系統,總共可以使用的地址空間是4G內核要用掉其中1G或者2G。但是unix實現的系統應用程序可以直接使用4G地址空間。有興趣請參考操作系統內核相關書籍。

『玖』 在JAVA中,數組中的元素應按照什麼順序進行存儲和編號

private final int LEN = 8; //數組的默認大小
private Strategy strategy; //數據元素比較策略

private int size; //線性表中數據元素的個數

private Object[] elements; //數據元素數組

public ListArray() {

this(new DefaultStrategy());
}

public ListArray(Strategy strategy){

this.strategy = strategy;
size = 0;

elements = new Object[LEN];

}

//返回線性表的大小,即數據元素的個數。

public int getSize() {

return size;
}

//如果線性表為空返回true,否則返回false。

public boolean isEmpty() {

return size==0;
}

//判斷線性表是否包含數據元素e

public boolean contains(Object e) {

for (int i=0; i
if (strategy.equal(e,elements[i])) return true;

return false;

}

//返回數據元素e在線性表中的序號

public int indexOf(Object e) {

for (int i=0; i
if (strategy.equal(e,elements[i])) return i;

return -1;

}

//將數據元素e插入到線性表中i號位置

public void insert(int i, Object e) throws OutOfBoundaryException {

if (i<0||i>size)
throw new OutOfBoundaryException("錯誤,指定的插入序號越界。");

if (size >= elements.length)

expandSpace();

for (int j=size; j>i; j--)

elements[j] = elements[j-1];

elements[i] = e;

size++;

return;

}

private void expandSpace(){

Object[] a = new Object[elements.length*2];
for (int i=0; i

a[i] = elements[i];

elements = a;

}

//將數據元素e插入到元素obj之前

public boolean insertBefore(Object obj, Object e) {

int i = indexOf(obj);
if (i<0) return false;

insert(i,e);

return true;

}

//將數據元素e插入到元素obj之後
public boolean insertAfter(Object obj, Object e) {

int i = indexOf(obj);

if (i<0) return false;

insert(i+1,e);

return true;

}

//刪除線性表中序號為i的元素,並返回之

public Object remove(int i) throws OutOfBoundaryException {
if (i<0||i>=size)

throw new OutOfBoundaryException("錯誤,指定的刪除序號越界。");

Object obj = elements[i];

for (int j=i; j
elements[j] = elements[j+1];

elements[--size] = null;

return obj;

}

//刪除線性表中第一個與e相同的元素

public boolean remove(Object e) {

int i = indexOf(e);
if (i<0) return false;

remove(i);

return true;

}

//替換線性表中序號為i的數據元素為e,返回原數據元素

public Object replace(int i, Object e) throws OutOfBoundaryException {

if (i<0||i>=size)
throw new OutOfBoundaryException("錯誤,指定的序號越界。");

Object obj = elements[i];

elements[i] = e;

return obj;

}

//返回線性表中序號為i的數據元素
public Object get(int i) throws OutOfBoundaryException {

if (i<0||i>=size)
throw new OutOfBoundaryException("錯誤,指定的序號越界。");

return elements[i];

}

}

熱點內容
編程的職位 發布:2024-11-13 10:36:12 瀏覽:776
奈的教育游戲安卓如何登錄 發布:2024-11-13 10:27:33 瀏覽:933
python病毒代碼 發布:2024-11-13 10:21:56 瀏覽:621
c語言編程心形 發布:2024-11-13 10:21:54 瀏覽:299
人事管理系統源碼下載 發布:2024-11-13 10:10:22 瀏覽:712
郵政工會卡初始密碼是什麼 發布:2024-11-13 09:39:37 瀏覽:507
SQL傳入變數 發布:2024-11-13 09:36:38 瀏覽:462
tc演算法 發布:2024-11-13 09:30:37 瀏覽:965
python2712 發布:2024-11-13 09:30:15 瀏覽:634
smsforandroid 發布:2024-11-13 09:20:22 瀏覽:676