java类引用
A. java中什么叫做一个类需要另一个类的引用
假设有两个在不同包中的类A、B,如果在类A中要使用类B,就要添加对类B的引用,即import(导入)类B。
B. JAVA 几种引用类型学习
1)强引用(StrongReference)
强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。
2)软引用(SoftReference)
如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存(下文给出示例)。
软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收器回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。
3) 弱引用(WeakReference)
弱引用与软引用的区别在于:弱引用的对象拥有更短暂的生命周期。在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。不过,由于垃圾回收器是一个优先级很低的线程,因此不一定会很快发现那些只具有弱引用的对象。
弱引用可以和一个引用队列(ReferenceQueue)联合使用,如果弱引用所引用的对象被垃圾回收,Java虚拟机就会把这个弱引用加入到与之关联的引用队列中。
4)虚引用(PhantomReference)
“虚引用”顾名思义,就是形同虚设,与其他几种引用都不同,虚引用并不会决定对象的生命周期。如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。
虚引用主要用来跟踪对象被垃圾回收器回收的活动。虚引用与软引用和弱引用的一个区别在于:虚引用必须和引用队列(ReferenceQueue)联合使用。当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之 关联的引用队列中。
程序可以通过判断引用队列中是否已经加入了虚引用,来了解被引用的对象是否将要被垃圾回收。如果程序发现某个虚引用已经被加入到引用队列,那么就可以在所引用的对象的内存被回收之前采取必要的行动。
C. Java里什么是引用类型
Java的引用类型:
引用类型是一个对象类型,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。
引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。
对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。同时为了面向对象操作的一致性。
这些基本类型都有相应的封装类型:Integer、Short、Long、Byte、Float、Double、Character等。
D. java 引用类
public class Work {
private String address;//地点
private String type;//类型
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public Work(String address, String type) {
super();
this.address = address;
this.type = type;
}
public Work() {
}
public static void main(String[] args) {
//Work wk=new Work("a","b");//不是打印workhard
Work wk=new Work("武汉","计算机");
if(wk.address.equals("武汉")&&wk.type.equals("计算机")){
System.out.println("prefect");
}else{
System.out.println("Work hard!");
}
}
}
E. Java怎么引用类
你在别的类中导入Test是可以的,可以用import my.Test,要注意前提能让运行环境找到此类,由于Test中需要其他类来完成,所以你还得确保导入其他的类
F. java编程引用类型分析
我们在使用java编程开发语言开发软件的时候通常都会new对象,然后通过对对象的引用来实现不同的编程需求,而今天电脑培训http://www.kmbdqn.cn/就一起来了解一下,java编程开发语言中都有哪些常见的引用方法。
1:虚引用
1.1简介:虚引用是所有引用中强度弱的,它完全类似于没有引用,在java.reflact.PhantomReference类中实现。虚引用对象本身没有太大影响,对象甚至感觉不到虚引用的存在。如果一个对象存在虚引用,那么它和没有引用的效果大致相同,虚引用无法引用任何堆中的对象
作用:虚引用主要用于跟踪对象被JVM垃圾回收的状态,可以通过它来手机GC的行为。可以通过检查与虚引用关联的引用队列中是否已经包含指定的虚引用,从而了解虚引用锁引用的对象是否被回收。
注意:虚引用无法单独使用,虚引用必须和引用队列(ReferenceQueue)联合使用.被虚引用所引用对象被垃圾回收后,虚引用将被添加到引用队列中。
2:弱引用
简介:弱引用和虚引用有点类似,不同之处在于虚引用锁引用的对象生存期比虚引用长一点。虚引用在java.reflact.WeakReference类实现。在系统进行垃圾回收的时候,不管系统内存是否足够,总是回收该对象所占用的内存.但是弱引用的强度是要大于虚引用的
3:软引用
简介:软引用比弱引用的强度高一点,它是通过java.reflact.SoftReference来实现。对于软引用来说,当系统内存空间足够时,它不会被系统回收,程序中改对象的引用也是有效的。而当系统的内存空间不够时,系统将会回收它。
作用:软引用是强引用好的替代,它一定程度上可以避免系统内存不足的异常,可以充分使用软引用来解决内存紧张的问题。
4:强引用
简介:强引用很常见,在平时的程序中,我们新new一个对象,比如Objectobject=newObject();那么这个object就是指向object对象的强引用。强引用的特点就是:被引用的java对象绝对不会被垃圾回收机制回收,即使系统的内存非常紧张,即使java以后也用不到,jvm不会回收强引用所引用的java对象。
G. Java如何在一个类中引用另一个类的成员变量和方法
java是面向对象的,面向对象的特征之一就是封装,意思是隐藏该隐藏的,暴露该暴露的,java中有一个术语叫做javabean,java推荐一个java类中的字段都应该是private的,private修饰的无法被其他类访问,这样就隐藏了字段,而想操作该字段,则使用set方法来操作,set方法为public,对其他类来说,该方法可以访问,这样就暴露了该暴露的,这样的设计是符合java的设计理念和面向对象的设计原则的。区别就在这里
H. 一个java文件里的两个类要怎么互相引用
一般分情况:
1、
在相同的包下如图:
IUserDao类想调用CommonServlet类的内容,则需要导入com.hw.common.servlet包。在实例化即可。又或者用这种形式new com.hw.common.servlet.CommonServlet。
大概是这样的要是有啥不足,大家请修正。
I. java类引用的问题
1.类之间不能调用各自的私有方法;
2.一个类只能直接调用另一个类的public static方法;
3.一个类只能在new出另一个类的时候才能调用它的public方法;
4.一个类要调用另一个类的方法时,2个类必须在同一个包中,不在同一个包的话需要import包;
5.只有子类可以调用父类的protect方法;
6.子类不可以调用抽象父类的抽象方法(需要重写);
7.匿名内部类中的方法无法被其他类调用;
暂时想到这么多。
J. java 两个类相互引用怎么破
可能你理解错了,在JAVA中这种情况其实保存的是一个对象的引用,不是对象本身
我这里给出一个简单的示意图(希望能看懂),这里的A对象包含B对象的一个引用,这个引用直接指向B对象,而不是把B对象直接放到A对象里面,所以并不存在你说的无限循环