Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等

1.Java基础结构
2.命名规范与注释
3.常量
4.变量
5.访问修饰符
6.运算符

1.Java基础结构

1
2
3
4
5
6
// 类名与Java文件名相同
public class Hello {
public static void main(String[] args) { // 方法名是main,main方法表示为入口文件
// 方法代码...
} // 方法定义结束
}

PS:我们注意到public除了可以修饰class外,也可以修饰方法。而关键字static是另一个修饰符,它表示静态方法,后面我们会讲解方法的类型,目前,我们只需要知道,Java入口程序规定的方法必须是静态方法,方法名必须为main,括号内的参数必须是String数组。

2.命名规范与注释

命名规则:包含数字,字母,下划线与$符号(不能以数字开头;不能为关键字)
命名规范:类名(大驼峰原则),方法名与变量名(小驼峰原则)

① 包名: 多单词组成时所有字母都小写:xxxyyyzzz
② 类名、接口名: 多单词组成时,所有单词的首字母大写:XxxYyyZzz
③ 变量名、方法名: 多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写: xxxYyyZzz
④ 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_zzz

补充:【python的命名规范】

单行注释:\\
多行注释:\* content *\
从Java 13开始,字符串可以用"""..."""表示多行字符串(Text Blocks)

3.常量

常量是指在程序的整个运行过程中值保持不变的量。在这里要注意常量和常量值是不同的概念,常量值是常量的具体和直观的表现形式,常量是形式化的表现。通常在程序中既可以直接使用常量值,也可以使用常量。

下面我们来系统地认识一下 Java 中的常量值,以及定义常量的方法

常量值

  1. 整型常量值

Java 的整型常量值主要有如下3种形式:

  • 二进制数形式:0b101、0b1001
  • 十进制数形式:如 54、-67、0
  • 八进制数形式:表示以0开头,如 0125 表示十进制数 85,-013 表示十进制数 -11。
  • 十六进制数形式:表示以0x或0X开头,如 0x100表示十进制数256,-0x16表示十进制数-22。
  1. 整型(int)常量

默认在内存中占 32 位,是具有整数类型的值,当运算过程中所需值超过 32 位长度时,可以把它表示为长整型(long)数值。长整型类型则要在数字后面加 L 或 l, 如 697L,表示一个长整型数,它在内存中占 64 位。

  1. 实型常量值

Java 的实型常量值主要有如下两种形式:

  • 十进制数形式:由数字和小数点组成,且必须有小数点,如 12.34、-98.0。
  • 科学记数法形式:如 1.75e5 或 32&E3,其中 e 或 E 之前必须有数字,且 e 或 E 之后的数字必须为整数。
  1. 布尔型常量值

Java 的布尔型常量只有两个值,即 false(假)和 true(真)。

  1. 字符型和字符串常量值

Java 的字符型常量值是用单引号引起来的一个字符,如 ‘e’、E’。需要注意的是,Java 字符串常量值中的单引号和双引号不可混用。双引号用来表示字符串,像 “11”、”d” 等都是表示单个字符的字符串。

定义常量

常量不同于常量值,它可以在程序中用符号来代替常量值使用,因此在使用前必须先定义,即在声明常量的同时要赋予一个初始值。

定义常量(通常大写)的时候,如果加上final修饰符,这个变量就变成了常量:

1
2
3
4
final double PI = 3.14; // PI是一个常量
double r = 5.0;
double area = PI * r * r;
PI = 300; // compile error! 常量在定义时进行初始化后就不可再次赋值,再次赋值会导致编译错误。

注意:

  • 变量可重新赋值,等号是赋值语句,不是数学意义的等号。
  • 常量在初始化后不可重新赋值,使用常量便于理解程序意图。

Java 语言使用 final 关键字来定义一个常量(常量有三种类型:静态常量、成员常量和局部常量。),其语法:final dataType variableName = value

1
2
3
4
5
6
7
8
9
10
public class HelloWorld {
// 静态常量
public static final double PI = 3.14;
// 声明成员常量
final int y = 10;
public static void main(String[] args) {
// 声明局部常量
final double x = 3.3;
}
}

4.变量

变量声明和赋值

Java 语言是强类型(Strongly Typed)语言,强类型包含以下两方面的含义:

  • 所有的变量必须先声明、后使用。
  • 指定类型的变量只能接受类型与之匹配的值

基本语法:
DataType identifier=value; 或者 DataType identifier;

初始化变量是指为变量指定一个明确的初始值。初始化变量有两种方式:一种是声明时直接赋值,一种是先声明、后赋值
另外,多个同类型的变量可以同时定义或者初始化,但是多个变量中间要使用逗号分隔,声明结束时用分号分隔

1
2
3
4
5
6
7
8
9
10
char usersex='女';    // 直接赋值

String username; // 先声明
username ="琪琪"; // 后赋值

String username,address,phone,tel; // 同时声明多个变量
int num1=12,num2=23,result=35; // 声明并初始化多个变量

int a1 = 1, a2 = 2, a3 = 2; // 同时初始化多个变量
System.out.println(a1 + a2 + a3);

变量作用域

变量的作用域规定了变量所能使用的范围,只有在作用域范围内变量才能被使用。根据变量声明地点的不同,变量的作用域也不同。

根据作用域的不同,一般将变量分为不同的类型:成员变量和局部变量

成员变量

Java 的成员变量有两种,分别是全局变量(实例变量)和静态变量(类变量)。定义在方法体和语句块之外,不属于任何一个方法,作用域是整个类。

名称 修饰 访问 生命周期
全局变量(实例变量) 无 static 修饰 对象名.变量名 只要对象被当作引用,实例变量就将存在
静态变量(类变量) 用 static 修饰 类名.变量名或对象名.变量名 其生命周期取决于类的生命周期。类被垃圾回收机制彻底回收时才会被销毁
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package bytedance.com;

public class BasicTest {
public static void main(String[] args) {
// 创建类的对象
DataClass dc = new DataClass();
// 对象名.变量名调用实例变量(全局变量)
System.out.println(dc.name);
System.out.println(dc.age);
// 类名.变量名调用静态变量(类变量)
System.out.println(DataClass.website);
System.out.println(DataClass.URL);
}
}


class DataClass {
String name; // 成员变量、实例变量
int age; // 成员变量、实例变量
static final String website = "C语言中文网"; // 成员变量、静态变量(类变量)
static String URL = "http://c.biancheng.net"; // 成员变量、静态变量(类变量)
}

静态变量与实例变量的区别如下:

1)静态变量

  • 运行时,Java 虚拟机只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配。
  • 在类的内部,可以在任何方法内直接访问静态变量。
  • 在其他类中,可以通过类名访问该类中的静态变量。

2)实例变量

  • 每创建一个实例,Java 虚拟机就会为实例变量分配一次内存。
  • 在类的内部,可以在非静态方法中直接访问实例变量。
  • 在本类的静态方法或其他类中则需要通过类的实例对象进行访问。

局部变量

局部变量是指在方法或者方法代码块中定义的变量,其作用域是其所在的代码块。可分为以下三种:

  • 方法参数变量(形参):在整个方法内有效
  • 方法局部变量(方法内定义): 从定义这个变量开始到方法结束这一段时间内有效
  • 代码块局部变量(代码块内定义):从定义这个变量开始到代码块结束这一段时间内有效
  1. 方法局部变量
1
2
3
4
5
6
7
8
9
10
11
public class Test2 {
public static void main(String[] args) {
int a = 7;
if (5 > 3) {
int s = 3; // 声明一个 int 类型的局部变量
System.out.println("s=" + s);
System.out.println("a=" + a);
}
System.out.println("a=" + a);
}
}
  1. 方法参数变量
1
2
3
4
5
6
7
8
public class Test3 {
public static void testFun(int n) {
System.out.println("n=" + n);
}
public static void main(String[] args) {
testFun(3);
}
}
  1. 代码块局部变量

代码块局部变量常用于try-catch代码块中,成为异常处理参数变量。

异常处理参数变量的作用域是在异常处理块中,该变量是将异常处理参数传递给异常处理块,与方法参数变量类似

1
2
3
4
5
6
7
8
9
10
11
12
public class Test4 {
public static void test() {
try {
System.out.println("Hello!Exception!");
} catch (Exception e) { // 异常处理块,参数为 Exception 类型
e.printStackTrace();
}
}
public static void main(String[] args) {
test();
}
}

5.访问修饰符

作用域 本类 本包范围内 子孙类(只代表其他包中的子孙类) 其他包
public 可以 可以 可以 可以
protected 可以 可以 可以 不可以
default 可以 可以 不可以 不可以
private 可以 不可以 不可以 不可以

同一package可以理解为在同一个村庄

public 可以理解为无论是否在一个村,谁都可以访问

protected 可以理解为,只有自己一个村的邻居和子女,以及远嫁出去的子女可以访问

default 可以理解为,只有自己同村的可以范围,如果子女和自己是同村,也可以使用。如果子女远嫁出去,不在自己的村庄了,很抱歉,远水解不了近渴,远亲不如近邻。

private 可以理解为,私有财产不可侵犯,有些事情,除了自己,绝不能让其他人访问,例如银行密码。

6.运算符

  1. 数学运算符

加减乘除:+ - * /
取余:%
自增,自建:++ --

1
2
3
4
5
6
int a = 12;
System.out.println(-a); // 12
int b = a++;
System.out.println(b); // 12
b = ++a;
System.out.println(b); // 14

上述代码第 2 行是 -a,是把 a 变量取反,结果输出是 -12。第 4 行代码是先把 a 赋值给 b 变量再加一,即先赋值后++,因此输出结果是 12。第 6 行代码是把 a 加一,然后把 a 赋值给 b 变量,即先 ++ 后赋值,因此输出结果是 14。

  1. 关系运算符
运算符 说明 举例
> 大于 a > 4.2
>= 大于等于 3.4 >= b
< 小于 1.5 < 9
<= 小于等于 6 <= 1
== 等于 2 == 2
!= 不等于 2 != 2
  1. 位运算符
运算符 说明 举例
& 1 & 4
2 | 5
^ 异或 2 ^ 3
~ ~5
<< 左移 5 << 3
>> 右移 6 >> 1
  1. 逻辑运算符
运算符 说明 举例
&& true && false
|| (3 > 1) || (2 == 1)
! !true
  1. 条件运算符

condition ? x1 : x2
condition为一个boolean值,根据condition,取x1或x2的值

参考文章


 评论

联系我 | Contact with me

Copyright © 2019-2020 谁知你知我,我知你知深。此恨经年深,比情度日久

博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议