📄 ways-to-java-study.txt
字号:
Q:从文件系统和从网络载入小程序有何区别?
A:Java系统装载小程序有两种不同的方式。装载的方式影响小程序被允许做什么。
如果一个小程序从网络装载,那么它是通过小程序装载器载入的,并且受到小程序安全管理器增强限制的约束。
如果一个小程序位于客户机的本地磁盘,并且位于客户机的CLASSPATH目录,那么它是通过文件系统装载的。最重要的区别是通过文件系统装载的小程序可以读写文件,可以装载客户机的类库,可以执行进程,可以退出虚拟机,并且不需要通过字节码校验。支持Java的浏览器使用小程序类装载器载入指定地址类似为file:URLs的小程序。因此,类装载器增加的限制和保护以及与之相关的安全管理器影响通过file:URLs装载的小程序。
这意味着如果你指定这样的地址:
Location: file:/home/me/public_html/something.html
并且文件something.html 包含一个小程序,浏览器将使用小程序类装载器装载该小程序。
Q:每次我访问一个小程序的时候,浏览器总是重新下载所有相关的类文件。
我想使用缓存的副本如果它们没有被修改,而不是一次又一次的重复下载……
A:请使用标签:
<PARAM NAME = “cache_archive” VALUE = xx.jar,yy.jar,zz.jar“>
Q:怎样在Netscape的Java控制台中提高调试信息显示的级别?
A:当Java控制台被激活时,键入0~9之间的一个数字:0 = No Information, 9 = Maximum Information
Q:我的小程序非常大当网络很慢时装载时间很长,有没有什么办法减少启动时间?
A:较好的解决方案是建立一个仅包含启动小程序必备部分(初始化GUI元素)的core.jar文件,当小程序开始运行时剩余的类文件可以稍后装载。没有人会直接使用100%的功能并且给人一切都已准备好的印象……
这个方案比较好也有另外的原因。如果浏览器在装载大的jar文件时丢失连接,你将不得不重新下载所有文件。如果采用了我们的方案,浏览器将缓存一部分类文件,可以节省重新装载的时间。
通常你不需要立即使用小程序的所有功能,所以它可以在所有可能的功能装载完毕之前就生效。事实上,许多浏览器都会缓存jar文件和class文件。
Q:我写了第一个小程序但是它非常大,虽然是一个小程序看起来却像一个巨大的Java应用程序。你能告诉我对于减小小程序的大小什么是最重要的吗?
A:1 使用编译器优化:javac –O 但是无论如何请检查它的大小。有时它反而会使文件变大。
使用jar文件替代class文件。
试着尽可能多的使用继承:使更多的代码能够重用,而不是重新写。
试着使用标准API,通常它们比外来包在大小上更优。当然它们通常也有更好的方法等等。
使用短名字。
不要初始化大的数组,因为它们将被初始化并且直接进入字节码,你可以在稍后做得更好。
Q:为什么当我运行小程序的时候得到这样的消息”wrong magic number(错误的魔数)”?什么是魔数?
A:第一个是JVM给出的,当JVM装载一个类是它会检查类的前四个字节(16进制):CA FE BA BE。这就是魔数,这就是为什么你遇到那样的错误,因为你试着装载的根本不是一个类文件,JVM的类装载器抛出了那个异常。
确保你将类文件存储为二进制格式,而不是文本或ASCII模式。
浏览器的出错提示“cannot start applet … bad magic number”通常意味着服务器上的某个类文件是损坏的。
这时请替换web服务器上的二进制类文件,清空浏览器缓存,重新装载小程序。
Q:我遇到了Socket类的问题。我在小程序内部使用这个类(我写了一个小的聊天室),我的代码如下:
Socket s = new Socket(“192.168.0.4”,13780);
当我连接的服务器和客户机在同一个机器上时,它工作的很好。当服务器在另一个机器上时,Netscape和IE都给出了如下的错误信息:
Security: Can’t connect to 192.168.0.4 with origin
请问怎样解决?
A:小程序的标准安全概念是沙盘(sandbox)。小程序与它的内存空间以外的地方“交谈”,不能和其它的文件“交谈”,也不能与因特网上的任何事物“交谈”,除了它所在的同一机器上的“父”网页。所以你的小程序不能连接192.168.0.4,除非这个网页来自于192.168.0.4。
Q:怎样查看在IE中运行的Java小程序的错误输出?
A:这个文件 \Java\Javalog.txt包含了IE中最后一次运行的小程序的信息当IE的Java日志功能启用时,所有的System.out消息和异常信息都会记录在此。要启用IE的Java日志功能请打开IE,选择:查看—选项—高级,选择“启用Java日志”,点击确定,重新启动IE即可。
在NT4中,这个文件位于C:\WINNT\Java。
Q:有什么办法可以减少下载小程序所花的时间?
A:有一个办法可以减少下载时间,将任何涉及小程序的类放在jar文件中。使用与下面类似的小程序标签的ARCHIVE选项:
<applet code=”xyz.class” archive=”pqr.jar” with=100 height=100></applet>
Q:当我重新载入我的小程序时我的隐藏界面直接显示出来了,为什么?
A:将 mycanvas.setVisible (false); 放在Start()部分而不是init()部分。
Q:我想打印小程序生存期内的所有调试信息,有什么简单的办法可以做到吗?
我是一个Java的初学者。现在我正在做一个小程序,我想向浏览器窗口写入信息以便调试,例如跟踪小程序的执行。就像我开发C++程序时经常使用大量的“cout”来检查值和程序行为。Java小程序有没有简单办法做到这些呢?对于我来说,好像所有的问题都出在一个叫作“paint(graphics g)”的函数上,而这个函数只在小程序开始时调用。我想打印小程序整个生存期的文本信息,又没有简单的办法?
A:你最好像这样做:
System.out.println(“the value is ” + whateverValue);
这个将会显示在Java控制台,在IE5中查看,选择 查看—Java控制台,就会弹出Java控制台窗口。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -