当前位置:首页 » 编程语言 » java字段

java字段

发布时间: 2022-01-07 23:54:08

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。

热点内容
我的世界哪个服务器可以1v1 发布:2024-12-27 11:43:37 浏览:933
c语言关键字有 发布:2024-12-27 11:41:54 浏览:367
gccc语言编译命令 发布:2024-12-27 11:41:06 浏览:188
欧美版思域是什么版本配置 发布:2024-12-27 11:20:45 浏览:251
具医院的wifi密码是什么 发布:2024-12-27 11:20:07 浏览:77
dll服务器如何重启 发布:2024-12-27 11:19:58 浏览:953
安卓怎么把视频变成模糊 发布:2024-12-27 11:18:37 浏览:962
oracle分页sql怎么写 发布:2024-12-27 11:02:02 浏览:846
服务器如何远程集中管理 发布:2024-12-27 11:00:26 浏览:890
android解锁代码 发布:2024-12-27 10:58:25 浏览:740