谜题:
下面的程序打印出什么?
private static void abc(){
String letters = "ABC";
char[] numbers = {'1', '2', '3'};
System.out.println(letters + "easy as" + numbers);
}
1.String.valueOf(char[])
谜题:
下面的程序打印出什么?
private static void lastLaugh01(){
System.out.println("H" + "a");
System.out.println('H' + 'a');
}
1.StringBuilder sb = new StringBuilder();
sb.append('H');
sb.append('a');
System.out.println(sb.toString());
2.System.out.println("" + 'H' + 'a');
3.System.out.printf("%c%c", 'H' ...
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
JSON建构于两种结构:
“名称/值”对的集合(A collect ...
ClientAbortException可能原因
1>ClientAbortException: java.net.SocketException: Connection reset by peer:
socket write error的原因是由于处理http连接时,正在输出内容时,用户关闭了IE,会出
现一个"ClientAbortException",属于I/O处理中出现的一个异常,应用服务器应该会捕捉。
Connection reset by peer的原因:
经常出现的Connection reset by peer: 原因可能是多方面的,不过更常见的原因是:
①:服务器的并发 ...
谜题:
给出变量x和i的声明使x = x + i合法但是x += i非法。
1.复合赋值操作符要求两个操作数都是基本类型或者是基本类型的包装类型。有个特例:当+=的左操作数位String时,那么允许右侧的操作数是任意类型。
2.简单赋值操作数允许左操作数是对象引用类型。
谜底:
Object x = "ck";
String i = "ck";
x = x + i; // 合法
x += i; // 非法
谜题:
给一个变量x和i的声明,使得 x += i; 合法但是 x = x + i;不合法。
1.复合赋值E1 op= E2等价于简单赋值E1 = (T)(E1 op E2), 其中T是E1的类型,除非E1只被计算一次。也就是说:复合赋值表达式自动地将所执行计算的结果转型为其左侧变量的类型。或者说复合赋值表达式不会产生类型提升。
2.复合类型会悄悄的产生一个转型,请不要将复合类型操作符作用于byte,short,char类型的变量。
谜底:
int i = 10;
short x += i; // 合法
short x = x + i; // 将int型的值赋给short型,非法
谜题:
下面的程序打印什么?
private static void dosEquis(){
char x = 'X';
int i = 15;
System.out.println(true ? x : 0);
System.out.println(false ? i : x);
}
1.混合类型的计算会引起混乱,这一点在条件表达式里面尤其明显。
2.条件表达式结果类型的确定:
a>如果第二个,第三个操作数具有相同的类型,那么它就是条件表达式结果的类型。
b>如果一个操作数的类型是T, T表示byte, short或者char, 而另一个操作数是int类型的常量表达式, ...
谜题:
下面程序使用了复合的异或赋值操作符想不使用临时变量来交换两个变量的值,它所展示的技术是一种编程习惯。它将会打印什么?
private static void cleverSwap01(){
int x = 1984; // 0x7c0
int y = 2001; // 0x7d1
x ^= y ^= x ^= y;
System.out.println("x = " + x);
System.out.println("y = " + y);
}
1.操作符的操作数是从左向右求值的。也就是说为求表达式x ^= expr的值,要在计算x之前提取x的值。
2.依 ...
谜题:
下面的程序打印什么?
private static void multicast(){
System.out.println((int)(char)(byte)-1);
}
1.执行步骤:
a>-1的补码为32个1,强转为byte型,截取高24位,只保留低8位。
b>byte有符号,强转为char为带符号位扩展,16位均为1。
c>char无符号,强转为int为无符号位扩展,这时int类型的值为高16位均为0,低16为均位1。
2.这样的程序的执行结果严重依赖于转型的符号扩展行为。极为不好的做法,如果需要用到这种转型,那么也应该清楚的表明意图。如下:
a>将char的c ...
谜题:
下面的程序打印什么?
private static void joyOfHex01(){
System.out.println(Long.toHexString(0x100000000L + 0xcafebabe));
}
1.十六进制和八进制的字面常量的正负是由最高位决定的,而不向十进制字面常量是显式设置的。
2.混合类型的计算,若被扩充类型位是有符号类型的则带符号扩充,否则无符号扩充。
3.混合类型的计算可能会引起混淆,尤其需要注意的是十六进制和八进制字面常量无显式表示正负。
正确方法:
private static void joyOfHex01(){
...
谜题:
下面的程序打印什么?
private static void elementary01(){
System.out.println(12345 + 5432l);
}
1.相当的恶心,但是必须谨记:在long类型的字面常量里,一定要用大写的L。
2.要避免用单个的l作为变量名。
正确方法:
private static void elementary01(){
System.out.println(12345 + 5432L);
}
谜题:
下面的程序将打印什么?
private static void longDivision(){
final long MICROS_PRE_DAY = 24 * 60 * 60 * 1000 * 1000;
final long MILLIS_PRE_DAY = 24 * 60 * 60 * 1000;
System.out.println(MICROS_PRE_DAY/MILLIS_PRE_DAY);
}
1.执行步骤:
a>用int类型进行计算(虽然它们都被定义成了long类型),计算的过程中就已经溢出了,这是问题的关键。
b>将计算得到的int类 ...
java.util.regex.Pattern:
正则表达式的编译表示形式。 指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象,依照正则表达式,该对象可以与任意字符序列匹配。执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。 因此,典型的调用顺序是
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
在仅使用一次正则表达式时,可以方便地通过此类定义 matches ...
谜题:应付1.1元,给你2元,找我0.9元。
private static void change00(){
System.out.println("2.00 - 1.10 = " + (2.00 - 1.10));
}
1.并不是所以浮点数都可以用二进制浮点数精确表示的。它不可能将0.1或者10的其他任何次负幂精确表示成一个有限长度的二进制小数。但是2.00 - 0.01可以得到1.99????
2.在需要精确答案的地方,要避免使用float和double,对于货币计算,要使用int,long或者BigDecimal。
正确方法:
之一:实际问题中进行单位换算:
private ...
谜题:下面判断整数是否为奇数的方法是否正确:
private static boolean isOdd00(int i){
return i % 2 == 1;
}
1.java中对%的定义如下: a%b = a - (a/b)*b, 可以看出:当取余操作返回一个非零的结果时,它的符号和左操作数相同。所以上述方法在25%的时间里返回错误的结果。
正确方法:
之一:用相反的比较含义
private static boolean isOdd01(int i){
return i % 2 != 0;
}
之二:
private static boolean isOdd02(int ...
1.String的split方法,replaceAll方法.
笨:"chamborghini.chamborghini".split(".");以点分割,用indexOf替换
转义字符:String[] strArr = str.split("\\."); (以点分割)
1.start = s.indexOf("ch",i);
2.http://www.webkkk.com/html/jsp/20070404/1797.html
1.jsp(http://www.family168.com/tutorial/jsp/html/preface.html)
2.request.getRequestDispatcher("/p").forward(request, response);
"p"实际上是一个servlet,在web.xml里面可以找到相关配置
3.VelocityViewServlet
牛人博客:http://www.blogjava.net/liuwentao253
http://www.blogjava.net/liuwentao253/archive/2006/10/24/76915.html
h ...
长文章分页(样式, 内容, 图片, 附件分开存放,高)
思路
我的思路的大体实现
问题
1. <c:forEach>标签
<c:forEach var="name"
items="expression"
varStatus="name"
begin="expression"
end="expression"
step="expression">body content</c:forEach>
var:迭代参数的名称。在迭代体中可以使用的变量的名称,用来表示每一个迭代变量。类型为String。
items:要进行迭代的集合。对于它所支持的类型将在下面进行讲解。
varStatus:迭代变量的 ...
1.javadoc (http://202.102.240.73/java/javaweb/linuxjava/cjdk1_2-doc-zh/jdk1.2/zh/docs/tooldocs/win32/javadoc.html#doclet)
@see(http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html)
2.org.apache.struts.tiles.actions.ReloadDefinitionsAction: A standard Action that calls the reload() me ...
1.web.xml:http://edocs.bea.com/wls/docs61/webapp/web_xml.html
2.select table_name from user_tables; //当前用户的表
select * from tab; //当前用户的表
select * from cat; //当前用户的表
select table_name from all_tables; //所有用户的表
select table_name from dba_t ...
1.测试昨天遇到的三个问题。
2.详细了解oracle客户端的配置
3.熟悉中心后台管理模块的使用,功能等。
项目布置问题:
1>从服务器上面下载的代码里面数据源的配置为远程的,我们访问不了,而且数据源是按照jboss3.2配置的,我用的是jboss4.2.2,得修改数据源为本地4.2.2的。
2>公司jboss的lib里面的ejb持久化包版本太低,改成ejb3-persistence-3.3.1.jar。不然编译时会包工厂方法不能创建等问题。
3>在containers里面找到的绑定地址“admin2.chis.com.cn”似乎有问题(这时项目能够成功编译和启动,但是“http://127.0.0.1:8080/”却找不到页面。程总说很有可能是server.xml的问题,果然),从jboss临 ...







评论排行榜