java欄位-ag真人国际官网
❶ java欄位和屬性的區別
private long id; 欄位(一般來說:屬性私有)
public long getid() { return id; } (getid,叫做得到屬性,get是得到,get後面的id,小寫,叫做屬性)
public void setid(long id) {this.id = id; } (同上)
❷ java中欄位是什麼怎麼定義欄位欄位是變數嗎和變數 方法 屬性有什麼區別欄位有返回值嗎。。。
欄位就是成員變數,注意是成員變數,不是局部變數。欄位也就是屬性了,一個類的屬性。
只是叫法不同,java的api中一般叫成員變數就欄位,有時也叫域。而我們一般的編程的時候,就欄位叫成員變數
補------------
out就是一個欄位,也就是是system類的一個成員變數。只不過個這成員變數是一個對象,也就是out是一個 printstream類的對象。這就是在一個類里執有其它類的對象的用法
❸ java "欄位"啥意思
public final static inputstream in = nullinputstream();
nullinputstream是這樣實現的:
private static inputstream nullinputstream() throws nullpointerexception {
if (currenttimemillis() > 0)
return null;
throw new nullpointerexception();
}
他不是返回null,就是拋出異常,如何初始化in呢?
解答:
看了一下java.lang.system的源代碼.
system類里有大量的native方法,是調用本地代碼的,這些代碼很可能是由虛擬機來調用的.
system類的開頭有一段:
static {
registernatives();
}
這段代碼會在虛擬機啟動的時候就執行,它在虛擬機里注冊system需要使用的一些本地代碼
比如:
private static native properties initproperties(properties props);
private static native void setout0(printstream out);
在windows下的話,它就告訴虛擬機到哪個dll文件里去找相應的實現
>然而,我知道out是一個printstream的對象,但我查看了有關的原代碼:public final static printstream out = nullprintstream();
>public final static inputstream in = nullinputstream();
在nullinputstream()方法里有注釋解釋為什麼會設置為空:
/**
* the following two methods exist because in, out, and err must be
* initialized to null. the compiler, however, cannot be permitted to
* inline access to them, since they are later set to more sensible values
* by initializesystemclass().
*/
private static inputstream nullinputstream() throws nullpointerexception {
if (currenttimemillis() > 0)
return null;
throw new nullpointerexception();
}
也就說in, out, and err 初始化為null,然後會在後來由initializesystemclass()方法類初始化成有意義的值
/**
* initialize the system class. called after thread initialization.
*/
private static void initializesystemclass() {
props = new properties();
initproperties(props);
sun.misc.version.init();
fileinputstream fdin = new fileinputstream(filedescriptor.in);
fileoutputstream fdout = new fileoutputstream(filedescriptor.out);
fileoutputstream fderr = new fileoutputstream(filedescriptor.err);
setin0(new bufferedinputstream(fdin)); !!!
setout0(new printstream(new bufferedoutputstream(fdout, 128), true)); !!!
seterr0(new printstream(new bufferedoutputstream(fderr, 128), true)); !!!
// enough of the world is now in place that we can risk
// initializing the logging configuration.
try {
java.util.logging.logmanager.getlogmanager().readconfiguration();
} catch (exception ex) {
// system.err.println("can′t read logging configuration:");
// ex.printstacktrace();
}
// load the zip library now in order to keep java.util.zip.zipfile
// from trying to use itself to load this library later.
loadlibrary("zip");
// subsystems that are invoked ring initialization can invoke
// sun.misc.vm.isbooted() in order to avoid doing things that should
// wait until the application class loader has been set up.
sun.misc.vm.booted();
}
in,out,err就是在以上方法以下三條語句里初始化的.
setin0(new bufferedinputstream(fdin)); !!!
setout0(new printstream(new bufferedoutputstream(fdout, 128), true)); !!!
seterr0(new printstream(new bufferedoutputstream(fderr, 128), true)); !!!
看
private static native void setin0(inputstream in);
~~~~~~~
這是個native函數,是前面registernatives()的時候注冊了的.這個函數應該是把實際連接到輸入輸出設備的句柄傳給虛擬機並賦值給in,out,err
至於:
>inputstream是個抽象的類,怎麼能使用char=(char)system.in.read()讀入一個字元
我想你還沒有明白什麼是面向對象.
看看下面代碼,我用outputstream(也是抽象類,跟inputstream對應的輸出類)以方便演示:
import java.io.ioexception;
import java.io.outputstream;
public class helloworld {
public outputstream out=null;
public void setoutputstream(outputstream out){
this.out=out;
}
public static void main(string[] args) throws ioexception{
helloworld h=new helloworld();
printstream myout=system.out;//system.out是一個printstream
h.setoutputstream(myout);
h.out.write("hello,world".getbytes());//一般沒人這么寫的
}
}
以上代碼執行後會輸出hello,world
h.out是outputstream,也是個抽象類,為什麼能write(o)呢?
因為printstream是outputstream的子類,所以能被"當作"outputstream傳給h.setoutputstream(myout);
h.out.write執行的時候實際上是調用這個傳進來的printstream實例的write方法
同樣system.in和out肯定也是在initializesystemclass()的時候被賦予了一個實際的可用的子類
要能體會到面向對象的好處,就要逐漸適應"對介面編程"的思想,相同介面的對象可以根據需要方便的替換.
比如,我剛才傳了一個printstream,因此helloworld輸出到了屏幕上. 我如果傳給outputstream的另一個子類fileoutputstream,就會輸出到文件里
>還有為什麼不是說字元流:writer和reader一般用於unicode的讀寫嗎?為什麼鍵盤的輸入用reader類呢?
不知道你在哪裡看到說writer和reader一般用於unicode的讀寫
❹ 資料庫text對應java什麼欄位
如果你是自動生成資料庫表和欄位的話建議您在對應的string欄位上面加上
@column(nullable = false, columndefinition = "text")
這樣資料庫欄位類型就是text,而不是varchar,默認都是varchar的
❺ java如何獲得資料庫表中各欄位的欄位名
java獲取資料庫的表中各欄位的欄位名,代碼如下:
importjava.sql.connection;
importjava.sql.drivermanager;
importjava.sql.resultset;
importjava.sql.preparedstatement;
importjava.sql.resultsetmetadata;
importjava.sql.sqlexception;
publicclasstestdemo{
(){
connectionconn=null;
try{
class.forname("com.mysql.jdbc.driver");
stringurl="jdbc:mysql://資料庫ip地址:3306/資料庫名稱";
stringuser="資料庫用戶名";
stringpass="資料庫用戶密碼";
conn=drivermanager.getconnection(url,user,pass);
}catch(classnotfoundexceptione){
e.printstacktrace();
}catch(sqlexceptione){
e.printstacktrace();
}
returnconn;
}
publicstaticvoidmain(string[]args){
connectionconn=getconnection();
stringsql="select*fromaccesstype";
preparedstatementstmt;
try{
stmt=conn.preparestatement(sql);
resultsetrs=stmt.executequery(sql);
resultsetmetadatadata=rs.getmetadata();
for(inti=1;i<=data.getcolumncount();i ){
//獲得所有列的數目及實際列數
intcolumncount=data.getcolumncount();
//獲得指定列的列名
stringcolumnname=data.getcolumnname(i);
//獲得指定列的列值
intcolumntype=data.getcolumntype(i);
//獲得指定列的數據類型名
stringcolumntypename=data.getcolumntypename(i);
//所在的catalog名字
stringcatalogname=data.getcatalogname(i);
//對應數據類型的類
stringcolumnclassname=data.getcolumnclassname(i);
//在資料庫中類型的最大字元個數
intcolumndisplaysize=data.getcolumndisplaysize(i);
//默認的列的標題
stringcolumnlabel=data.getcolumnlabel(i);
//獲得列的模式
stringschemaname=data.getschemaname(i);
//某列類型的精確度(類型的長度)
intprecision=data.getprecision(i);
//小數點後的位數
intscale=data.getscale(i);
//獲取某列對應的表名
stringtablename=data.gettablename(i);
//是否自動遞增
booleanisautoinctement=data.isautoincrement(i);
//在資料庫中是否為貨幣型
booleaniscurrency=data.iscurrency(i);
//是否為空
intisnullable=data.isnullable(i);
//是否為只讀
booleanisreadonly=data.isreadonly(i);
//能否出現在where中
booleanissearchable=data.issearchable(i);
system.out.println(columncount);
system.out.println("獲得列" i "的欄位名稱:" columnname);
system.out.println("獲得列" i "的類型,返回sqltype中的編號:" columntype);
system.out.println("獲得列" i "的數據類型名:" columntypename);
system.out.println("獲得列" i "所在的catalog名字:" catalogname);
system.out.println("獲得列" i "對應數據類型的類:" columnclassname);
system.out.println("獲得列" i "在資料庫中類型的最大字元個數:" columndisplaysize);
system.out.println("獲得列" i "的默認的列的標題:" columnlabel);
system.out.println("獲得列" i "的模式:" schemaname);
system.out.println("獲得列" i "類型的精確度(類型的長度):" precision);
system.out.println("獲得列" i "小數點後的位數:" scale);
system.out.println("獲得列" i "對應的表名:" tablename);
system.out.println("獲得列" i "是否自動遞增:" isautoinctement);
system.out.println("獲得列" i "在資料庫中是否為貨幣型:" iscurrency);
system.out.println("獲得列" i "是否為空:" isnullable);
system.out.println("獲得列" i "是否為只讀:" isreadonly);
system.out.println("獲得列" i "能否出現在where中:" issearchable);
}
}catch(sqlexceptione){
e.printstacktrace();
}
}
}
❻ java里的欄位是什麼意思
sm yisd什麼欄位?
❼ java"欄位"啥意思
欄位也稱為屬性,相當於一個類的成員變數(相當與c 中)
因為out是system類的printstream類型的靜態屬性(欄位),所以可以直接拿來用而不用實例化對象,定向到控制台輸出
❽ java中,欄位是什麼
對「網友採納」的答案加一句給以後搜索的人看:欄位是屬於類本身的,也就是類的成員變數,用static修飾。它可以是一個類,比如system的out欄位就是printstream的對象
❾ java怎麼截取欄位
string str = "12.66";
str.substring(0,2);
❿ java中的屬性和欄位的區別
1、java中的屬性和欄位有什麼區別?
答:java中的屬性,通常可以理解為get和set方法。而欄位,通常叫做「類成員」。
這兩個概念是完全不同的。
屬性只局限於類中方法的聲明,並不與類中其他成員相關。例如:
void seta(string s){}
string geta(){}
當一個類中擁有這樣一對方法時,我們可以說,這個類中擁有一個可讀寫的a屬性(注意是小寫a)。如果去掉了set的方法,則是可讀屬性,反之亦然。
類成員(欄位),通常是在類中定義的類成員變數,例如:
public class a{
private string s = "123";
}
我們可以說a類中有一個成員變數叫做s。