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. 洛谷 P1879 解题报告

    P1879 [USACO06NOV]玉米田Corn Fields 题目描述 农场主\(John\)新买了一块长方形的新牧场,这块牧场被划分成\(M\)行\(N\)列\((1 ≤ M ≤ 12; 1 ≤ ...

  2. android 开发常见问题

    指定版本 就OK了 路径: android/app/build.gradle compile ("com.facebook.react:react-native:填你自己的RN版本" ...

  3. R画网络图

    R  画网络图 目的:用R做生信分析,画基因样本的网络图,从中观察样本的致病性情况. 一.所用到的包 library(tidyr) library(ggplot2) library(reshape2) ...

  4. MySQL 数据库 Query 的优化

    理解MySQL的Query Optimizer MySQL Optimizer是一个专门负责优化SELECT 语句的优化器模块,它主要的功能就是通过计算分析系统中收集的各种统计信息,为客户端请求的Qu ...

  5. 【转】怎么解决java.lang.NoClassDefFoundError错误 ,以及类的加载机制

    转自http://blog.csdn.net/jamesjxin/article/details/46606307 前言 在日常Java开发中,我们经常碰到java.lang.NoClassDefFo ...

  6. WPF 毛笔字

    1.先来看看InkCanvas的一般用法: <InkCanvas>     <InkCanvas.DefaultDrawingAttributes>           < ...

  7. Shell 起停脚本 专题

    To list any process listening to the port 8080: lsof -i:8080To kill any process listening to the por ...

  8. CSS选择器详细总结

    一.基本选择器 序号 选择器 含义 1. * 通用元素选择器,匹配任何元素 2. E 标签选择器,匹配所有使用E标签的元素 3. .info class选择器,匹配所有class属性中包含info的元 ...

  9. 5.两分钟让你明白app后端有啥用

    app后端,也称为app后台,称呼不一样,但指的是同一个东西. 我一直都以app后端有啥用这个问题不用解释.但在网络上,有准备进行app创业的网友(是从传统行业过来的)问过这个问题,我这里就以app后 ...

  10. watch.go

    package: } ,) ), ), ) ) , ];]]] :] ].Err()]:] ].Kv.ModRevision         w.resuming = append(w.resumin ...