1.JAVA-Hello World
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的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
- Elasticsearch之java的基本操作一
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
- 论:开发者信仰之“天下IT是一家“(Java .NET篇)
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
- 死磕内存篇 --- JAVA进程和linux内存间的大小关系
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- Java多线程基础学习(二)
9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...
- Java多线程基础学习(一)
1. 创建线程 1.1 通过构造函数:public Thread(Runnable target, String name){} 或:public Thread(Runnable target ...
- c#与java的区别
经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...
随机推荐
- Bagging与方差
在集成学习中,通常认为Bagging的主要作用是降低方差,而Boosting的主要作用是降低偏差.Boosting能降低偏差很好理解,因为其原理就是将多个弱学习器组合成强学习器.但Bagging为什么 ...
- Ames房价预测特征工程
最近学人工智能,讲到了Kaggle上的一个竞赛任务,Ames房价预测.本文将描述一下数据预处理和特征工程所进行的操作,具体代码Click Me. 原始数据集共有特征81个,数值型特征38个,非数值型特 ...
- jQuery学习之旅 Item10 ajax快餐
1. 摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案, 即使你会使用jQuery也能在阅读中发现些许秘籍. 本篇文章讲解如何使用jQuery方便快捷的实现A ...
- 给xmpphp添加了几个常用的方法
给xmpphp添加给了以下的常用方法: registerNewUser //注册一个新用户 addRosterContact //发送添加好友的请求 acce ...
- random.nextInt()与Math.random()基础用法
相关文章:关于Random(47)与randon.nextInt(100)的区别 1.来源 random.nextInt() 为 java.util.Random类中的方法: Random类中还提供各 ...
- AJAX初步学习
AJAX(Asynchronous JavaScript and XML)即异步的JavaScript与XML技术,指的是一套综合了多项技术的浏览器端网页开发技术.其实就是为了解决传统页面同步刷新,消 ...
- MyBatis的增删改查。
数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改,并且对程序接口做了一些调整,以及对一些问题进行了解答. 1.调整后的结构图: 2.连接数据库文件配置分离: 一般的程序都会把连 ...
- nginx+php安装
1.环境概述 虚拟机系统:CentOS Linux release 7.3.1611 (Core) 宿主机系统:Mac Sierra version 10.12.3 nginx:1.10.3 php: ...
- 列举Java中常用的包、类和接口
常用的类: BufferedReader ,BufferedWriter FileReader ,FileWirter String ,Integer Date ,Cla ...
- ISCC 2018 Writeup
题解部分:Misc(除misc500).Web(除Only Admin.Only admin can see flag.有种你来绕.试试看).Reverse.Pwn.Mobile Misc( Auth ...