本章介绍一些编程中的基本概念,比如:变量、常量、运算符、标识符等。这些是编程中的“砖块”,是编程的基础。 要想开始正式编程,还需要再学“控制语句”,控制语句就像“水泥”,可以把“砖块”粘到一起,最终形成“一座大厦”。
老鸟建议:学习本章,一定不要纠结于概念,不要停留,大致了解就快速开始下一章。永远记住“快速入门、快速实战;实战中提高,发展中解决问题”。
注释
为了方便程序的阅读,Java语言允许程序员在程序中写上一些说明性的文字,用来提高程序的可读性,这些文字性的说明就称为注释。
注释不会出现在字节码文件中,即Java编译器编译时会跳过注释语句。
在Java中根据注释的功能不同,主要分为单行注释、多行注释和文档注释
1)单行注释
单行注释使用“//”开头,“//”后面的内容均为注释。
2)多行注释
多行注释以“/*”开头以“*/”结尾,在“/*”和“*/”之间的内容为注释,在使用多行注释时注意,注释不能嵌套。
3) 文档注释
文档注释以“/**”开头以“*/”结尾,注释中包含一些说明性的文字及一些JavaDoc标签(后期再写项目时,可以生成项目的API)
【示例 1】注释
/**
* Welcome类(我是文档注释)
* @author高淇
* @version 1.0
*/
public class Welcome {
//我是单行注释
public static void main(String[] args/*我是行内注释*/) {
System.out.println("Hello World!");
}
/*
我是多行注释!
我是多行注释!
*/
}
标识符
标识符是用来来给变量、类和方法进行命名的,如age、name、gender等。标识符需要遵守一定的规则:
1)标识符必须以字母、下划线_、美元符号$开头。
2) 标识符其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合。
3)Java 标识符大小写敏感,且长度无限制。
4)标识符不可以是Java的关键字。
标识符的使用规范表示类名的标识符用大写字母开始。如:Man, GoodMan
表示方法和变量的标识符用小写字母开始,后面的描述性词以大写开始。我们称之为“驼峰原则”,比如:eat(),eatFood()
Java不采用通常语言使用的ASCII字符集,而是采用unicode这样的标准的国际字符集。因此,这里的字母的含义不仅仅是英文,还包括汉字等等。但是不建议大家使用汉字来定义标识符!
【示例 2】合法的标识符
inta = 3;
int_123 = 3;
int$12aa = 3;
int变量1 = 55;
【示例 3】不合法的标识符
int1a= 3;//不能用数字开头
inta# = 3;//不能包含#这样的特殊字符
intint= 3;//不能使用关键字
Java中关键字/保留字
Java关键字是Java语言保留供内部使用的,如class用于定义类。 关键字也可以称为保留字,它们的意思是一样的,我们不能使用关键字作为变量名或方法名。
表-Java中的关键字/保留字
Abstract
assert
boolean
break
byte
Case
Catch
char
class
const
continue
default
Do
double
else
extends
final
finally
float
for
goto
if
implements
import
instanceof
int
interface
long
native
New
Null
package
private
protected
public
return
Short
static
strictfp
super
switch
synchronized
This
throw
throws
transient
try
Void
Volatile
while
菜鸟雷区:
出于应试教育的惯性思维,很多新手会可以去背上面的单词,从实战思维出发,我们不需要刻意去记!随着学习的深入,自然就非常熟悉了。
变量(variable)
变量的本质
变量的本质,就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。 我们可以通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。
Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。 比如,int a=3; 表示a变量的空间大小为4个字节。
变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储空间。
·变量的声明
格式为:
数据类型 变量名 [=初始值];
【示例 4】 声明变量
double salary ;
long earthPopulation ;
int age ;
下图为声明变量的内存示意
注意事项每个变量都有类型,类型可以是基本类型,也可以是引用类型。
变量名必须是合法的标识符
变量声明是一条完整的语句,因此每一个声明都必须以分号结束
【示例 5】在一行中声明多个变量
int i ,j; //两个变量的数据类型都是int
老鸟建议:
不提倡这种风格,逐一声明每一个变量可以提高程序可读性。
【示例 6】可以将变量的声明和初始化放在同一行中
int age = 18;
doublee = 2.718281828;
变量的分类
从整体上可将变量划分为局部变量、成员变量(也称为实例变量)和静态变量。
【表1】局部变量、成员变量、静态变量的区别
类型
声明位置
从属于
生命周期
局部变量
方法或语句块内部
方法/语句块
声明位置开始,直到方法或语句块执行完毕,局部变量消失
成员变量
(实例变量)类内部,方法外部
对象
对象创建,成员变量也跟着创建。对象消失,成员变量也跟着消失;
静态变量
(类变量)类内部,static修饰
类
类被加载,静态变量就有效;类被卸载,静态变量消失。
老鸟建议:
成员变量和静态变量不是目前重点,不要过多纠结理解与否。我们学习面向对象时,再重点讲解成员变量和静态变量。
1)局部变量(lacal variable)方法或语句块内部定义的变量。生命周期是从声明位置开始到”}”为止。局部变量在使用前必须先声明、初始化(赋初值)再使用。
【示例 7】局部变量
public void test() {
int i;
i=10;
int j = i+5 ; //编译出错,变量i还未被初始化
}
2)成员变量(也叫实例变量member variable)
方法外部、类的内部定义的变量。从属于对象,生命周期伴随对象始终。如果不自行初始化,他会自动初始化成该类型的默认初始值。
表2 实例变量的默认初始值
数据类型实始值
int0
double0.0
char‘\u0000’
booleanfalse
【示例 8】实例变量的声明
public class Test {
int i;
}
3)静态变量(类变量static variable)使用static定义。 从属于类,生命周期伴随类始终,从类加载到卸载。(注:讲完内存分析后我们再深入!先放一放这个概念!)如果不自行初始化,他与成员变量相同会自动初始化成该类型的默认初始值,如表2所示。
练习1:变量的声明并赋值
publicclassLocalVariableTest {
public static void main(String[ ] arg) {
boolean flag = true; //声明boolean型变量并赋值
char c1, c2; //声明char型变量
c1 = '\u0041'; //为char型变量赋值
c2 = 'B'; //为char型变量赋值
int x; //声明int型变量
x = 9; //为int型变量赋值
int y = x; //声明并初始化int型变量
float f = 3.15f; //声明float型变量并赋值
double d = 3.1415926; //声明double型变量并赋值
}
}
常量(Constant)
常量通常指的是一个固定的值,例如:1、2、3、’a’、’b’、’c’,true,false,”helloWorld”等等。
在Java语言中,主要是利用关键字final来定义一个常量。 常量一旦被初始化后不能再更改其值。
声明格式为:
final type varName =value ;
【示例 9】常量的声明及使用
public class TestConstants {
public static void main(String[] args) {
final double PI = 3.14;
// PI = 3.15; //会报错,不能再被赋值!
double r = 4;
double area = PI * r * r;
double circle = 2 * PI * r;
System.out.println("area = " + area);
System.out.println("circle = " + circle);
}
}
老鸟建议
变量和常量命名规范
所有变量、方法、类名:见名知意
类成员变量:首字母小写和驼峰原则: monthSalary
局部变量:首字母小写和驼峰原则
常量:大写字母和下划线:MAX_VALUE
类名:首字母大写和驼峰原则: Man, GoodMan
方法名:首字母小写和驼峰原则: run(), runRun()
「全栈Java笔记」是一部能帮大家从零到一成长为全栈Java工程师系列笔记。笔者江湖人称 Mr. G,10年Java研发经验,曾在神州数码、航天院某所研发中心从事软件设计及研发工作,从小白逐渐做到工程师、高级工程师、架构师。精通Java平台软件开发,精通JAVAEE,熟悉各种流行开发框架。
笔记包含从浅入深的六大部分:
A-Java入门阶段
B-数据库从入门到精通
C-手刃移动前端和Web前端
D-J2EE从了解到实战
E-Java高级框架精解
F-Linux和Hadoop
F-Linux和Hadoop