1.Java开发介绍

J2SE:Java 2 Platform Standard Edition(2005年之后更名为JAVA SE)。

包含构成Java语言核心的类。比如:数据库连接、接口定义、数据结构、输入/输出、网络编程。

J2EE:Java 2 Platform Enterprise Edition(2005年之后更名为JAVA EE)。

Enterprise Edition(企业版)包含J2SE 中的所有类,并且还包含用于开发企业级应用的类。比如:EJB、Servlet、JSP、XML、事务控制,也是现在JAVA应用的主要方向,像一些银行或电信的系统大多基于此架构。

J2ME:Java 2 Platform Micro Edition(2005年之后更名为JAVA ME)。

用于消费类电子产品的软件开发,做手机APP的

2.JAVA编译过程

如下图所示,要想运行java,需要两步:

其中hello.java就是源码,负责我们看的,然后编译成hello.class, 当运行class代码时,首先运行JVM(Java虚拟机),然后再把Java class加载到JVM里头运行,负责加载Java class的这部分就叫做Class Loader.

class文件是不依赖于任何平台的, 这样做的好处在于跨平台,使得任何机器上的JVM都能去解释并运行这个class文件.如下图所示:

3.JDK安装

进入官网下载,下载后安装,安装后找到bin/javac 和java所在的位置,如下图所示:

然后将这个路径添加到电脑——>属性——>高级——>环境变量——>系统变量->PATH中,这样我们就可以直接使用这两个命令进行编译java文件了.

  • PATH:用来提供给操作系统可以直接执行exe程序的路径(和Linux的Path路径一样)

javac

用来将*.java文件生成*.class文件,它的使用如下所示:

java

将类加载到JVM里进行运行,比如Hello.class,则输入java Hello即可

4. 编译Hello World

创建一个public的Hello类,这个类的文件则必须为Hello.java

PS: Java保存的文件名必须与public类名一致

Hello.java 内容如下:

public class Hello{       //该文件名的类

                  public static void main(String args[]){        //类里的main
System.out.println("Hello World!");
}
}

然后通过cmd进入该代码目录:

输入javac Hello.java,如下图所示,已经生成Hello.class

然后输入 java Hello ,来运行Hello类:

PS:如果觉得进入目录麻烦的话,可以设置CLASSPATH路径,来指定类所在目录

5.分析刚刚运行的Hello代码

5.1 代码如下所示:

public class Hello{                         //该文件名的类

                  public static void main(String args[]){      //类里的main
System.out.println("Hello World!");
}
}

5.2 为什么类里有个mian主方法(主函数)?

因为我们是通过java Hello命令来运行这个类的,而进入类时,必须要提供一个main主方法给JVM,才能让程序运行,不过在项目中,主类是必须有main的,而有些功能类不一定必须要有main,不过有main的好处在于方便测试.

5.3 为什么main方法是public static void的?

public static用来修饰main为该类的公共静态成员方法(函数).

  • public: 好处在于让JVM在类外也能够调用.
  • static:  好处在于无需创建类对象,直接就可以通过类名进行访问.
  • void:    因为JVM运行结束后,这个类则已经不需要了,所以不需要返回值

5.4 为什么main方法的参数要有String args[]?

主要用来运行类时,我们想传递参数时才会用到的.比如修改代码如下所示:

public class Hello{
public static void main(String args[]){ System.out.println("Hello World!"); for(int i=0;i<args.length;i++)
System.out.println(args[i]); }
}

然后编译后,输入各种参数,并打印出来:

5.5 *.java文件中,除了Hello类还可以有其它类吗?

可以有的,但是在文件里, public只能有1个,或者不存在,并且 public修饰的类名必须和文件名一致.

如果在*.java中定义了多个class,则编译后也会形成多个对应的*.class文件.

比如代码如下所示:

public class Hello{
public static void main(String args[]){
System.out.println("Hello World!"); Hello2.print(); //调用Hello2类的print静态方法 for(int i=0;i<args.length;i++)
System.out.println(args[i]);
}
}
class Hello2{
static void print()
{
System.out.println("Hello2 print!");
} public static void main(String args[]){
System.out.println("Hello2 World!");
}
}

编译后,生成了两个class文件:

运行两个class试试:

6.不同的打印输出总结

示例代码:

int i=10;
double t=2.33; System.out.printf("println: i=%d\r\n",i);//继承C的printf风格,所以需要格式判定 System.out.print("println: t="+t);//输入一句话,通过函数重载,所以不需要格式判定 System.out.println("");
System.out.println("println: i="+i);//输出一行,并且自动回车

打印:

下章学习:

2.JAVA-基础语法以及String的介绍

1.JAVA-Hello World的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  3. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  4. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

  5. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  6. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

  7. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  8. Java多线程基础学习(二)

    9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...

  9. Java多线程基础学习(一)

    1. 创建线程    1.1 通过构造函数:public Thread(Runnable target, String name){}  或:public Thread(Runnable target ...

  10. c#与java的区别

    经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...

随机推荐

  1. shell 中test命令

    test可用于测试表达式,支持测试的范围包括:字符串比较,算术比较,文件存在性.属性.类型等判断.例如,判断文件是否为空.文件是否存在.是否是目录.变量是否大于5.字符串是否等于"longs ...

  2. mfc动态演示排序算法

    实现的排序算法 冒泡排序.选择排序.快速排序 具体实现 选用mfc中的单文档框架 ①SetTimer函数的用法. ②使用画笔画直线. ③使用FillSolidRect()函数覆盖某一矩形区域内的内容: ...

  3. Tar专题

    下面的脚本根据当前的系统时间生成压缩文件名,并备份文件到指定目录: DIR=/www/webbackup/web/ FILE_NAME=`date +%y%m%d%H` FILE_NAME=$DIR/ ...

  4. Heroku创始人Adam Wiggins发布十二要素应用宣言

    Heroku是业内知名的云应用平台,从对外提供服务以来,他们已经有上百万应用的托管和运营经验.前不久,创始人Adam Wiggins根据这些经验,发布了一个“十二要素应用宣言(The Twelve-F ...

  5. app后端设计(7)-- 项目管理

    移动互联网行业是个快速发展的行业,需求不断变化,产品更新快.基于移动互联网的以上特点,在开发产品的过程中,我们放弃了传统的瀑布流开发模型,引入了精益的理念和scrum这个敏捷开发框架,下面谈谈实施过程 ...

  6. selenium之 坑(StaleElementReferenceException: Message: Element not found in the cache...)

    今天给大家分享一个selenium中经常会有人遇到的坑: selenium.common.exceptions.StaleElementReferenceException: Message: Ele ...

  7. volume.go

    package)) ) ,) ) );) ,     } }

  8. ConcurrentLinkedQueue简介

    ConcurrentLinkedQueue是一个基于链表的无界线程安全队列,非阻塞实现方式,先进先出,适合高并发的场景. 非阻塞的性能较好,采用CAS,避免加锁的时间,保证数据一致性. 采用" ...

  9. 【最小生成树】Bzoj1232 [Usaco2008Nov]安慰奶牛cheer

    Description Farmer John变得非常懒, 他不想再继续维护供奶牛之间供通行的道路. 道路被用来连接N (5 <= N <= 10,000)个牧场, 牧场被连续地编号为1. ...

  10. BZOJ_1975_[Sdoi2010]魔法猪学院_A*

    BZOJ_1975_[Sdoi2010]魔法猪学院_A* Description iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPi ...