java第一个程序
搭建好开发环境之后,我们来开发第一个java程序HelloWorld。
步骤一:编写
- 选择最简单的编辑器:记事本。 敲入代码 class Test{ } 将文件保存成Test.java,这个 文件是存放java代码的文件, 称为源文件。
class Test {
}
注意:
- 一定要打开文件类型的扩展名,保证以.java结尾。
步骤二:编译
- 有了java源文件,通过编译器将其编译成JVM可以识别的字节码文件。
- 在该源文件目录下,通过javac编译工具对Test.java文件进行编译。
- 如果程序没有错误,没有任何提示,但在当前目录下会出现一个Test.class文 件,该文件称为字节码文件,也是可以执行的java的程序。
步骤三:运行
- 有了可执行的java程序(Test.class字节码文件)
- 通过运行工具java.exe对字节码文件进行执行。
- 出现提示:缺少一个名称为main的方法。
- 因为一个程序的执行需要一个起始点或者入口,所以在Test类中的加入public static void main(String[] args){ }
- 对修改后的Test.java源文件需要重新编译,生成新的class文件后,再进行执行。
- 发现没有编译失败,但也没有任何效果,因为并没有告诉JVM要帮我们做什么事情,也就是没有可以具体执行的语句。
- 想要和JVM来个互动,只要在main方法中加入一句System.out.println(“Hello World");因为程 序进行改动,所以再重新编译,运行即可。
入门程序说明
编译和运行是两回事
- 编译:是指将我们编写的Java源文件翻译成JVM认识的class文件,在这个过程中, javac 编译器会检查我们所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。
- 运行:是指将 class文件 交给JVM去运行,此时JVM就会去执行我们编写的程序了。
关于main方法
- main方法:称为主方法。写法是固定格式不可以更改。main方法是程序的入口点或起始点,无论我们编写多少程序,JVM在运行的时候,都会从main方法这里开始执行。
小结第一个程序
- Java源文件以“java”为扩展名。源文件的基本组成部分是类(class),如本例中的Test类。
- Java应用程序的执行入口是main()方法。它有固定的书写格式: public static void main(String[] args) {...}
- Java语言严格区分大小写。
- Java方法由一条条语句构成,每个语句以“;”结束。
- 大括号都是成对出现的,缺一不可。
- 一个源文件中最多只能有一个public类。其它类的个数不限,如果源文件包含 一个public类,则文件名必须按该类名命名。
- 编写:我们将编写的java代码保存在以".java"结尾的源文件中
- 编译:使用javac.exe命令编译我们的java源文件。格式:javac 源文件名.java
- 运行:使用java.exe命令解释运行我们的字节码文件。 格式:java 类名
注 释(comment)
- 注释:就是对代码的解释和说明。其目的是让人们能够更加轻松地了解代码。为代码添加注释,是十分必须要的,它不影响程序的编译和运行。
Java中的注释类型:
- 单行注释
- 多行注释
- 文档注释 (java特有)
注释的作用:
- 提高了代码的阅读性;调试程序的重要方法。
- 注释是一个程序员必须要具有的良好编程习惯。
- 将自己的思想通过注释先整理出来,再用代码去体现
单行注释
格式: //注释文字
//单行注释:如下小括号里的语句表示输出到控制台的内容
System.out.println("Hello World!");
多行注释
格式: /* 注释文字 */
/*
多行注释:
如下的main方法是程序的入口!main的格式是固定的!
*/
public static void main(String[] args){
System.out.println("Hello World!");
}
注意:
- 对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。
- 多行注释里面不允许有多行注释嵌套。
文档注释(Java特有)
格式:/**
注释内容
*/
/**
* 文档注释
*
* @author shkstart
* @version v1.0
* 这是我的第一个java程序!非常的开森!
*/
public class Test {
/*
多行注释:
如下的main方法是程序的入口!main的格式是固定的!
*/
public static void main(String[] args) {
//输出语句
System.out.println("Hello World!");
}
}
文档注释:内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形 式体现的该程序的说明文档。
操作方式
关键字
我们可以可以通过官方地址: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html查看java有哪些关键字。
- 定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
- 特点:关键字中所有字母都为小写
保留字(reserved word)
- Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使 用。自己命名标识符时要避免使用这些保留字 goto 、const。
标识符(Identifier)
- 定义:Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符 技巧:凡是自己可以起名字的地方都叫标识符。
定义合法标识符规则:
- 由26个英文字母大小写,0-9 ,_或 $ 组成
- 数字不可以开头。
- 不可以使用关键字和保留字,但能包含关键字和保留字。
- Java中严格区分大小写,长度无限制。
- 标识符不能包含空格。
Java中的名称命名规范
- 包名:多单词组成时所有字母都小写:xxxyyyzzz
- 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个 单词首字母大写:xxxYyyZzz
- 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
- 注意1:在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。
- 注意2:java采用unicode字符集,因此标识符也可以使用汉字声明,但是强烈不建议使用。
总结:
- 标识符的命名规则:--> 如果不遵守如下的规则,编译不通过!需要大家严格遵守
- Java中的名称命名规范: --->如果不遵守如下的规范,编译可以通过!建议大家遵守
变量
- 内存中的一个存储区域
- 该区域的数据可以在同一类型范围内不断变化
- 变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值
作用
- 用于在内存中保存数据
定义变量方式一
声明变量和赋值分开进行
- 声明的变量 语法:数据类型 变量名称;
- 变量的赋值 语法:变量名称 = 值 ;
举例:
//变量的声明
int age;
//变量的赋值
age = 15;
定义变量方式二
声明和赋值变量 同时进行
- 声明和赋值变量 语法: 数据类型 变量名 = 初始化值;
举例:
//声明变量并且赋值
String name = "在家爱漫画";
使用变量注意:
- Java中每个变量必须先声明,后使用
- 使用变量名来访问这块区域的数据
- 变量的作用域:其定义所在的一对{ }内
- 变量只有在其作用域内才有效
- 同一个作用域内,不能定义重名的变量
- 变量右侧的数据值不能超过左侧类型的范围
- 可以通过一个语句来创建多个变量,但是一般情况不推荐这么写。
举例:
public class VariableNotice {
public static void main(String[] args) {
// System.out.println(age); 错误 Java中每个变量必须先声明,后使用
int age = 18;
// 使用变量名来访问这块区域的数据
System.out.println(age);//18
{
int i = 18;
// int i = 15; 错误。同一个作用域内,不能定义重名的变量
System.out.println(i);//18
}
// System.out.println(i); 错误,变量的作用域:其定义所在的一对{ }内,
int i = 20;//变量只有在其作用域内才有效
System.out.println(i);//20
// 同时创建了三个全都是int类型的变量,不推荐这么写。
int a, b, c;
// 各自分别赋值
a = 10;
b = 20;
c = 30;
System.out.println(a); // 10
System.out.println(b); // 20
System.out.println(c); // 30
// 同时创建三个int变量,并且同时各自赋值,不推荐这么写。
int x = 100, y = 200, z = 300;
System.out.println(x); // 100
System.out.println(y); // 200
System.out.println(z); // 300
}
}
数据类型
Java的数据类型分为两大类:
- 基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔 。
- 引用数据类型:包括 类 、 数组 、 接口等等 。
基本数据类型
四类八种基本数据类型如下图所示:
注意事项:
- 字符串不是基本类型,而是引用类型。
- 浮点型可能只是一个近似值,并非精确的值。
- 数据范围与字节数不一定相关,例如float数据范围比long更加广泛,但是float是4字节,long是8字节。
- 浮点数当中默认类型是double。如果一定要使用float类型,需要加上一个后缀F。如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L。推荐使用大写字母后缀。
举例:
public class DataTypeTest {
public static void main(String[] args) {
//1. 整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)
//① byte范围:-128 ~ 127
byte b1 = 12;
byte b2 = -128;
//b2 = 128; 错误 左侧数据超过右侧数据类型的最大范围,编译不通过
System.out.println(b1);//12
System.out.println(b2);//-128
// ② 声明long型变量,必须以"l"或"L"结尾
short s = 128;
// ③ 通常,定义整型变量时,使用int型。
int i = 1234;
// ② 声明long型变量,必须以"l"或"L"结尾
long l = 3414234324L;
System.out.println(l);//3414234324
//2. 浮点型:float(4字节) \ double(8字节)浮点型,表示带小数点的数值,float表示数值的范围比long还大
//通常,定义浮点型变量时,使用double型。
double d = 123.3;
System.out.println(d + 1);//124.3
//定义float类型变量时,变量要以"f"或"F"结尾
float f = 12.3F;
System.out.println(f);//12.3
//3. 字符型:char (1字符=2字节)
// 定义char型变量,通常使用一对'',内部只能写一个字符
char c1 = 'a';
//c1 = 'AB'; 编译不通过,不能表示2个字符
System.out.println(c1);//a
//字符可以是数字,中文,等等
char c2 = '1';
char c3 = '中';
char c4 = 'ス';
System.out.println(c2);//1
System.out.println(c3);//中
System.out.println(c4);//ス
//② 表示方式:1.声明一个字符 2.转义字符 3.直接使用 Unicode 值来表示字符型常量
char c5 = '\n';//换行符
c5 = '\t';//制表符
System.out.println("hello" + c5 + "world");//hello world
char c6 = '\u0044';
System.out.println(c6);//D
//4.布尔型:boolean
//① 只能取两个值之一:true 、 false
boolean bb1 = true;
System.out.println(bb1);//true
boolean isMarried = true;
//② 常常在条件判断、循环结构中使用
if (isMarried) {
System.out.println("你就不能参加\"单身\"party了!\\n很遗憾");//你就不能参加"单身"party了!\n很遗憾
} else {
System.out.println("你可以多谈谈女朋友!");
}
}
}
整数类型:byte、short、int、long
- Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性。
- java的整型常量默认为 int 型,声明long型常量须后加‘l’或‘L’
- java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long
- bit: 计算机中的最小存储单位。byte:计算机中基本存储单元。
浮点类型:float、double
与整数类型类似,Java 浮点类型也有固定的表数范围和字段长度,不受具体操作 系统的影响。
浮点型常量有两种表示形式:
- 十进制数形式:如:5.12 512.0f .512 (必须有小数点)
- 科学计数法形式:如:5.12e2 512E2 100E-2
- float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。
- double:双精度,精度是float的两倍。通常采用此类型。
- Java 的浮点型常量默认为double型,声明float型常量,须后加‘f’或‘F’。
字符类型:char
- char 型数据用来表示通常意义上“字符”(2字节)
- Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符。
字符型变量的三种表现形式:
- 字符常量是用单引号(‘ ’)括起来的单个字符。例如:char c1 = 'a'; char c2 = '中'; char c3 = '9';
- Java中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。 例如:char c3 = ‘\n’; // '\n'表示换行符
- 直接使用 Unicode 值来表示字符型常量:‘\uXXXX’。其中,XXXX代表 一个十六进制整数。如:\u000a 表示 \n。
char类型是可以进行运算的。因为它都对应有Unicode码。
布尔类型:boolean
- if条件控制语句;
- while循环控制语句;
- do-while循环控制语句;
- for循环控制语句;
boolean类型数据只允许取值true和false,无null。
- 不可以使用0或非 0 的整数替代false和true,这点和C语言不同。
- Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达所操作的 boolean值,在编译之后都使用java虚拟机中的int数据类型来代替:true用1表示,false用0表示。
变量的分类-按数据类型
对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分 配了不同大小的内存空间。
变量的分类-按声明的位置的不同
- 在方法体外,类体内声明的变量称为成员变量。
- 在方法体内部声明的变量称为局部变量。