在JAVA中啥是顶级类啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在JAVA中啥是顶级类啊相关的知识,希望对你有一定的参考价值。

当你在其它类的外面声明一个类时,Java就认为该类是一个顶级类。如果你在一个顶级类中声明一个类,并且在该嵌套类的声明前加上static的修饰符,你就得到了一个嵌套顶级类。以下的代码段声明了一个顶级类和一个嵌套顶级类:class TopLevelClassstatic class NestedTopLevelClass就象静态的字段和静态的方法一样(也可称为类字段和类方法),一个嵌套的顶级类也是与对象无关的。
警告:一个嵌套顶级类不能访问任何外部类的实例成员(即所有的非静态字段和非静态方法)。 使用嵌套顶级类,你不可以访问外部类的实例字段或者调用该类的实例方法。要访问实例成员,Java支持内部类。内部类和嵌套顶级类相似,不同的地方是你不会在内部内的声明前加上static关键字。我们以下就讨论一下内部类,先从实例内部类开始
当你在其它类的外面声明一个类时,Java就认为该类是一个顶级类。如果你在一个顶级类中声明一个类,并且在该嵌套类的声明前加上static的修饰符,你就得到了一个嵌套顶级类。以下的代码段声明了一个顶级类和一个嵌套顶级类:class TopLevelClassstatic class NestedTopLevelClass

复制粘贴 非本人原创
参考技术A 顶级类:简单的说就是不能被继承的类.
Object是超级父类,像一棵树一样,Object作为根,可以有许多子类,子类又有子类,这不就是多级了吗?
顶级类与之相反,他没有儿子,从他开始只有他一级.
顶级类是类(class)的前面有final修饰符.你可以看一下JDK的String这个类,他的前面就有final.
面向对象的有三大特征:继承,封装,多态.如果这个类class是顶级类(final),那么这个类就不可以被继承.你可以在任意一种工具(如:myeclipse或者eclipse JCreater等等)上试验:自己写个类,然后继承自String类 (extend String),工具就会报错,编译不会执行.
呵呵,刚开始学Java吗?时间长了,自己就会知道的.希望对你有帮助.追问

哈哈 谢谢你啊 但是我看到的顶级类在其他书的 并不是final 最终类 ,我知道final修饰的最终类是无法被继承,但是这并不上顶级类 顶级类是定义在当前类 相对与当前类的外部 相对于类的内部类而言的。

追答

当你在其它类的外面声明一个类时,Java就认为该类是一个顶级类。如果你在一个顶级类中声明一个类,并且在该嵌套类的声明前加上static的修饰符,你就得到了一个嵌套顶级类。
以下的代码段声明了一个顶级类和一个嵌套顶级类:  
class TopLevelClass  
static class NestedTopLevelClass  


你说的是正确的.是我答非所问,贻笑大方了.不过学习正是这样,犯错误,改正就好了.大家一起进步.

追问

呵呵 互相学习 取长补短

参考技术B super class ,合适的翻译应该是父类。顶级类、超类太别扭。
在类的继承关系中,被继承的类是父类,另一个是子类。
参考技术C

最佳答案有错误的地方,顶级类或接口是不能被static修饰的

java中啥同步啥是异步分别用在啥地方

java中什么同步什么是异步分别用在什么地方
上传下载文件要用什么步

java同步指的是synchronized机制,而非synchronized的都是异步,弄懂同步的概念就大致明白了两者的差别。

有关同步:
synchronized用来修饰一个方法或者一个代码块,它用来保证在同一时刻最多只有一个线程执行该段代码。
一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。
三、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。
四、第三个例子同样适用其它同步代码块。也就是说,当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。
五、以上规则对其它对象锁同样适用。

示例代码:
public class Thread1 implements Runnable
public void run()
synchronized(this)
for (int i = 0; i < 5; i++)
System.out.println(Thread.currentThread().getName() + " synchronized loop " + i);



public static void main(String[] args)
Thread1 t1 = new Thread1();
Thread ta = new Thread(t1, "A");
Thread tb = new Thread(t1, "B");
ta.start();
tb.start();


结果:
A synchronized loop 0
A synchronized loop 1
A synchronized loop 2
A synchronized loop 3
A synchronized loop 4
B synchronized loop 0
B synchronized loop 1
B synchronized loop 2
B synchronized loop 3
B synchronized loop 4
参考技术A 同步可以用在多个子线程访问同一个数据库表时,这是要保证数据的一致性和完整性,在数据访问层就要加同步锁啦,不加锁可能就会报数据库被锁的异常;异步一般用在耗时的操作中,比如:联网取数据,这个数据量比较大,很要点时间,而我在取数据时又想继续做别的事情,等我把别的事情做完在来处理联网得到的数据。异步操作就等于帮你节约了一些时间。 参考技术B 深入的不太懂,但是大概粗浅一点我说下我的理解。
后台查询完成之后返回到前台:可以理解为同步,页面上的数据是一起刷新的。
异步:比如说我们提交什么东西的时候,验证身份证是否合法,我们可以用ajax异步进行验证、
就是不用刷新整个页面,直接从后台拿数据到前台。页面不用重新加载数据。

上传文件可以用,不过有一个上传文件的小插件非常好用。好像是jquery-fiel就是一个jquery的上传插件用的ajax实现追问

syncronize是什么怎么用

追答

单例吧

以上是关于在JAVA中啥是顶级类啊的主要内容,如果未能解决你的问题,请参考以下文章

java中啥是EJB?

Java中啥是可调用的?

Java 中啥是快速、等待通知或忙等待?

Java开发中啥是垃圾回收?

java中啥是转义字符,为啥要使用转义

在JAVA中啥是递归?有啥用?