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. 5月2日——iOS11定位失效问题

    所存在的问题: (1)定位不能正常使用 (2)首次安装APP 时 "是否允许使用定位信息"  系统提示框不显示 iOS定位失效原因: 因为苹果现在增加了一项新的隐私保护功能 NSL ...

  2. js算法初窥01(排序算法01-冒泡、选择、插入)

    排序,我想大家一定经历过或者正在经历着.或许你不懂算法,对排序算法一无所知,但是你一定用过一些第三方库的api来一键排序,那么,在你享受便捷的同时,你是否想过它的底层是如何实现的?这样的算法实现方式是 ...

  3. js基础进阶--编的实用技巧(一)

    我的个人博客:http://www.xiaolongwu.cn 在平时的开发中,编码技巧很重要,会让你少写很多代码,起到事倍功半的效果. 下面总结几种简单的技巧,大家共同学习一下 1. 利用+.-./ ...

  4. OVMF基础

    什么是OVMF The Open Virtual Machine Firmware (OVMF) project aims to support firmware for Virtual Machin ...

  5. Spring Cloud Sleuth服务链路追踪(zipkin)(转)

    这篇文章主要讲述服务追踪组件zipkin,Spring Cloud Sleuth集成了zipkin组件. 一.简介 Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案, ...

  6. RestTemplate的设置及使用

    概述 RestTemplate是spring内置的http请求封装,在使用spring的情况下,http请求直接使用RestTemplate是不错的选择. Rest服务端 使用RestTemplate ...

  7. 关于Linux虚拟化技术KVM的科普 科普一(先用起来!)

    是骡子是马是拉出来溜溜,通过<KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机>跑一遍,就会对KVM.QEMU-KVM有个大概的认识了. qemu-kvm已经不单独存在,qemu加上 ...

  8. 【手记】ASP.NET提示“未能创建类型”处理

    我是在本机启动IIS Express调试一个ashx(一般处理程序)时遇到这个报错,网上的说法普遍有这么几种: 把bbb.ashx中的Class="aaa.bbb" 改为Class ...

  9. 如何在js或者jquery中操作EL表达式的一个List集合

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 先说明此篇博客看明白了可以干嘛: 就是在js或者jquery中操作一个EL表达式的一个list集合或者复杂类型 ...

  10. Rest接口和Thymeleaf的两个坑

    spring boot thymeleaf 热部署 在使用spring boot 开发的时候,使用了Thymeleaf 作为前端的模板开发,发现在调试过程中,改动了Thymeleaf模板后,需要重新启 ...