我一直认为类的客户端是使用引用来访问该类的实例字段/方法,即另一个类(来自其自己的方法).但是当我想到一些细节时,有一些我无法弄清楚的事情.
在Java中,我知道一些可以放置动作语句的地方.
也许还有更多我不知道或不记得的东西.
问题的第一部分是所有这些被认为是客户,如果他们在另一个班级?当他们在同一个班级时,他们也可以访问私人物品吗?
第二部分是:当JVM调用方法(如main和finalize)时,它们也被认为是客户端吗?(这些电话不是来自一个班级?)
编辑:客户端只能访问公共方法和变量吗?如果它访问包字段(如果在同一个包中),我们不能称它为客户端.
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL url = classLoader.getResource("com/x/y/z.cfg");
File file = new File(url.getPath());
Run Code Online (Sandbox Code Playgroud)
这在从Eclipse运行jar文件时起作用,但在jar文件中运行时不起作用.
java.io.FileNotFoundException:file:\ C:\ Users \nova\Desktop\Matcher.jar!\ c om\x\y\z.cfg
这不是重复的.我检查了所有其他问题,没有有用的信息.
在适配器模式中,我们将对象的接口更改为另一个对象,以便从另一个接口使用它。
在命令模式中,我们将对象的接口更改为通用的命令接口,提供一个执行方法来调用真正的方法来完成工作。这不是适配器模式已经做的完全一样的事情吗?那么命令模式有什么意义呢?
如果我没有弄错的话,Activity对象永远不会从内存中销毁,它们总是存在,直到进程被终止.所以调用finish()或Android操作系统来破坏你的Activity并不意味着它在内存中被破坏,而只意味着它现在处于'被破坏状态'(非官方名称).
为了演示,我确实覆盖了我的活动的finalize方法,然后从另一个活动的按钮点击事件中使用了System.gc().我看到正在调用我的活动的finalize方法.如果在进程运行时无法销毁活动对象,那么活动如何被垃圾回收?
我是汇编语言编程(x86)的初学者。
以下说法是否正确?
在汇编中,BYTE、WORD、DWORD 等数据类型分别表示 8 位、16 位和 32 位模式,而不仅仅是整数。它们本身没有意义,它们只是位模式。使用它们的指令赋予了它们意义。
我读了几本关于Java的书.在所有这些中,至少有一章教授GUI编程.在所有这些中,创建一个简单的表单应用程序遵循以下逻辑:
MyFrame.java
public class MyFrame extends JFrame
{
JButton button1;
public MyFrame()
{
button1 = new JButton("Click here.");
}
}
Run Code Online (Sandbox Code Playgroud)
FrameTest.java:
public class FrameTest
{
public static void main(String[] args)
{
MyFrame myFrame = new MyFrame();
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setSize(600, 600);
myFrame.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,只是将JFrame子类化为创建表单并将其他组件声明为实例变量,并在构造函数中初始化这些组件.然后创建另一个测试类,在该类中实例化框架子类并调用它的一些方法使其可见.
但在并发课程中,我了解到我们有一个主线程,它在我们创建的每个应用程序中运行main().据我所知,当我们使用Swing创建GUI应用程序时,我们有另一个线程(Event Dispatcher Thread).因此,如果我没有记错,在每个基于Swing的GUI应用程序中至少有两个线程.这使得每个GUI应用程序都是多线程的.在我读过的一些文章和教程中,它说Swing不支持多线程,因此只能在Event Dispatcher Thread中创建和修改所有GUI组件,否则可能会出现线程干扰和内存不一致错误.
即使在维基百科(http://en.wikipedia.org/wiki/Swing_%28Java%29)中最简单的例子中,它也是通过invokeLater方法制作的.
那么哪一个是真正的方法?我哪里错了?