1.
问:在
JAVA
与
JSP
中要调用一个
LINUX
上的脚本程序
,
或
WINDOWS
上的脚本程序
,
该怎么写?
答:
System.getRuntime().exec("bash
< aaa.sh");
2.
问:
java
中用什么表示双引号
答:
"\""
3.
问:如何在
JSP
程序里另起一个线程?
答:
JSP
本身就是独立线程运行而不象
CGI
都是独立进程
.
一般
:
Thread t = new Thread("
你的对象
\\");
t.start();
就可以了
.
要求你这个对象要实现
runnable
接口或继承
thread.
4.
问:
jsp
如何获得客户端的
IP
地址?
答:
request.getRemoteAddr()
看看各个
webserver
的
API
文档说明,一般都有自带的,
resin
和
tomcat
都有
5.
问:程序终止与输出终止
答:
程序中止
:return;
输出中止
:out.close();
这一句相当于
ASP
的
response.end
6.
问:
jsp
中如何得到上页的
URL
?
答:
request.getHeader("referer");
7.
问:提交网页的网页过期功能是怎么做的?
答:
response.setHader("Expires","0");
8.
问:在
JSP
网页中如何知道自已打开的页面的名称
答:
request.getRequestURI() ;//
文件名
request.getRequestURL() ;//
全部URL
9.
问:提交表单后验证没有通过,返回提交页面,如何使原提交页面中的数据保留?
答:
javascript
的
go(-1)
可以把上页的表单内容重新显示出来
,
但
password
域没有
10.
问:如何取得
http
的头信息?
答:
request.getHader(headerName);
11.
问:
&&
和
&
的区别?
答:
&
是位运算符,表示按位与运算,
&&
是逻辑运算符,表示逻辑与(
and
)。
12.
问:将
*
以正弦曲线的一个周期显示出来
答:
public void paint(Graphics g)
{
for(int i=0;i<200;i++)
g.drawString("*",i,(int)(Math.sin(i)*20)+50);
}
}
13.
问:浮点数相乘后结果不精确如
100.0 * 0.6
结果等于
60.0004
答:
这不叫错误
,float
和
double
是这样实现的
.
如果要精确计算,
java
提供了一个
strictfp,
它的计算遵循
IEEE 754
标准
.
而普通的
float
和
double
是由地平台浮点格式或硬件提供的额外精度或表示范围。
14.
问:如何获得当前用的
cursors
的位置?
答:
int row = rs.getRow()
就是当前指针行数
,
还有
isFrist();isBeforeFist();isLast();isAfterLast();
可以测试是不是在方法名所说的位置
15.
问:表单成功提交了,点后退显示网页过期
答:
在
<head></head>
里面加以下代码
<META HTTP-EQUIV="Pragma"
CONTENT="no-cache">
<META
HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META
HTTP-EQUIV="Expires" CONTENT="0">
或者在表单页中加上
<%
response.setHeader("Pragma","no-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
%>
16.
问:接口的简单理解
答:接口为了规范
,
比如我在接口中定义了一个方法
:
getData()
这是用来从不同的数据库中取数据的
,
就是
JDBC
的实现对于用户
,
我不要知道每种数据库是如何做的
,
但我知道如何它们要实现这个接口就一定有这个方法可以供我调用
.
这样
SUN
就把这个接口给各个数据库开发商
,
让他们自己实现
.
但为什么不用继承而用接口哩
,
因为继承只能从一个你类继承
,
而接口可以实现多个
,
就是说我实现的子类有多个规定好的接口中的功能
.
这只是简单的理解
,
等你深入理解抽象的时候就知道抽象到抽象类时为什么还要再抽象到接口
.
17.
问:怎样编写一个取消按钮(怎样返回上一个页面,象工具栏的后退按钮)?
答:
javascript
把每次浏览过的
location
都压到了一个栈中
,
这个栈就是
history,
然后你如果要回到第几个页面它就做几次
POP
操作
,
把最后
POP
出来的那个
LOCATION
给你
.
这就是
JAVASCRIPT
在实现
history.go(-x)
的原理
.
18.
问:什么是回调?
答:
简单说
,
回调用不是让你去监听谁做完了什么事
,
而是谁做完了什么事就报告给你
.
这就是回调用的思想
.
例子太多了
,AWT
的事件
,SWING
事件模型都是这样有
.
还有多线程中
,
如果要控制线程数
,
不能总是查询每个线程是否结束
,
要在每个线程结束时让线程自己告诉主线程我结束了
,
你可以开新的线程了
.
19.
问:简要介绍一下
compareTo
方法
答:
compareTo
方法是
Comparable
接口必需实现的方法
,
只要实现
Comparable
就可以用
Arrays.srot()
排序就象实现
Runnable
接口的
run
就能
Thread()
一样
.
20.
问:如何可以从别的
Web
服务器检索页
,
然后把检索到的网页的
HTML
代码储存在一个变量中返回过来
答:这是一个简单的
WEB
ROBOT
实现
,
用
URL
类实现从网页中抓内容
,
然后自己写一个分析程序从中找出新的
URL,
不断递归下去就行了
.
21.
问:
applet
中如何获得键盘的输入
答:
application
的
System.in
是当前系统的标准输入
,applet
因为安全的原因不可能读取当前系统
(
客户端
)
的标准输入
,
只能从它的
ROOT
组件的事件中
,
比如键盘事件中取得键值
.
22.
问:怎样计算代码执行所花费的时间?
答:
代码开始取时间,结束后取时间,相减
long t1 = System.currentTimeMillis();
///////////////// your code
long t2 = System.currentTimeMillis() ;
long time = t2-t1;
23.
问:如何获在程序中获得一个文件的
ContentType
?
答:
URL u = new
URL("file:///aaa.txt");
URLConnection uc = u.openConnection();
String s = uc.getContentType();
24.
问:连接池的使用是建立很多连接池,还是一个连接池里用多个连接?
答:
只有在对象源不同的情况下才会发生多个池化
,
如果你只连一结一个数据源
,
永远不要用多个连结池
.
所以连结池的初始化一定要做成静态的
,
而且应该在构造对象之前
,
也就是只有在类
LOAD
的时候
,
别的时候不应该有任何生成新的连结池的时候。
25.
问:
JavaMail
要怎么安装?
答:下载两个包,一个是
javamail
包,另一个是
jaf
包。下载完直接把这两个包不解压加到
CLASSPATH
。
26.
问:怎样把地址栏里的地址锁定?
答:把你的服务器的可访问目录索引选项关闭就行了
,
任何服务器都有一个
conf
文件
,
里面都有这个选项。
27.
问:在
JAVA
中怎么取得环境变量啊。比如:
TEMP = C
:
\TEMP
?
答:
String sss =
System.getProperty(key)
28.
问:怎样实现四舍五入,保留小数点后两位小数?
答
:
import
java.text.*;
...
NumberFormat
nf=NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
nf.setMinimumFractionDigits(2);
nf.format(numb);
29.
问:
Applet
和
form
如何通信?
答:
取得的参数传到
param
里面
<%
String xxx =
request.getParameter("xxx");
%>
<applet>
<param
value="<%=xxx%>">
</applet>
30.
问:
java-plug-in
是什么?
答:
Java Runtime
Environment
的插件。用来运行
java
程序。不需要什么特别的设置。等于你的机器里面有了
jvm
。
31.
问:
WEB
上面怎么样连接上一个
EXCEL
表格?
答:
定义页面得
contentType="application/vnd.ms-excel"
,让页面以
excel
得形式打开。同样也可以以
word
得形式打开:
application/msword
。
32.
问:怎样才能避免
textarea
字数限制?
答:是使用了
FORM
的默认方法的缘故
,
如果什么也不写默认是
GET
改用
Post
即可,在
Form
中定义
mothod="post"
。
33.
问:为什么加了
<%@page contentType="text/html;charset=gb2312" %>
插入数据库的中文,依然是乱码?
答:
这要从环境看
,
能显示说明你的
JSP
引擎没有问题
,
但写入数据库时你的
JDBC
能不能处理中文
,
同一公司不同版本的
JDBC
都有支持中文和不支持中文的情况
,RESIN
自带的
MYSQL JDBC
就不支持
,MM
的就支持
,
还有你的数据库类型是否支持中文
?CHAR
的一般支持
,
但是否用
binary
存储双字节码
34.
问:对于
JFrame
,
hide()
,
show()
与
setVisibel()
有什么区别吗?
答:
setVisible()
从
Component
继承过来,而
hide(),show()
从
Window
里面继承过来。
Makes the Window visible. If the Window
and/or its owner are not yet displa yable, both are made displayable. The
Window will be validated prior to being made visible. If t he Window is already
visible, this will bring the Window to the front.
区别在这。
36.
问:
sendRedirect
为什么不可以转到
mms
协议的地址的?
response.sendRedirect("mms://missiah.adsldns.org:9394");
答:
java
平台目前实现的
protocol
中并没有
mms,
你可以取系统属性
java.protocol.handler.pkgs
看看它的值中有没有
mms,
所以如果要想重定向到
mms://host
这样和
URL,
只有生成客户端的
JAVASCRIPT
让它来重定向
37.
问:
JTable
中怎样定义各个
Columns
和
Width
和怎样设置表格的内容靠做靠右或居中?
答:
TableColumn tc =
table.getColumn("Name");//
取得列名为
"Name"
的列
Handle
int currentWidth = tc.getPreferredWidth();
//
取得该列当前的宽度
tc.setPreferredWidth(200); //
设置当前列宽
tc.setMaxWidth(200); //
设置该列最大宽度
tc.setMinWidth(50); //
设置该列最小宽度
38.
问:批操作是否可用于
select
语句?
答:批操作其实是指成批理更新的操作
,
绝对不可能用于
select
操作。
39.
问:为什么
jsp
路径太深文件名太长就无法读取文件?
答:
path
不能超过
255
长度
,
不然就找不到了
.
这是作业系统的事。
40.
问:如何让页面不保留缓存?
答
:
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",
0);
%>
41.
问
:
我的
applet code
中用到
jbutton
时就出错是否由于
ie
不支持
swing package
请问应怎么办
?
答
:
JBUTTON
是
SWING
基本包啊
,
只要把
jdk/jre/lib/rt.jar
放在
classpath
就行了
.
不要加载任何别的库。
42.
问:不知道
java
是否支持
midi
格式,如果支持,应该怎么把
wave
格式转换成
midi
格式?
答:目前还不行
,
可以看一下
JMF
三个版中对
MIDI
的格式支持是
read only,
而
WAVE
是
read/write,MIDI
只能播放
,
不能生成。
43.
问:在
jsp
里面防止用户直接输入
url
进去页面,应该怎么做呢?
答:
一是从
web
服务器控制
,
对某一目录的所有访问要通过验证
.
二是在要访问的页面中加入控制
.
这个一般用
session,
也可以用请求状态码实现
44.
问:
例如后台有一计算应用程序(此程序运算起来很慢,可持续几分钟到几小时,这不管,主要是能激活它),客户机讲任务提交后,服务器对任务进行检测无误后将向服务器后台程序发送信息,并将其激活。要求如下:
1
)首先将后台程序激活,让它执行此任务(比如,前台将计算的
C
代码提交上后,后台程序程序能马上调用,并将其运行)
2
)要在前台
JSP
页面中显示运行过程信息(由于运行时间长,希望让客户看到运行过程中产生的信息)如何完成?
答:
活是可以的
,
运行一个
shell
让它去运行后台就行
,
但不可能取出运行信息
,
因为
HTTP
的超时限制不可能永远等你后台运行的
,
而且信息如果要动态实时推出来就得用
SERVER PUSH
技术。
45.
问:数据库是
datetime
型
,插入当前时间到数据库?
答:
java.sql.Date sqlDate = new
java.sql.Date();
PreparedStatement pstmt =
conn.prepareStatement("insert into foo(time) values(?)");
pstmt.setDate(1,sqlDate);
pstmt.executeUpdate();
46.
问:怎样去掉字符串前后的空格。
答:
String.trim()
47.
问:
session
怎样存取
int
类型的变量?
答:
session.setAttribute("int",
i+"");
int i =
Integer.parseInt(session.getAttribute("int"));
48.
问:在
javascript
中如何使输出的
float
类型的数据保留两位小数。
答:
Math.round(aaaaa*100)/100
。
49.
问:在
bean
种如何调用
session
答:
你可把
session
对象作为一个参数传给
bean
在
BEAN
中定义
HttpServletRequest request;HttpSession
session;
然后
session = request.getSession(false);
false
为如果
session
为空
,
不建立新的
session
将
session
作为参数传入
.
其实只要将
request
传入就可以
50.
问:如何把
txt
或
word
文件按原格式显示在
jsp
页面或
servlet
上?
答:
其实一个非常简单的解决方法就是在服务器的
MIME
中指点定
TEXT
和
WORD
的解释方式
,
然后用
JSP
或
SERVLET
生成它就行了
,
客户端就会自动调用相应程序打开你的文档。
如果是希望按原格式的显示在页面上,而不是调用其他程序打开那么你可以试试用
WEBDEV
协议
,
可以说这是
MS
的一个亮点
.
它是在
WEB
方式下打开文档
,
和共享一样
.
完全符合的要求。
51.
问:
object
的
clone
方法为什么不能直接调用?
答:
这个方法在
object
中是
protected
为什么要把这个方法定义为
protected,
这是一个折中
,
它的目的是想知道你这个方法在
Object
里只是一个标记
,
而不是一个实现
,
比如
public class Object
{
.............
protected Object clone()
{}
}
所以直接继承的
clone()
方法并不能做任何时
,
你要使用这个方法就要重载这个方法并放宽访问权限为
public,
或实现
cloneable
接口
.
但它没法这样告诉你它没有真的实现
,
只好用
protected
方法加以警示
52.
问:一个页面中如何刷新另外一个页面?
答:
要求是这些面页必须有关联
,
一是它们都有一个共同的顶层帧
,
也就是说是一个帧内的分级页面
,
当然可以是任意级
,
帧内再分帧也可以
,
另一个可能是当前窗口弹出的窗口
,
如果没有联系
,
那就不可能用一个页面刷新另一个页面
.
帧内只要一级一级引用就行了
.
比如在左帧中一个页面中写
top.right.location.reload();
那么名为
right
的右帧中的页面就会刷新
.
弹出的一样
,
用
open
时的名称刷新子窗口
,
子窗口用
opener
刷新主窗口
53.
问:如何在
jsp
中怎么样向客户端写
cookies
?
答:
Cookie coo = new Cookie(name, value);
HttpServletResponse.addCookie(name);
54.
问:为什么
jTextField1.setText("aaabbb");jTextField2.setText("AAABBB");
得到的字体宽度不一样?
答:就是说如果不是指定为等宽字体
,
每个字体的宽度都是不一样的
.
因此
JAVA
中用
FontMetrics
类来取字符宽度。
55.
问:
String kk=application/octet-stream;
name="G:/SMBCrack.exe";
如何得到
SMBCrack.exe
?
答:
这应该是解析上传时候的二进制流得到的这一行里面格式是固定的,取到
name="
后面的字符串,然后把
";
去掉。然后取最后一个
/
后面的所有字符组成一个新字符串就行了。
56.
问:如何传值并不刷新页面?
答:
弹出一个页面进行值的选择或者输入,
ok
后使用将值传给原窗口,使用
javascript
关闭打开的窗口即可:
window.close();opener.focus();
57.
问:有一个字符串:
"EF0C114EA4"
,如何变为
a[0] = 0xEF a[1] = 0x0C a[2] = 0x11 a[3] = 0x4E a[4] = 0xA4
?
答:
String str="EF0C114EA4F";
out.print(str+"<br>");
int
l=str.length()/2+str.length()%2,j=0,k=0;
String[] a=new String[l];
for(int i=0;i<l;i++){
if(str.length()-j==1)
k=str.length();
else
k=j+2;
a[i]="0x"+str.substring(j,k);
out.print("a["+Integer.toString(i)+"]="+a[i]+"<br>");
j+=2;
}
58.
问:怎样将一个
int
转换成一个四字节的
byte
数组?
答:
int x = 1234567;
byte[] b = new byte[4];
for(int i=0;i<b.length;i++)
{
b[i] = (x >>( i*8)) & 0xFF;
}
59.
问:
indexOf()
的使用需要注意什么?
答:参数是指从第几位(
1
,
2
,
3
,
...
)开始搜索,而返回值是指搜索到的位置(
0
,
1
,
2
,
3.......
)注意是从零算起的。
60.
问:在
Java
应用程序中如何动态的添加一个按钮?
答:
这里涉及一个组件重绘的问题
,
组件要先于
panel
被显示之处存在
,
如果一
panel
已经显示了
,
那么加在上面你能看到吗
?
但如果在同一个
panel
上
,
先有
button A,
假如按下它加了
butt on B,
这时你如果使整个
panel
重给
,
那么
A
本身要重绘
,
它的事件监听就没有了
,
当然也就加不成
B
了
,
所以如果要先有另一个
panel,
当按
A
时把
B
加在这个
panel
上并重绘这个
paenl,
其实更好的方法是先把
B
加在
panel
中
,
同一个也行
.
把它
setVisiable(flase),
按
A
时设为
true
。
61.
问:
book mybook=new book(bookid);book
是
servlet,
出错。
答:
book
是
servlet,
能
book mybook=new book(bookid);
说明自己实现了
servlet
容器
?
不然
,servlet
能让你自己去调用
? servlet
如果调用其实和
EJB
连
1%
的区别都没有
,
它们都是自己继承或实现一些接口
,
在这些父类或接口中实现了如果和容器
\"
打交道
"
的方法
,
然后容器调用这些方法来管理它
,
让它生成实例
,
池化
,
钝化
,
销毁
,
再生等
.
所以这样写是错误的。
62.
问:给定一个字符串
5*(5+9)/7
怎样计算出结果?
答:
可有两种方法
1
。用堆栈完成
2
。最简单的方法,不用编程,如果有任何一个数据库的化,用
select (5*(5+9)/7) from oneTable
63.
问:如何实现递交表单内容的加密解密?
答:
如果你用
IE
目前只能用
SSL
协议
,
这一层不要你考虑
,
否则只你用你自己的工具加密传输
,
接收后再解密友
,
至于如何加解
,
如果要和公认的系统结合
,
就用通用的
MD5,RAS
等公开算法
,
如果你只是自己传自己解
,
你随便按你的想法把数据加上一些东西
,
取回来按规则减掉这些东西
,
我敢保证除你自己没有任何人能知道解密方法
.
64.
问:为什么
Integer.parseInt("+1");
会抛出
NumberFormatException
的异常?
答:因为
"+"
运行算在
JAVA
中被重载
.
系统无法确定你用的是算术加还是字符
+
。
这一点可以在
JAVASCRIPT
中更好地理解
:
<form name="t"><input
name=s value=1234></form>
var a = document.t.s.value+1;
这时
a = 12345,
因为
document.t.s.value
作为字符串
.
但
var a = document.t.s.value-1;
a
就是
1233,
因为系统知道
-
运算肯定是算术运行
.
所以把
document.t.s.value
转换成数字
.
65.
问:
hashCode()
有什么用为什么有时候需要覆盖
Object
里的
hashcode()
方法?
答:这就是这个对象的身份证啊
,
要不如何区分哪个对象。
66.
问:怎样在
tomcat
中实现一个定时执行的东东?
答:
在应用程序启动时自动运行。
servlet2.3
中定义了
ServletListener,
监听
Servlet Con text
的启动或则关闭(可在配置文件中配置),启动时触发一个守护程序的运行
(
可以实现
java.util.Timer
或则
javax.swing.Timer).
67.
问:程序可以输出自己吗?
答:孔德悖论这个非常有名的法则
.
就是说任何程序都不可能输出自己
.
68.
问:能够把字符转化成
ASCII
码?比如将
A
转化成
65
?
答:
int a='A';
out.println(a);
69.
问:如何区分输入的文字中的全角与半角?
答:由于不能分辨出全角和半角字符的值有什么规律
,
只好把全角符号牧举出来了
.
70.
问:用户注册后的自动发信程序该怎么做?
答:
这种发信程序不考虑性能
,
因为不可能
1
秒就有一个人注册
,
我们说的考虑性能的发信程序是指上百万封信在队列里要不停发送的那种
,
象你这个随便怎么写一个程序都行
,
没有必要用
JAVAMAIL.
只要指定一个发信的服务器然后用
cocket
连它的
25
口就行了
.
自己用
SOCKET
连
SMTP
的
25
口发一封信就好象两个邻居之间送一样东西
,
直接递过去得了
,
用
JAVAMAIL,
消息机制就是你把这个东西从邮局寄给你的邻居了
posted on 2006-12-06 09:37
zxc 阅读(479)
评论(0) 编辑 收藏