Java 语法基础(一)

java

前言

Java 语言基础由 关键字、标识符、注释、常量、变量、运算符、语句、函数和数组 等组成 。



关键字

关键字就是 Java 语言赋予了特殊含义的单词。像:this、super、class、等,

其的特点是: 关键字都是小写

关键字

关键字


标识符

标识符是 Java 中包、类、方法、参数和变量的名字,由任意的 大小写字母、数字、下划线_ 和 美元符号 $ 组成。

标识符不能以数字开头,不能是关键字。


Java 命名规范

  • 包名:多单词组成时所有字母都小写。

    例如:xxxyyyzzz

  • 类名接口名:多单词组成时,所有单词的首字母大写。

    例如:XxxYyyZzz

  • 变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。

    例如:xxxYyyZzz

  • 常量名:所有字母都大写。多单词时每个单词用下划线连接。

    例如:XXX_YYY_ZZZ


注释

注释是 用于注解说明程序的文字,注释的意义是提高代码的阅读性。


注释分类

  • 单行注释

    格式://注释的文字

  • 多行注释

    格式:/*注释的文字*/

  • 文档注释

    格式:/**注释的文字*/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
* 这是Hello World程序。
* @author: deemons
*/
public class Demo {
/*
这是主函数,是程序的入口。
它的出现可以保证程序的独立运行。
*/
public static void main(String[] args) {
//这是输出语句用于将括号内的数据打印到控制台。
System.out.println("Hello World");
}
}

对于单行和多行注释,被注释的文字,不会被 JVM( java虚拟机 )解释执行。所以,即使添加再多的注释,编译后生成的 class 文件占用硬盘的字节不变。

对于文档注释,是 java 特有的注释,其中注释内容可以被 JDK 提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。

注释是一个程序员必须要具有的良好编程习惯。将思想通过注释先写出来,再用代码去实现,因为代码仅仅是思想的一种体现形式。


常量

Java中固定不变的、表示不能改变的数值。如:整数、小数等


常亮分类

  • 整数常量:所有整数。
  • 小数常量:所有小数。
  • 布尔型常量:truefalse
  • 字符常量:将一个数字、字母或者符号用单引号 '' 标识,如:'a'
  • 字符串常量:将一个或者多个字符用双引号(“”)标识,如:"hello world""a"""(空字符串)。
  • null 常量:null


变量

变量就是内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型),用于存储常量数据,该区域的数据可以在同一类型范围内不断变化。

作用:方便与运算。因数据不确定的时候,就定义变量。

特点:变量空间可以重复使用。


变量定义的要素

  1. 存储的数据类型
  2. 变量名称
  3. 变量初始值


变量的作用域和生存期

  1. 作用域

    从变量定义的位置开始,到该变量所在的那对大括号结束

  2. 生命周期

    变量从定义的位置开始就在内存中活了,到达它所在的作用域时就在内存中消失了。


数据类型

Java 语言是 强类型 语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间

数据类型


数据类型分类

Java 语言的数据类型包括8种基本类型,3种引用类型。

分类如下:

数据分类

整数的默认类型是 int 类型,小数的默认类型是 double 类型。

在编译器中,赋值 long 类型时 需在数值后加 L表示 long 类型,否则默认数值是 int 类型,一旦超过 int 的数值范围,编译器会报错。float 与 double 同理,赋值 float 时 需在数值后加 f 表示 float 类型。


类型转换

类型转换在开发中也很常用,简单来说就是类型之间相互的转化,类型转换共分两种,自动类型转换和强制类型转换。

  1. 自动类型转换(隐式类型转换)

    自动类型转换就是不需要手动对类型进行强制转换,从低级别到高级别,系统自动转。

  2. 强制类型转换(显式类型转换)

    强制类型转换需要把类型进行手动转换,否则无法正常使用

数据类型级别从低到高为:byte,char,short,(三个平级) –> int –> float –> long –> double

Java 面试经常会出这些类型转换的题目。


运算符号

运算符包括下面几种:

  • 算术运算符
  • 赋值运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • 三目运算符

最不常用的是位运算符,但也是最接近计算机底层的。


算术运算符

算术运算符

+ 的几种用法:加法、正数、字符串连接符。

除法的时候要注意一个问题:整数相除,只能得到整数。要想得到小数,可以将数据自身*1.0,即将数据自身先转换为浮点型。


赋值运算符

符号:= , +=, -=, *=, /=, %=

a += 1; 和 a = a + 1; 的不同点在于,前者编译器在编译的时候,默认进行了 强制类型转换


比较运算符

比较运算符

比较运算符的结果都是 布尔值( boolean ) 类型。


逻辑运算符

逻辑运算符

逻辑运算符用于连接两个boolean类型的表达式。

例如,在Java中不可以写成1<x<5,应该写成 x>1 & x<5

“&” 和 “&&”,”|” 和 “||” 的区别在于,虽然最终结果一样,但 “&&” 和 “||” 具有短路效果。

“&&” 左边是false,右边不执行。

“||” 左边是true,右边不执行。

“&&” 和 “||”在开发中常用,因为可以提高效率。

异或( ^ )与或( | )的不同之处是:当左右都为true时,异或的结果为false,否则都为 true。


位运算符

java 位运算符

虽然开发中用的不多,但会在很多源码中看到,因为计算机底层的计算都是位运算。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*
面试题:请自己实现两个整数变量的交换
*/
class OperatorTest {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a:"+a+",b:"+b);
//方式1:使用第三方变量(开发中用的)
int c = a;
a = b;
b = c;
System.out.println("a:"+a+",b:"+b);
System.out.println("------------");
//方式2:用位异或实现(面试用)
//左边:a,b,a
//右边:a ^ b
a = a ^ b;
b = a ^ b; //a ^ b ^ b = a
a = a ^ b; //a ^ b ^ a = b
System.out.println("a:"+a+",b:"+b);
//方式3:用变量相加的做法
a = a + b; //a=30
b = a - b; //b=10
a = a - b; //a=20
System.out.println("a:"+a+",b:"+b);
*
//方式4:一句话搞定
b = (a+b) - (a=b); //b=30-20=10,a=20
System.out.println("a:"+a+",b:"+b);
}
}


三目运算符

​ 格式:
(条件表达式) ? 表达式1 : 表达式2
​ 如果条件为true,运算后的结果是表达式1;
​ 如果条件为false,运算后的结果是表达式2。

1
2
int a=3,b=4,c;
c = (a>b)?a:b;//c变量存储的就是两个数的最大数。

坚持分享技术,但行好事,莫问前程 ~^o^~