菜鸟问题:关于Java的第一个程序HelloWorld

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了菜鸟问题:关于Java的第一个程序HelloWorld相关的知识,希望对你有一定的参考价值。

public class hello
public static void main(String[] args)
System.out.println("Hello World!");



我写了HelloWorld程序,放在D盘中,通过了javac编译,
但是在运行的时候会出现
Exception in thread "main" java.lang.NoClassDefFoundError:hello
caused by ……省略
找不到hello类?难道一定要HelloWorld?

你的文件名是什么?
文件名必须是hello.java
然后 javac hello.java 生成hello.class文件
编译后 java hello

如果上述操作都正确还是上面的错误,那么检查一下环境变量中的path前是否加点了? 即 .;XXXX
参考技术A 你的类名...没有大写
或者是你的文件名和类名不一至..

推荐你把类名习惯写成大写...文件名与类名相同
如:
public class Hello
public static void main(String[] args)
System.out.println("Hello World!");



文件名Hello.java
参考技术B 系统环境变量 JAVA_HOME CLASSPATH
还要把JDK的bin加到Path。
参考技术C 环境变量classpath设置对了没?classpath:. 参考技术D 你的类名字要和java文件名字一致

才可以编译

JAVA的第一个程序

  还是挺简单的,功能过于强大。

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class doubleRedBall {
    private static Scanner inputScanner;
    /**
     * 顺着思路写 就行
     * 
     * */

    public static void main(String[] args) {
        // 定义相关变量
        int[] userRedBall = new int[6]; //用户生成的红球号码
        int[] sysRedBall = new int[6];// 系统生成的红球号码
        int userBlueBall = 0;    //用户选择的蓝球
        int sysBlueBall = 0;    //系统生成的蓝球
        int redCount = 0,blueCount = 0;//用户选择正确的红球数和蓝球数。
        int[] redBall = new int[33];
        inputScanner = new Scanner(System.in);
        Random random = new Random();
        //需要随机生成6个在1-33之间不重复的数(算法)
        for(int i=0;i<redBall.length;i++) {
            redBall[i] = i+1;
        }
        //游戏开始,系统提示。
        System.out.println("定个小目标,先中它一个亿!");
        System.out.println("打算自选号码,还是首选号码? \\n请输入\\"机选\\"或\\"手选\\"。");
        Boolean answerRight = false;
        while (!answerRight) {
            String choose = inputScanner.next();
            answerRight = true; // 下次默认跳出while
            switch (choose) {
            case "机选":
                computerSelection(redBall, userRedBall);
                userBlueBall = random.nextInt(16) + 1;
                break;
            case "手选":
                System.out.println("请选择6个红球号码(1-33):");
                for(int i=0;i<userRedBall.length;i++) {
                    System.out.println("输入第"+(i+1)+"个号码:");
                    userRedBall[i] = inputScanner.nextInt();
                    if(userRedBall[i]<1|userRedBall[i]>33) {
                        System.out.println("输入有误,请重新输入");
                        i--;
                    }
                }
                System.out.println("请选择1个蓝球号码(1-16):");
                userBlueBall = inputScanner.nextInt();
                
                break;
            default:
                System.out.println("输入有误!请输入\\"机选\\"或\\"手选\\"。");
                answerRight = false; // 输入不合法,继续while。
                break;
            }
        }// 至此 用户 球号确定
        //系统随机生成号码。
        computerSelection(redBall, sysRedBall);//虽然 redBall 的顺序变了 但是不影响乱序生成
        sysBlueBall = random.nextInt(16)+1;
        //至此  系统球号确定。
        for(int i=0;i<userRedBall.length;i++) {
            for(int j=0;j<sysRedBall.length;j++) {
                if(userRedBall[i]==sysRedBall[j]) {
                    redCount++;
                }
            }
        }
        if(userBlueBall==sysBlueBall) {
            blueCount++;
        }
        System.out.println("红球一致个数:"+redCount);
        System.out.println("蓝球一致个数:"+blueCount);
        //公布中奖号码
        System.out.println("本期中奖红球号码:");
        Arrays.sort(sysRedBall);
        System.out.println(Arrays.toString(sysRedBall));
        System.out.println("本期中奖蓝球号码:"+sysBlueBall);
        //公布用户号码
        System.out.println("您选择的红球号码:");
        Arrays.sort(userRedBall);
        System.out.println(Arrays.toString(userRedBall));
        System.out.println("您选择的蓝球号码:"+userBlueBall);
        
    }
    //用于在指定数列中 随机生成多个不重复的数的算法。
    /**
     * @param balls 给定的需要在其中选出6个元素的数组
     * @param redBall 存储选出的6个元素的数组
     * 传进来的 ball userRedBall 都会改变。
     */
    public static void computerSelection(int[] balls,int[] userRedBall) {
        
        Random random = new Random();
        int index = -1;
        for(int i=0;i<userRedBall.length;i++) {
             index = random.nextInt(balls.length-1-i);
             userRedBall[i] = balls[index];
             
             balls[index] = balls[index]^balls[balls.length-1-i];
             balls[balls.length-1-i] = balls[index]^balls[balls.length-1-i];
             balls[index] = balls[index]^balls[balls.length-1-i];
        }
        // 此时得到的 userRedBall 就是选出的六个不重复的红球。
    }
    /**
     * @param first
     * @param second
     * @return
     * 尽量优化速度,之后的结果 nlogn 的速度。
     */
    public static int compSame(int[] first,int[] second) { 
        int lenFirst = first.length,lenSecond = second.length;
        int sameNum=0;
        for(int i=0;i<lenFirst;i++) {
            if(Arrays.binarySearch(second, first[i])>=0&Arrays.binarySearch(second, first[i])<lenSecond) {
                sameNum++;
            }
        }
        return sameNum;
        
    }
}
/**
 * 形参和实参的变化。
 * 如果基本类型和String  是存储在栈内存当中的,当被调函数被调用时形参申请空间,开始执行操作,在操作完毕的时候释放 形参申请的空间。这样的话  实参根本没有改变。
 * 如果操作对象是对象的话,形参接受栈内存 内的地址,然后去堆内存中进行操作,此时操作的是 堆内存中的数据,虽然地址没变 ,但是地址指向的空间内的 数据已经改变。 
 * 
 * 
 * */

 

 

 

byte short  int 在计算的时候  会自动转换为  int 类型。

以上是关于菜鸟问题:关于Java的第一个程序HelloWorld的主要内容,如果未能解决你的问题,请参考以下文章

我做的第一个程序(菜鸟的java课堂笔记)

你好,世界——新手的第一个程序

编程菜鸟学java的第一天

关于java的关键字“public",需要大家帮忙解释下(菜鸟问题)

菜鸟求解答java关于append( '\n') 的问题

关于敏捷开发,一个菜鸟程序猿有话说