java数据结构之堆栈思想(数组)
很多时候数组存在着很大的缺限,首先必须先设置数组的长度,当设定了之后,就无法改变了。
下来是一种数组长度动态变化的一种方法
package com.yz.mystack;
public class Stack {
Object[] datas;
Integer n=0;
Integer N=1;
public Stack(){
datas=new Object[N];
}
public void push(Object data){
if(n>=N){
N+=2;
Object[] temps=datas;
datas=new Object[N];
for(int i=0;i<temps.length;i++){
datas[i]=temps[i];
}
}
datas[n++]=data;
}
public Object peek(){
return datas[n-1];
}
public Object pop(){
if(--n>=0){
return datas[n];
}
return 0;
}
public static void main(String[] args){
Stack stack=new Stack();
stack.push("aa");
stack.push("bb");
stack.push("cc");
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.pop());
}
}
相关文档:
1)静态变量本身不会被回收
2)静态变量所引用的对象是可以回收的。
第一点大家应该没有疑问,下面我证明第2点:
看下面的例子及注释。自己可以运行试一下, 注意加上-verbose:gc参数
java -verbose:gc TestStaticGc
// TestStaticGc.java
public class TestStaticGc {
& ......
doGet()和doPost()
Jsp页面的form标签里的method属性为get时调用doget(0,
为post时调用doPost()
Jsp
Jsp引擎(Tomcat)先将jsp文件转换为servlet,然后调用Java编译器javac.exe对
......
六种异常处理的陋习
你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?
Java代码
OutputStreamWriter out = ...
java.sql.Connection conn =& ......
Java Reflect编写 通用数组扩展类
package com.accp.array;
import java.lang.reflect.Array;
public class GrowArrayTest {
public static void main(String[] args) {
Integer[] array = {1,2,3,4}; //通用扩展
arrayPrint(arra ......