- 浏览: 200444 次
- 性别:
- 来自: 紫禁城
文章分类
最新评论
-
a1439226817:
<!doctype html><html l ...
发布一个支持N级下拉列表联动的控件 -
a1439226817:
也不高个测试的demo,别人怎么用啊
发布一个支持N级下拉列表联动的控件 -
davaidgao:
不全啊,这是
Spring3.x权威开发指南 -
caizi12:
对于map绑定很是不方便,现在的做法,需要创建一User类,再 ...
浅谈 SpringMVC 数据绑定 -
joeyhuang:
不全啊..
Spring3.x权威开发指南
一 . 两个小经验
1.在定义一个类时,不要随意定义成员变量.除非它是这个类的一个属性或者在类的多个方法中要用到 它.
2.
public class Test {
public static void main(String[] args) {
byte[] b = new byte[102400*1024];
}
}
这是一个简单的程序,在写上传文件的程序时极有可能遇到这个情况.比喻说有一个文件的长度是100M. 在读取文件内容时就会这样写byte[] b = new byte[102400*1024],但是在运行时会出一个内存越界错误.在实际应用中一定要非常小心.
二 . 递归:
先看一个小例子:
public class Recursion {
public static void func() {
func();
}
public static void main(String[] args) {
func();
}
}
上面就是一个简单的递归程序,运行一定会把内存吃光,所以在使用递归时一定要加上特定的条件
下面再看几个递归的例子.
(1) .
public class YueShuTest {
//求最大公约数
public static void yueshu(int num1,int num2) {
if(num1 == num2) {
System.out.println (num1);
}
else {
yueshu(Math.abs(num1 - num2),Math.min(num1,num2));
}
}
//求二进制
public static void binary(int num) {
if(num > 0) {
binary(num / 2);
System.out.print (num % 2);
}
}
}
下面在看一个最经典的汉诺塔问题(很复杂的一个问题).
public class Hanon {
static void hanon(int n,char a,char b,char c) {
if(n == 1) {
move(1,a,c);
return;
}
hanon(n - 1,a,c,b);
move(n,a,c);
hanon(n - 1,b,a,c);
}
static void move(int n,char a,char c) {
System.out.println (n + ":" + a + "-->" + c);
}
public static void main(String[] args) {
hanon(3,'A','B','C');
}
}
看看,一个多么复杂的问题这么几行代码就搞定了.递归的威力无穷啊!
再来看一个更复杂的.
import java.io.*;
class FileWrapper extends File {
private boolean bLast = false;
private FileWrapper parent = null;
public FileWrapper(File f,boolean bLast,FileWrapper parent) {
super(f.getPath());
this.parent = parent;
this.bLast = bLast;
}
public FileWrapper getMyParent() {
return parent;
}
public boolean isLast() {
return bLast;
}
}
public class FileTree{
//第一种方法.
/*public static String makeSpaces(int level) {
StringBuffer sbf = new StringBuffer();
for (int i = 0; i < level; i++)
{
sbf.append(" ");
}
return sbf.toString();
}
public static void listFile(File f,int level)
{
if(!f.exists())
{
System.out.println ("该文件不存在!");
return;
}
System.out.println (makeSpaces(level) + f.getName());
if(f.isDirectory())
{
File[] fs = f.listFiles();
for(File file : fs)
{
listFile(file,(level + 1));
}
}
}
public static void main(String[] args)
{
File file;
if(args.length < 1)
{
file = new File(".");
}
else
{
file = new File(args[0]);
}
listFile(file,0);
}
*/
这段代码打印出来的结果如下:
//第二种方法
public static void listFile(FileWrapper fw)
{
if(!fw.exists())
{
System.out.println ("该文件不存在!");
return;
}
System.out.println (makePrefix(fw) + fw.getName());
if(fw.isDirectory())
{
File[] fs = fw.listFiles();
for (int i = 0 ;i < fs.length;i++)//File fl : fs)
{
File f1 = fs[i];
FileWrapper fw1 = null;
if(i == fs.length - 1)
{
fw1 = new FileWrapper(f1,false,fw);
}
else
{
fw1 = new FileWrapper(f1,true,fw);
}
listFile(fw1);
}
}
}
public static void main(String[] args)
{
File file;
if(args.length < 1)
{
file = new File(".");
}
else
{
file = new File(args[0]);
}
FileWrapper fw = new FileWrapper(file,true,null);
listFile(fw);
}
public static void makeParentPrefix(FileWrapper fw,StringBuffer prefix)
{
if(fw.getMyParent().getMyParent() == null)
{
return;
}
FileWrapper parent = fw.getMyParent();
if(parent.isLast())
{
prefix.append(" │");
}
else
{
prefix.append(" ");
}
makeParentPrefix(parent,prefix);
}
public static String makePrefix(FileWrapper fw)
{
if(fw.getMyParent() == null)
{
return "";
}
StringBuffer sbf = new StringBuffer();
if(fw.isLast())
{
sbf.append("─├");
}
else
{
sbf.append("─└");
}
makeParentPrefix(fw,sbf);
sbf.reverse();
return sbf.toString();
}
}
这段代码打印出来的结果如下:
三 . 要在执行ant的命令行窗口中给build.xml中的java任务执行的类传递参数,怎么做?这个问题还在探讨中...请高手指教.
发表评论
-
Ubuntu下JDK+Tomcat+MySql环境的搭建
2011-06-15 14:48 1124Ubuntu 下 JDK+Tomcat+MySql ... -
Eclipse下切换 SVN 中已经保存的用户名和密码
2009-09-22 10:28 17041. 把 C:\Documents and Set ... -
Java实现汉字转换为拼音
2006-10-31 13:15 595import java.util.HashMap;import ... -
Java中的克隆(Clone)机制
2007-08-03 09:03 614现在Clone已经不是一个新鲜词语了,伴随着“多莉”的产生这个 ... -
JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用简介
2008-12-16 10:32 711在多线程大师Doug Lea的贡献下,在JDK1.5中加入 ... -
Java读取Properties文件的六种方法
2009-04-16 09:34 705使用J2SE API读取Properties文件的六种方法 ... -
深入探讨java集合类
2006-08-24 20:47 694不同的集合在添加对象时的处理是不同的:Set:不允许重复,且没 ... -
java类装载器
2006-08-25 18:36 839一 . 面向接口编程. 不要面向类编程. 二 . 关于异常:如 ... -
几个Java基础知识
2006-08-25 19:18 654一 . Hashtable和HashMap Hashtab ... -
面向方面的编程(AOP)
2006-08-25 19:33 710面向对象的编程(OOP)中 ... -
Collection与UML学习
2006-09-01 19:19 675一 . 属性<property>时须注意:1. & ... -
反射和代理
2006-09-01 19:23 691一. 关于数据库.当今的数据处理大致可以分成两大类:联机事务处 ... -
Jdk1.5的新语法和一些java学习的小知识点
2006-09-01 19:30 1199一.1. 操作系统执行具体 ... -
使用DatabaseMetaData和ResultSetMetaData查看数据库信息
2006-10-07 22:26 927/**DatabaseMetaData接口查看数据库的整体综合 ... -
自己动手写数据库连接池
2006-10-07 22:28 1018在前面的文章中已经说过使用连接池的很多好处和优势,也曾讨论过怎 ... -
BASE64编码
2006-10-24 08:39 12971.HttpServletRequest: 请求 ... -
一个实现MD5的简洁的java类
2006-10-28 22:27 631一个实现MD5的简洁的java类 package test; ... -
使用Java将Word转为Html或txt!
2006-10-31 13:47 1201package org.client; // 使用Java将W ... -
理解接口
2006-11-01 14:12 522... -
正则表达式中问号等特殊字符的转义
2006-11-10 00:26 2462正则表达式中问号等特殊字符的转义 除 .$ ^ { [ ( | ...
相关推荐
递归与迭代算法及其在JAVA语言中的应用.pdf
递归在java语言中的应用.pdf
递归与迭代算法及其在JAVA语言中的应用
《Java语言程序设计:基础篇(原书第8版)》以示例讲解解决问题的技巧,提供大量的程序清单和相应的提示,每章配有大量复习题和编程练习题,帮助读者掌握编程技术,并应用所学的技术解决实际应用程序开发中遇到的问题。...
《Java语言程序设计:基础篇(原书第8版)》以示例讲解解决问题的技巧,提供大量的程序清单和相应的提示,每章配有大量复习题和编程练习题,帮助读者掌握编程技术,并应用所学的技术解决实际应用程序开发中遇到的问题。...
《Java语言程序设计:基础篇(原书第8版)》以示例讲解解决问题的技巧,提供大量的程序清单和相应的提示,每章配有大量复习题和编程练习题,帮助读者掌握编程技术,并应用所学的技术解决实际应用程序开发中遇到的问题。...
本书分为四个部分:第一部分讨论适合大多数应用的集合类API的一个子集,并覆盖基本的算法分析技术、递归和排序算法;第二部分包含了一组集合类API的应用实例;第三部分讨论数据结构的实现;第四部分描述了高级的数据...
但Java语言很复杂,老师和学生们在理解Java语言的结构时,复杂性成为了最大的障碍。 在本书中,斯坦福大学教授、著名的计算机科学教育领导者Eric S.Roberts着重强调了更适合于初学者的友好讲解方式,使用ACM Java...
《Java语言程序设计:基础篇(原书第8版)》以示例讲解解决问题的技巧,提供大量的程序清单和相应的提示,每章配有大量复习题和编程练习题,帮助读者掌握编程技术,并应用所学的技术解决实际应用程序开发中遇到的问题。...
在Java中使用HQL 709 内容总结 712 独立实践 712 第三十七章 Spring介绍 713 学习目标 713 Spring简介 714 IOC控制反转 714 Spring的容器 715 AOP面向切面编程 715 AOP的专业术语 715 Spring事务管理 718 Spring与...
北京动力节点-Java编程零基础教程-004-编程基础-在Window中显示文件扩展名.mp4 北京动力节点-Java编程零基础教程-005-Java语言概述-Java的诞生.mp4 北京动力节点-Java编程零基础教程-006-Java语言概述-Java的特点...
但Java语言很复杂,老师和学生们在理解Java语言的结构时,复杂性成为了最大的障碍。 在本书中,斯坦福大学教授、著名的计算机科学教育领导者Eric S.Roberts着重强调了更适合于初学者的友好讲解方式,使用ACM Java库...
本书选择Java语言以面向对象的方式描述数据结构,还特别强调了封装和分解的信息隐藏原理。主要内容包括:面向对象编程的基本原理,判定算法效率的方法,堆栈、队列及其应用,对于多种递归的详细讨论,二叉树、B树、2...
中文名: 数据结构与算法分析_Java语言描述(第2版)作者: 韦斯译者: 冯舜玺资源格式: PDF版本: 扫描版出版社: 机械工业出版社书号: ISBN:9787111231837发行时间: 2009年01月01日地区: 大陆语言: 简体中文简介: 内容...
Java是一种功能强大、可靠性高、跨平台的编程语言,适用于各种应用场景。它被广泛用于企业级应用开发、移动应用开发、云计算、大数据处理等领域,是一门值得学习和掌握的编程语言。
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...
目录译者序前言第1章 引论1.1 本书讨论的内容1.2 数学知识复习1.2.1 指数1.2.2 对数1.2.3 级数1.2.4 模运算1.2.5 证明的方法1.3 递归简论1.4 实现泛型特性构件pre-Java51.4.1 使用Object表示泛型1.4.2 基本...