2019.02.14 - Java基础语法

Java基础语法

概述

计算机语言组成

  1. 关键字
  2. 标识符
  3. 注释
  4. 常量与变量
  5. 运行符
  6. 语句
  7. 函数
  8. 数组

关键字和保留字

  • 关键字: 在编程语言中有一些事先定义的,有着特殊含义和用途的单词。
  • 保留字: 和关键字一样都是编程语言事先定义好的,只是说现在暂时没有特殊的用途,但说不定以后某天会突然被赋予意义和被使用到,因此被保留下来的单词,goto和const就是Java的保留字。

Java关键字表

在这里插入图片描述

标识符

在程序中自定义的一些名称,它是有26个字母大小写,数字:0-9符号 _ $ 组成规定:

  1. 不能以数字开头
  2. 不可以使用关键字
  3. 见名知义

注释

注解 / 解析:用于注解说明解释程序的文字

  • Java的注释信息是给程序员看的,编译器(javac)在编译的时候会忽略掉源文件中的注释信息。为此,Java提供3种注释类型:

    1. 单行注释://
    2. 多行注释:/* */,多行注释不能嵌套多行注释。
    3. 文档注释:/** */,可以把注释的内容生成文档,java doc???命令。
  • 注释的其他用途:注释可以帮助解释说明一些代码;帮助缩小错误的范围,便于排查错误。

  • 注意问题:

    • 单行注释能嵌套单行注释,可以嵌套多行注释。
    • 多行注释当中不能嵌套多行注释,多行注释当中可以嵌套单行注释。
    • 注释不会编译到字节码文件。

反编译class字节码(JAD的使用)

  • Win:Xjad(图形化界面)
  • Mac:MacJad,用命令操作,配置到/usr/bin(全局command)。
    1. 反编译 class文件 为 jad文件:jad filename
    2. 修改jad后缀为java。

进制

暂略!!!

  • 各种进制的表示:
    1. 二进制整数:0B或0b开头(Java7的新特性),如:int a = 0B110;
    2. 八进制整数:要求以0开头,如 int a = 012;
    3. 十进制整数:如:int a = 17;
    4. 十六进制整数:要求0X或0x开头,如int a = 0x12;

常量

常量:程序中固定不变化的值。定义了就不能再去修改

  1. 整数常量
  2. 小数常量
  3. 布尔型常量
  4. 字符常量
  5. 字符串常量
  6. null常量
  • 代码:常量.Constant.java
package 常量;
public class Constant {
	public static void main(String[] args) {
		/**
		 * print 打印不会换行
		 * println 打印时会换行
		 */
		System.out.print("Constant");
//		常量是固定的一个值
//		1. 整数常量
		System.out.println(10);
//		2. 小数常量
		System.out.println(10.10);
//		3. 字符常量,单引号只能包含一个字符
		System.out.println('A');
//		4. 字符串常量
		System.out.println("Hello");
//		5. 布尔类型常量 false:假,true:真
		System.out.println(true);
//		6. null常量
//		System.out.println(null);
	}
}
  • 整数常量的分类
    1. 二进制
    2. 八进制
    3. 十进制
    4. 十六进制

变量

  • 定义变量:数据类型 变量名 = 变量值;
  • 代码:变量.Variable.java
package 变量;
public class Variable {
	public static void main(String[] args) {
		// 变量:其值可以改变的量,定义好之后,可以指代某一事物
		// 数据类型 变量名(自己起的名称) = 变量值(指代某一事物);
		int a = 10;
		int b = 5;
		// 需求:求两个数的加、减、乘、除
		System.out.println(a + b);
		System.out.println(a - b);
		System.out.println(a * b);
		System.out.println(a / b);
		System.out.println();
		
		System.out.println(a);
		System.out.println(b);
		
		a = 20;
		b= 10;
		System.out.println(a);
		System.out.println(b);
		System.out.println();
		
		int c = 5;
		System.out.println(c);
		System.out.println();
		
		// 注意事项

		// 1.不能定义两个相同名称的变量
		// int c = 5;
		
		// 2.定义一个变量,但没有指向某一事物
		// 没有初始化的变量是不能使用的
		// int d;
	}
}

数据类型

代码:变量.DataType.java

数据类型的分类

基本数据类型

  • 整数类型:数值类型,byte、short、int、long类型

    • Java语言的整型常量默认是int型,声明long型变量后加上‘l’或‘L’,因小写的l容易和数字1相混淆,建议使用大写L。
  • 小数类型 / 浮点类型:数值类型,float, double

    • Java语言的小数型常量默认是double型,声明float型变量后加上‘f’或‘F’,建议使用大写F。
  • 字符类型(char):16位

  • 布尔类型(boolean):8位

基本数据类型示意图

在这里插入图片描述

强制数据类型转换
int a = 10;//4byte
byte b = 2;//1byte

b = (byte)a;
System.out.println(b);//结果:10
  • 注意:不建议使用,会造成数据的溢出。会造成数据的不正确性。
int a = 10;
byte b = 2;

//造成数据的不正确性。
b = (byte)a;
System.out.println(b); //结果:-56
自动数据类型转换
  • 运算时,表达式两端的数据类型必须要保持一致。
  • 如果运算都是数值类型,会自动把小的类型转换为大的类型。(自动类型转换)
  • JVM在运算时,识别的最小数值类型为int。(byte, short 和 char 会自动提升为int类型)
short s2 = s + b;//等同于 short s2 = (int)s + (int)b;当然会报错
int s2 = (int)s + (int)b;//成功
  • 字符类型:在运算时会自动转换为整数。
int i = 10;
char c = 'A';//A:65,a:97
System.out.println(c + i);

引用数据类型

  • String:使用双引号引起来。

  • 字符串的拼接:无论什么类型与字符串进行拼接,就成为了字符串类型。

  • 类(class)

  • 接口(interface)

  • 数组

运算符

算术运算符

+, -, *, /, %++, --

  • 注意
    • +:字符串使用时,代表字符串的拼接
    • /:整数的除数不能为0
    • %:符号由 被除数 决定

自增和自减运算符

++--

  • 必须要使用在变量的前后
  • 表示当前操作变量自己 累积1 或 累减1
  • ++--写在变量前后的区别
    • a++:累加的结果 不参与本次运算(使用变量的原始值进行运算)
    • ++a:累加的结果 参与本次运算(使用累加之后的值进行运算)

赋值运算符

=, +=, -=, *=, /=%=

  • 注意点
short s = 5;
s = s + 1;//报错,必须强转
s += 1;//自动转换,s = (short)(s + 1)

比较运算符

==, !=, >, <, >=<=

  • 比较运算符的结果是一个布尔类型
int a = 10;
int b = 11;
System.out.println(a>b);//false

三元运算符

  • 格式:逻辑表达式 ? 表达式1 : 表达式2
    • 如果逻辑表达式为true,则返回表达式1的值。
    • 如果逻辑表达式为false,则返回表达式2的值。
  • 三元运算符的结果:要么是表达式1的值,要么是表达式2的值。

逻辑运算符

&, |, !, ^&&, ||

  • 逻辑运算符:要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值。
  • 代码:_06运算符.LogicOperator.java

与(&)

  • 格式:逻辑表达式1 & 逻辑表达式2
  • 结果:如果两个表达式有一个为false,那么 与 的结果就为false。
  • 如果两个表达式都为true,那么 与 的结果就为true。

或(|)

  • 格式:逻辑表达式1 | 逻辑表达式2
  • 结果:如果两个表达式有一个为true,那么 或 的结果就为true。
  • 如果两个表达式都为false,那么 或 的结果就为false。

非(!)

  • 对一个布尔类型取反操作
  • 格式:!布尔类型

异或(^)

  • 格式:逻辑表达式1 ^ 逻辑表达式2
  • 结果:相等 就是 false/0;不等 就是true/1

短路与(&&)

  • 格式:逻辑表达式1 && 逻辑表达式2
  • 结果:
    • 如果两个表达式有一个为false,那么 与 的结果就为false。
    • 如果两个表达式都为true,那么 与 的结果就为true。
  • 区别:
    • &:会 去执行后面的表达式。
    • &&:只要发现了false,就不会再去执行后面的表达式了。

短路或(||)

  • 格式:逻辑表达式1 | 逻辑表达式2
  • 结果:
    • 如果两个表达式有一个为true,那么 或 的结果就为true。
    • 如果两个表达式都为false,那么 或 的结果就为false。
  • 区别:
    • |:会 去执行后面的表达式。
    • ||:只要发现了true,就不会再去执行后面的表达式了。

Java的逻辑运算符与Python的对比

逻辑运算符 异或 短路与 短路或
Java & | ! ^ && ||
Python and or not

位运算符

  • 位运算:是以二进制位为单位进行的运算,其操作数和运算结果都是整型值。

Java的位运算符与Python的对比

位运算符 异或 左移 右移 无符号右移
Java & | ~ ^ << >> >>>
Python & | ~ ^ << >>

运算符的优先级

优先级由上至下递减
在这里插入图片描述

JavaPython运算符比较

运算符种类 算术 比较 赋值 逻辑 成员 身份 三元 instanceof
Java ✅(&, |, !, ^, &&, || ✅(Python五种 + >>>
Python ✅(and, or, not ✅(&, |, ~, ^, <<, >> ✅(in, not in ✅(is, is not ❌(三元表达式)

流程语句

顺序结构

默认顺序执行

选择结构

  • if
  • if_else
  • if_elseif_else
  • switch

循环结构

  • while
  • do_while
  • for

break, continue 和 return

  • break:跳出本层循环。可以跳出指定的循环层。

  • continue:跳过本次循环,继续执行之后的循环。

  • return:跳出方法,方法内的后续代码不再执行。

  • 代码:

    • 循环结构.Return.java
    • 循环结构.OutterBreak.java

方法与数组

猜你喜欢

转载自blog.csdn.net/weixin_42359693/article/details/87282481