javat什么意思啊,java中的t是什么意思啊
大家好,今天小编来为大家解答javat什么意思啊这个问题,java中的t是什么意思啊很多人还不知道,现在让我们一起来看看吧!
java 方法中含有 transient 是什么意思
“transient”——“瞬态”,先不说这个翻译是否恰当,这个变量关键字一直不曾使用,简单的说就是被瞬态定义的变量不可序列号。或者这么给他换个名字——“不可序列化状态”。
打个比方,如果一个用户有一些敏感信息(譬如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列化操作,本地序列化缓存也适用)中被传输。这些信息对应的变量就可以被定义为transient类型。换句话说,这个字段的生命周期仅存于调用者的内存中。
如定义类:
public class People implements Serializable{
private static final long serialVersionUID= 8294180014912103005L;
/**
*用户名
*/
private String username;
/**
*密码
*/
private transient String password;
}
密码字段为transient,这时候如果对该对象进行序列化,这个密码字段是不会被保存的。
以下例子展示了这个行为:
public static void main(String[] args) throws Exception{
People p= new People();
p.setUsername("snowolf");
p.setPassword("123456");
System.err.println("------操作前------");
System.err.println("username:"+ p.getUsername());
System.err.println("password:"+ p.getPassword());
ObjectOutputStream oos= new ObjectOutputStream(new FileOutputStream(
"people.txt"));
oos.writeObject(p);
oos.flush();
oos.close();
ObjectInputStream ois= new ObjectInputStream(new FileInputStream(
"people.txt"));
p=(People) ois.readObject();
ois.close();
System.err.println("------操作后------");
System.err.println("username:"+ p.getUsername());
System.err.println("password:"+ p.getPassword());
}
执行结果是:
------操作前------
username: snowolf
password: 123456
------操作后------
username: snowolf
password: null
Java中的 static{ …… } 是什么意思
是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。这样做有什么意义呢?
在Java程序里面,所有的东西都是对象,而对象的抽象就是类,对于一个类而言,如果要使用他的成员,那么普通情况下必须先实例化对象后,通过对象的引用才能够访问这些成员,但是有种情况例外,就是该成员是用static声明的(在这里所讲排除了类的访问控制),例如:
未声明为static
class ClassA{
int b;
public void ex1(){
…
}
}
class ClassB{
void ex2{
int i;
ClassA a= new ClassA();
i= a.b;//这里通过对象引用访问成员变量b
a.ex1;//这里通过对象引用访问成员函数ex1
}
}
声明为static
class ClassA{
static int b;
static void ex1(){
…
}
}
class ClassB{
void ex2{
int i;
i= ClassA.b;//这里通过类名访问成员变量b
ClassA.ex1;//这里通过类名访问成员函数ex1
}
}
通过以上两种比较,就可以知道static用来修饰类成员的主要作用了,在java类库当中有很多类成员都声明为static,可以让用户不需要实例化对象就可以引用成员,最基本的有Integer.parseInt(),Float.parseFloat()等等用来把对象转换为所需要的基本数据类型。这样的变量和方法我们又叫做类变量和类方法。
接下来讲一下被static修饰后的变量的值的问题,刚才在前面讲过,被static修饰后的成员,在编译时由内存分配一块内存空间,直到程序停止运行才会释放,那么就是说该类的所有对象都会共享这块内存空间,看一下下面这个例子:
class TStatic{
static int i;
public TStatic(){
i= 4;
}
public TStatic(int j){
i= j;
}
public static void main(String args[]){
TStatic t= new TStatic(5);//声明对象引用,并实例化
TStatic tt= new TStatic();//同上
System.out.println(t.i);
System.out.println(tt.i);
System.out.println(t.i);
}
}
这段代码里面Tstatic类有一个static的int变量I,有两个构造函数,第一个用于初始化I为4,第二个用于初始化i为传进函数的值,在main中所传的值是5,程序首先声明对象的引用t,然后调用带参数的构造函数实例化对象,此时对象t的成员变量I的值为5,接着声明对象tt,调用无参数的构造函数,那么就把对象tt的成员变量i的值初始化为4了,注意了,在这里i是static,那就是说该类的所有对象都共享该内存,那也就是说在实例化对象tt的时候改变了i的值,那么实际上对象t的i值也变了,因为实际上他们引用的是同一个成员变量。最后打印的结果是三个4。呵呵,写到这里大家是否明白了呢?不明白就再看看书或者多写几个例子印证一下,呵呵。
java中的t是什么意思啊
JAVA中<t>是泛型的意思
意思是Tree这个类里面需要用到另外一个类,但是又不能确定要用到的那个类的具体类型,所以暂时用T来代替,当具体的程序知道要用到的那个类型是什么的时候就用那个类型来代替T,就ok了。例如我需要实例化一个Tree类,需要用到的那个类是String,那么我就可以这么来实例化Tree<String>()。
扩展资料第一是泛化。可以用T代表任意类型Java语言中引入泛型是一个较大的功能增强不仅语言、类型系统和编译器有了较大的变化,以支持泛型,而且类库也进行了大翻修,所以许多重要的类,比如集合框架,都已经成为泛型化的了,这带来了很多好处。
第二是类型安全。泛型的一个主要目标就是提高ava程序的类型安全,使用泛型可以使编译器知道变量的类型限制,进而可以在更高程度上验证类型假设。如果不用泛型,则必须使用强制类型转换,而强制类型转换不安全,在运行期可能发生ClassCast Exception异常,如果使用泛型,则会在编译期就能发现该错误。
第三是消除强制类型转换。泛型可以消除源代码中的许多强制类型转换,这样可以使代码更加可读,并减少出错的机会。
第四是向后兼容。支持泛型的Java编译器(例如JDK1.5中的Javac)可以用来编译经过泛型扩充的Java程序(Generics Java程序),但是现有的没有使用泛型扩充的Java程序仍然可以用这些编译器来编译。
参考资料来源:百度百科-java泛型
java中<E><T>有什么作用
<E>表示范型
比如说ArrayList它就有<E>标记
你在生成ArrayList的时候可以规定它里面可以加什么元素
ArrayList<String> arr=new ArrayList<String>();
这样写arr里面只能加String元素了,这是一种数据安全的添加,如果你往arr中添加其他类,比如说你自己定义的Student类,编译器就会报错了!
范型是JAVA5.0的四大新特性之一,建议你找点参考书看看!或者在网上搜一下\"范型\"
关于javat什么意思啊和java中的t是什么意思啊的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。