2018年网站建设网站百度收录突然消失了
引论 :
务必记住,无论何时你创建包,你都已经在给定包的名称的时候隐含地指定了目录结构。这个包必须位于其名称所指定的目录之中,而该目录必须是在以CLASSPATH开始的目录中可以查询到的。最初用关键字package做实验,可能会有一点不顺,因为除非你遵守“包的名称对应目录路径”的规则,否则你将会受到许多出乎意料的运行时信息,告知无法找到特定的类,哪怕是这个类就位于同一个目录之中。如果你收到类似信息,就用注释掉package语句的方法试一下,如果这样可行的话,你就可以知道问题出在哪里了。
public, protected和private这几个java访问权限修饰词在使用时,是置于你的类中每个成员的定义之前的,无论它是一个域或是一个方法。每个访问权限修饰词仅控制它所修饰的特定定义的访问权。这一点与c++截然不同。在c++中,访问权限修饰词可以控制其后的所有定义,除非另有访问权限修饰词出现。无论如何,每个定义都需要某种为它指定的访问权限。在以下几节中,你将学习各类访问权限,首先是默认的访问权限。
如果你根本没有给定任何访问权限,例如像本章前面的所有示例,将会出现什么情况呢?默认访问权限没有任何关键字,但通常是指包访问权限(package access,有时也表示成为“friendly”)。这就意味着当前的包中的其他类对那个成员有访问权限,但对于在这个包之外的所有类,这个成员却是private。由于一个编译单元,即一个文件,只能隶属于一个单一的包,所以经由包访问权限,处于某个单一编译单元之中的所有类彼此之间都是自动可访问的。
包访问权限允许你将包内所有相关的类组合起来,以使它们彼此之间可以轻松地相互作用。等你把类组织起来放进一个包内之后,也就给它们的包访问权限的成员赋予了相互访问的权限,你拥有了该包内的程序代码。“只有你拥有的程序代码才可以访问你所拥有的其他程序代码”这种想法是合理的。你应该说,包访问权限为把类群聚在一个包中的做法提供了意义和理由。在许多语言中,你在文件内组织定义的方式是任意的,但在java中,则要强制你以一种合理的方式对它们加以组织。另外,你可能还想要排除这样的类:它们不应该访问在当前包中所定义的类。
类掌握着控制哪些代码对自己的成员享有访问权的权力。不存在任何获得访问权的其它捷径。其他包内的类不能一出现就说:“嗨,我是Bob的朋友。”,并且还想看到Bob的protected,包访问权限和private成员。
提问:
Java 中的 ReadWriteLock 是什么?
volatile 变量和 atomic 变量有什么不同?
可以直接调用 Thread 类的 run ()方法么?
如何让正在运行的线程暂停一段时间?
你对线程优先级的理解是什么?
什 么 是 线 程 调 度 器 (Thread Scheduler) 和 时 间 分 片 (TimeSlicing )?
你如何确保 main()方法所在的线程是 Java 程序最后结束的线程?
线程之间是如何通信的?
为什么线程通信的方法 wait(), notify()和 notifyAll()被定义在
Object 类里?
为什么 wait(), notify()和 notifyAll ()必须在同步方法或者同步块
中被调用?
为什么 Thread 类的 sleep()和 yield ()方法是静态的?
如何确保线程安全?
同步方法和同步块,哪个是更好的选择?
如何创建守护线程?