- 浏览: 118295 次
- 性别:
- 来自: 北京
最新评论
-
supertangcugu:
senninha 写道然鹅。。jdk1.8已经把这货移到了he ...
小例子:如何说明String常量池的位置 -
senninha:
然鹅。。jdk1.8已经把这货移到了heap区?只有把-Xmx ...
小例子:如何说明String常量池的位置 -
onada1108:
还有你是基于jdk那个版本
小例子:如何说明String常量池的位置 -
onada1108:
我想问下,你这个方法跑啦多长时间
小例子:如何说明String常量池的位置 -
hu_xuefeng:
hsbljyy 写道看来真的有很多谬误啊!当变量在-128~1 ...
从“关于Java堆与栈的思考”一帖看错误信息的传播
文章列表
题目:有一个数组,假设是{2,3}。。那么他的子集数包括{2}{3}{2,3},这个称为子包。每个子包的数据和是2,3,5。它们都是素数,那就叫素数包。现在设计个程序,入口是数组,出口是数字(素数包的个数)。
分析:这里面涉及 ...
- 2009-09-22 23:20
- 浏览 1827
- 评论(3)
首先看这段代码:
interface InterfaceTest{
void test();
}
public class Test implements InterfaceTest{
public void test(){
System.out.println("test");
}
public static void main(String[] args){
InterfaceTest i = new Test();
i.toString();
i.test();
} ...
- 2009-09-20 19:15
- 浏览 3449
- 评论(0)
关于java的构造方法有几个简单的问题:
1.构造方法有返回值吗?
没有。构造方法没有任何返回类型,也不允许是void。比如:
public class Test {
//这不是构造函数!
public void Test() {
System.out.println("void Test()");
}
public static void main(String[] args) {
Test test = new Test();
test.Test();
}
}
...
- 2009-09-20 00:47
- 浏览 5649
- 评论(4)
以前批过《关于Java堆与栈的思考》这个帖子,具体内容见http://zangxt.iteye.com/blog/440330。
这里只是举个简单的例子说明字符串常量池在内存中的位置。
闲言少叙,直接上代码。
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
String str = "abc";
char[] array = {'a', 'b', 'c'}; ...
- 2009-09-20 00:44
- 浏览 14436
- 评论(6)
先看代码:
public class Test {
public static void testStatic(){
System.out.println("testStatic()");
}
public void testNonStatic(){
System.out.println("testNonStatic()");
}
public static void main(String[] args) {
Test.testStatic();
...
- 2009-09-10 00:52
- 浏览 2015
- 评论(2)
首先声明,本文无任何实际价值,只是讨论一些无聊的说法。
有一个著名的帖子《Java关键字final、static使用总结》,里面有这样一句话:
注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。
这句话的确值得注意,搞不明白一个表示可见性的关键字private和一个表示禁止覆盖的关键字final怎么扯上关系了。
我说这句话是在java语义的角度看是错误的。有人说《Java编程思想》里这么说的,应该可信。如果你认为是错误的,如何证明?
其实从语义角度很容易说明它们是不相关的了 ...
- 2009-09-03 10:07
- 浏览 7206
- 评论(7)
我对转贴的信息一直有敌意,原因如下:首先,除了制造更多的信息垃圾,转贴不会带来新的价值,想收藏的话一个链接足矣;其次,将错误信息以讹传讹,混淆视听。不妨选一个典型的例子说明一二。
相信《关于Java堆与栈的思考》这个帖子大家并不陌生,转载量极大。但内容如何呢?我就试着分析一下。说明:以下内容,黑色字体为引用别人的帖子,红色字体是我的分析,蓝色字体是引用相关文献。
1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。
与C++不同,对于堆来说是有道理的。但C++ ...
- 2009-08-05 05:03
- 浏览 10038
- 评论(34)
题目接http://zangxt.iteye.com/blog/435711
说明:这篇博文是我自己分析和整理的,题目来源和解析参考http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-5186.pdf
,版权归原作者所有。
1.读文档,看Boolean.getBoolean()这个方法的功能就能解决。
多读文档,很多接口可能并不是按我们想象的方式工作。
2.答案是6.
多态带来的问题。
public boolean addAll(Collection<? extend ...
- 2009-07-30 12:35
- 浏览 2844
- 评论(4)
在2009年的JavaOne大会上,Joshua Bloch和Neal Gafter又为我们带来的7道谜题,挺有意思的。大家不妨看看。 摘自: Return of the Puzzlers: Schlock and Awe Joshua Bloch, Google, Inc.; Neal Gafter, Microsoft http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-5186.pdf
分析可以参考上面链接,或者参考我的分析http://zangxt.iteye.com/admin/blogs ...
- 2009-07-29 18:10
- 浏览 6022
- 评论(14)
try/catch/finally语句下,finally子句是肯定会执行的。但是很多人做不同的测试,却得出了不同的结论。
具体的原理最好是去看《深入java虚拟机》,里面对jsr、ret等几个指令做了详细的说明。这里不深入分析,而仅仅是从表现形式上看一下finally的特征。
代码:
/*
* author: Zang XT
*/
public class TestFinal {
public static void main(String[] args) {
System.out.println("test1:& ...
- 2009-05-21 15:59
- 浏览 5178
- 评论(7)
好像有这样一个面试题:如果一个类是非public的,那么它的方法声明为public有什么用吗?
看这种情况:
package test;
public abstract class Test {
public abstract void test();
public static Test getInstance(){
return new SubTest();
}
}
class SubTest extends Test{
@Override
public void test() {
Sy ...
- 2009-05-19 21:49
- 浏览 3730
- 评论(1)
默认构造方法并非总是public的
- 博客分类:
- Java基础
以前印象中一直有一个概念,说“如果没有提供构造方法,java将自动添加一个空的public的构造方法”。现在看来,有2个问题,一,默认构造方法未必是public的,二,默认构造方法肯定有super();(Object类的是空构造方法)。
实际情况是,默认构造方法的修饰符是和所在类的修饰符一致的。
比如
public class Test{
}
它的默认构造方法是
public Test(){
super();
}
而
class Test{
}
它的默认构造方法是
Test(){
super();
}
这就没有public了。
对于内部类的情况,类的 ...
- 2009-05-19 19:14
- 浏览 5589
- 评论(3)
String类是Java中很重要的一个类,在此总结一下这个类的特别之处。下面的相关资料翻译自《java语言规范》(第三版)和《java虚拟机规范》(第二版),有的直接摘引了原文。下面的代码都是用SUN jdk1.6 javac来编译。
1.String literal,这里将它翻译为字面常量,它由双引号包围的0个或多个字符组成,比如"abc","Hello World"等等。一个String字面常量总是引用相同的String实例,比如"abc","abc"两个常量引用的是同一个对象 ...
- 2009-05-19 18:31
- 浏览 2030
- 评论(0)
一个静态初始化的例子
- 博客分类:
- Java基础
Java语言规范中的一个例子:
class Super {
static int taxi = 1729;
}
class Sub extends Super {
static {
System.out.println("Sub");
}
}
public class Test {
public static void main(String[] args) {
System.out.println(Sub.taxi);
}
}
结果:1729
注意:taxi实际在Super ...
- 2009-05-18 02:28
- 浏览 1280
- 评论(0)
阅读Java Virtual Machine Specification中的第四章,理解Java的class文件格式。
class文件由8位的字节流组成。
The ClassFile Structure
ClassFile{
u4 magic;
u2 minor_version;
u2 major_version;
u2 constant_pool_count;
cp_info constant_pool[constant_pool_count-1];
u2 access_flags;
u2 this_class;
u2 interfaces_count;
u ...