ACM中使用JAVA的介绍
Chapter I.
Java的优缺点各种书上都有,这里只说说用Java做ACM-ICPC的特点:
(1) 最明显的好处是,学会Java,可以参加Java Challenge
(2) 对于熟悉C/C++的程序员来说,Java 并不难学,找本书,一两周业余时间就可以搞定了。当然,这里只是指一般编程,想熟悉所有的Java库还是需要些时间的。事实上,Java 只相当于C++的一个改进版,所有的语法都几乎是C++的,很少有变动。
(3) 在一般比赛中,Java程序会有额外的时间和空间,而实际上经过实验,在执行计算密集任务的时候Java并不比C/C++慢多少,只是IO操作较慢而已。
(4) Java 简单而功能强大,有些东西用Java实现起来更为方便,比如高精度。
(5) 用Java不易犯细微的错误,比如C/C++中的指针, “if (n = m) ... ” 等
(6) 目前来看Eclipse已成基本配置,写Java程序反而比C/C++更方便调试。在具体竞赛时也算多一种选择。
(7) 学会Java对以后工作有好处。现在国外很多地方会Java的人比会C/C++的人多。
( 会Java可以使你看起来更像偶蹄类动物(牛) hoho~
Chapter II.
下面说一下ACM-ICPC队员初用Java编程所遇到的一些问题:
1. 基本输入输出:
(1) JDK 1.5.0 新增的Scanner类为输入提供了良好的基础,简直就是为ACM-ICPC而设的。
一般用法为:
import java.io.*
import java.util.*
public class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner(new BufferedInputStream(System.in));
...
}
}
当然也可以直接 Scanner cin = new Scanner(System.in);
只是加Buffer可能会快一些
(2)
读一个整数: int n = cin.nextInt(); 相当于 scanf("%d", &n); 或 cin >> n;
读一个字符串:String s = cin.next(); 相当于 scanf("%s", s); 或 cin >> s;
读一个浮点数:double t = cin.nextDouble(); 相当于 scanf("%lf", &t); 或 cin >> t;
读一整行: Strin
相关文档:
Java程序员的推荐阅读书籍》
JavaEye (http://www.javaeye.com)
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。
一、Java编程入门类 ......
上次分析了Java对primitive的排序,使用的是优化的快速排序算法。这次介绍Java对Object对象(Comparable)的排序。
Java使用了归并对Object排序,关于归并排序的细节,请查看http://zh.wikipedia.org/zh/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F
归并排序也有一个运行状态图,不过看着确实挺费解的 =。=!
在了解了归 ......
1、 类型装载、链接与初始化
Java虚拟机通过装载、链接和初始化一个Java类型,使该类型可以被正在运行的Java程序所使用。其中,装载就是把二进制的Java类型读入Java虚拟机中,而连接就是把这种已经读入虚拟机的二进制形式的类型数据合并到虚拟机的运行状态中去。连接阶段分了三个步骤:验 ......
来北京已经是近20天了,起初刚到对我的打击确实不小,很想回家 的感觉,但是来到了传智,来到了这里,心里感觉好多了,人生地不熟,人的心里一般都是很孤独的,想在心里找个依靠,找个朋友能一起出去玩,聊天,学习。来到了北京,是一个全新的生活方式,什么都要靠自己了,出门真的很难,尤 ......
/*作用:用户输入自己的名字,显示一句问候语。
时间:2010年4月20日。
作者:enfang.
*/
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class KeyboardReader //作用:从键盘读入数据
{
private BufferedReader reader;
& ......