02-Java基础语法

Java基础语法

1.关键字 、保留字、特殊值

  1. 关键字:
    就是被java语言赋予特殊含义的单词。

    关键字的特点
    组成关键的字母都是小写

    常见关键字
    class,public,static,void …

  2. 保留字

    在Java中注册但还未使用

    goto、const

  3. **特殊值:**true、false、null

2. 标识符

Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符。

凡是自己可以起名字的地方都叫标识符。

1、标识符的命名规则

(1)Java的标识符只能使用26个英文字母大小写,0-9的数字,下划线_,美元符号$

(2)不能使用Java的关键字,保留字和特殊值,但能包含关键字和保留字。

(3)数字不能开头

(4)不能包含空格

(5)严格区分大小写,长度无限制。

2、标识符的命名规范

(1)见名知意

(2)类名、接口名等:每个单词的首字母都大写,形式:XxxYyyZzz,

例如:HelloWorld,String,System等

(3)变量、方法名等:从第二个单词开始首字母大写,其余字母小写,形式:xxxYyyZzz,

例如:age,name,bookName,main

(4)包名等:每一个单词都小写,单词之间使用点.分割,形式:xxx.yyy.zzz,

例如:java.lang

(5)常量名等:每一个单词都大写,单词之间使用下划线_分割,形式:XXX_YYY_ZZZ,

例如:MAX_VALUE,PI

3.常量

常量
就是在程序的执行过程中其值不发生改变的量。

Java中常量的分类:
(1):字面值常量
(2):自定义常量

字面值常量的分类:
(1): 字符串常量 用双引号括起来的内容 “HelloWorld” ,“Hello”
(2): 整数常量 所有整数 12,23
(3): 小数常量 所有小数 12.34,56.78
(4): 字符常量 用单引号括起来的内容 ‘a’,‘A’,‘0’ (注意事项:单引号中只能是单个字母,单个数字,单个符号)
(5): 布尔常量 较为特有,只有true和false
(6): 空常量 null

4. 变量

变量的作用:用来存储数据

变量的本质:内存的一块存储区域

变量的三要素

  • 数据类型:决定内存大小,可以存什么值

  • 变量名:如何访问这块存储区域

  • 值:里面存储的数据

声明变量:数据类型 变量名;

**变量赋值:**变量名 = 变量值;

声明变量和变量的赋值可以同时进行,也可以分开进行。但是在变量被访问之前,必须有值。

例如:数据类型 变量名 = 变量初始值;

变量的使用:通过变量名来访问这块存储区域

变量的使用应该注意事项:

1、先声明后使用

  • 如果没有声明,会报“找不到符号”错误

2、在使用之前必须初始化

  • 如果没有初始化,会报“未初始化”错误

3、变量有作用域

  • 如果超过作用域,也会报“找不到符号”错误

  • 作用域:可以看成 { 作用域 }

4、在同一个作用域中不能重名

5.数据类型

5.1 Java数据类型的分类

1、基本数据类型

8种:整型系列(byte,short,int,long)、浮点型(float,double)、单字符型(char)、布尔型(boolean)

2、引用数据类型

类、接口、数组、枚举.....

5.2 Java的基本数据类型

1、整型系列

(1)byte:字节类型

占内存:1个字节

存储范围:-128~127

(2)short:短整型类型

占内存:2个字节

存储范围:-32768~32767

(3)int:整型

占内存:4个字节

存储范围:-2的31次方 ~ 2的31次方-1

(4)long:整型

占内存:8个字节

存储范围:-2的63次方 ~ 2的63次方-1

注意:如果要表示某个常量数字它是long类型,那么需要在数字后面加L

2、浮点型系列(小数)

(1)float:单精度浮点型

占内存:4个字节

精度:科学记数法的小数点后6~7位

注意:如果要表示某个常量数字是float类型,那么需要在数字后面加F或f

(2)double:双精度浮点型

占内存:8个字节

精度:科学记数法的小数点后15~16位

3、单字符类型

char:字符类型

占内存:2个字节

Java中使用的字符集:Unicode编码集

字符的三种表示方式:

(1)‘一个字符’

例如:‘A’,‘0’,‘尚’

(2)转义字符

\n:换行
\r:回车
\t:Tab键
\\:\
\":”
\':
\b:删除键Backspace

(3)\u字符的Unicode编码值的十六进制型

4、布尔类型

boolean:只能存储true或false;占一个字节。

5.3 基本数据类型的转换

1、自动类型转换

在Java中整数默认是Int类型,小数默认是double类型;

(1)当把存储范围小的值(常量值、变量的值、表达式计算的结果值)赋值给了存储范围大的变量时,

byte->short->int->long->float->double

        char->
int a = 'A';//char自动升级为int
double d = 5;//int自动升级为double

(2)当存储范围小的数据类型与存储范围大的数据类型一起混合运算时,会按照其中最大的类型运算

int a = 1;
byte b = 1;
double c = 1.0;
double num = a + b + c;//混合运算,升级为double

(3)当byte,short,char数据类型进行算术运算时,按照int类型处理

byte b1 = 1;
byte b2 = 2;
byte b3 = (byte)(b1 + b2);//b1 + b2自动升级为int
char c1 = '0';
char c2 = 'A';
System.out.println(c1 + c2);//113 

(4)boolean类型不参与

2、强制类型转换

(1)当把存储范围大的值(常量值、变量的值、表达式计算的结果值)赋值给了存储范围小的变量时,需要强制类型转换

double->float->long->int->short->byte

				   ->char

注意:有风险,可能会损失精度或溢出

double d = 1.2;
int num = (int)d;//损失精度

int i = 200;
byte b = (byte)i;//溢出

(2)boolean类型不参与

(3)当某个值想要提升数据类型时,也可以使用强制类型转换

int i = 1;
int j = 2;
double shang = (double)i/j;

提示:这个情况的强制类型转换是没有风险的。

3、常量优化机制

当多个常量在一起计算时,它会把结果先算出来,然后判断计算结果是否在数据类型的范围内;

例:byte b = 3 + 4; 编译不报错

5.4 特殊的数据类型转换

1、任意数据类型的数据与String类型进行“+”运算时,结果一定是String类型

System.out.println("" + 1 + 2);//12

2、String类型不能通过强制类型()转换,转为其他的类型

6. 进制

6.1进制

计算机中任何的计算和存储都是以二进制方式实现的
位(bit) — 是计算机中最小的存储单位
字节(byte) — 计算机中基本的存储单元
1byte = 8bits、1KB = 1024Byte、1MB = 1024KB、1GB = 1024MB、1T = 1024GB
对于整数,有四种表示方式:

  • 二进制:0,1 ,满2进1.以0b或0B开头(字母B大小写均可)。
  • 十进制:0-9 ,满10进1.
  • 八进制:0-7 ,满8进1.八进制数被冠以0来表示。
  • 十六进制:0-9及A-F,满16进1,十六进制数被冠以0X来表示(字母X大小写均可)
    如: 0x3f20(十六进制) 0732 (八进制)

6.2原码、反码、补码

所有数字在计算机底层都以二进制形式存在。一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1。
Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认占64位,第64位是符号位。

因为机器数是带符号的,因此机器数与一个数的“二进制值”还是有区别的。

  • 计算机以补码的形式保存所有的整数。
  • 正数的原码、反码、补码都相同。
  • 负数的补码是其反码加1。

为什么要使用原码、反码、补码表示形式:
计算机辨别"符号位"显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了.

7. 运算符

1、按照操作数个数的分类:

(1)一元运算符:操作数只有一个

例如:正号(+),负号(-),自增(++),自减(–),逻辑非(!),按位取反(~)

(2)二元运算符:操作数有两个

例如:加(+),减(-),乘(*),除(/),模(%)

(3)三元运算符:操作数三个

例如: ? :

2、Java基本数据类型的运算符:

(1)算术运算符

(2)赋值运算符

(3)比较运算符

(4)逻辑运算符

(5)条件运算符

(6)位运算符

7.1算术运算符

加法:+

减法:-

乘法:*

除法:/

注意:整数与整数相除,只保留整数部分

取模:% 取余

注意:取模结果的正负号只看被模数

正号:+

负号:-

自增:++

自减:–

原则:自增与自减

  • ++/–在前的,就先自增/自减,后取值
  • ++/–在后的,就先取值,后自增/自减

整个表达式的扫描,是从左往右扫描,如果后面的先计算的,那么前面的就暂时先放到“操作数栈”中

7.2 赋值运算符

基本赋值运算符:=

扩展赋值运算符:+=,-=,*=,/=,%=…

注意:所有的赋值运算符的=左边一定是一个变量

扩展赋值运算符=右边的计算结果的类型如果比左边的大的话会强制类型转换,所以结果可能有风险。

扩展赋值运算符的计算:(1)赋值最后算(2)加载数据的顺序是把左边的变量的值先加载,再去与右边的表达式进行计算

7.3 比较运算符

大于:>

小于:<

大于等于:>=

小于等于:<=

等于:== 注意区分赋值运算符的=

不等于:!=

注意:比较表达式的运算结果一定只有true/false
比较表达式可以作为(1)条件(2)逻辑运算符的操作数

猜你喜欢

转载自blog.csdn.net/m0_46988935/article/details/109515616