02-JavaSE基础语法

JavaSE基础语法

变量(variable)

变量简介

程序最核心的目的就是为了操作数据,但是数据都在内存中,也就是我们的JVM,而且这个内存区域是循环使用的。

程序中一般使用变量来操纵存储空间中的数据。

Java是一种强类型语言,每个变量使用前必须提前声明,可以合理更加合理的利用空间。
Java变量要素包括变量名,变量类型和作用域。

简单总结: 变量=数据类型+标识符

modifier type identifier [ = value][, identifier [= value] ...] ;
identifier :定义一个变量的名字
type :用来确定占用空间的大小

标识符

给类,接口,方法,变量等起名字的字符序列。用来查找、定位、标明、唯一确认内容。
Java 标识符有如下命名规则:

  • 标识符必须以字母、下划线_ 、美元符$开头。
  • 标识符其它部分可以是字母、下划线“_”、美元符“ ”和数字的任意组合。
  • Java 标识符大小写敏感,且长度无限制。
  • 不可以是Java的关键字
  • JAVA不采用通常语言使用的ASCII字符集,而是采用unicode这样的标准的国际字符集。因此,这里的字母的含义:英文、汉字等等。

合法的标识符举例:

int a = 3;
int _123 = 3;
int $12aa = 3;
int 变量1 = 55;

不合法的标识符:

int 1a = 3;  //不能用数字开头
int a# = 3;  //不能包含#这样的特殊字符
int int = 3;  //不能使用关键字

关键字

Java关键字是Java语言保留供内部使用的。

关键字也可以称为保留字,它们的意思是一样的。是被系统征用的特殊单词(标识符),而且是被广大程序员所认知的。

部分关键字

image-20230630112357436

不能使用关键字作为变量名或方法名

数据类型

Java定义数据类型是为了分配不同内存空间。

对内存占用分类

  • 基本数据类型(primitive type)
    • 基本数据类型占用内存大小是固定的
    • ①整数类型: longintshortbyte
      ②浮点类型: floatdouble
      ③字符类型: char
      ④布尔类型: boolean
  • 引用数据类型(reference type)
    • 引用数据类型占用的内存大小是未知的
    • 类、 接口类型、 数组类型、 枚举类型、 注解类型、 字符串型
基本数据类型

Java中定义了3类8种基本数据类型

  • 逻辑型-boolean
  • 文本型- char
  • 数值型- byte, short, int, long, float, double

数值类型-整型

类型名称 字节长度 变化数量 表值范围
byte 1 256 [-128,127]
short 2 65536 [-32768,32767]
int 4 2^32 [-2147483648,2147483647]
long 8 2^64 [263*-1,263-1]

数值类型-浮点型

类型名称 字节长度 字节组成 计算公式
float 4 1符号位+8次幂位+23精度位 【正负】23*2^次幂位
double 8 1符号位+11次幂位+52精度位 【正负】52*2^次幂位

布尔类型

类型名称 字节长度 变化数量 表值
boolean 1位 2种 false/true

boolean类型有两个值,true和false
boolean 类型用来判断逻辑条件,一般用于程序流程控制 。

字符类型

类型名称 字节长度 变化数量 表值
char 2 65536 65536个字符
  • 单引号用来表示字符常量。例如 ‘A’ 是一个字符,它与 “A” 是不同的, “A” 表示含有一个字符的字符串。
  • char 类型用来表示在 Unicode 编码表中的字符。
  • Unicode 编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536 个字符。
  • Unicode具有从0到65535之间的编码,通常用从 ’\u0000’ 到 ’\uFFFF’ 之间的十六进制值来表示(前缀为u表示Unicode)
char char1 = 'a';
char char2 ='中';
char c = '\u0061';
char c2 = '\n';  //代表换行符
转义符 含义 unicode值
\b 退格(backspace) \u0008
\n 换行 \u000a
\r 回车 \u000d
\t 制表符 \u0009
\" 双引号 \u0022
\' 单引号 \u0027
\\ 反斜杠 \u005c
引用数据类型

声明之前我们不知道真实对象所占用内存大小的多少

注:引用数据类型的大小统一为4个字节,记录的是其引用对象的地址!

变量作用域

局部变量(lacal variable) :

  • 方法或语句块内部定义的变量。生命周期是从声明位置开始到下一个}为止(Java支持块级作用域)。
  • 在使用前必须先声明和初始化(赋初值)
public void incorrectLocalV() {
   
  int i;
  //i=10;
  int j = i+5 ; // 编译出错,变量i还未被初始化
}

实例变量(成员变量 member variable):

  • 方法外部、类的内部定义的变量。从属于对象,生命周期伴随对象始终
  • 如果不自行初始化,他会自动初始化成该类型的默认初始值
    • 数值型变量初始化成0或0.0
    • 字符型变量的初始化值是16位的 \u0000
    • 布尔型默认是false

运算符(operator)

Java 语言支持的运算符

  • 算术运算符: +,-,*,/,%,++,–
  • 赋值运算符 =
  • 关系运算符: >,<,>=,<=,==,!=, instanceof
  • 逻辑运算符: &&,||,!
  • 位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
  • 条件运算符 ?:
  • 扩展赋值运算符:+=,-=,=,/=

赋值运算符

=: 赋值号, 将赋值号右边的数据,赋值给左边的变量(空间)。注意类型必须要一致或兼容。

算数运算符

+,-,*,/,% 和数学中的规则一样
注意:如果只有整数参数与运算,结果也为整数

一元运算符

++(自增),–(自减),了解一个,另一个含义相同
++ 基本含义:在整型变量原来值的基础上增加 1,然后赋值给当前变量
++i(前导自增): 先将变量的值增加 1 , 赋值给自己,再进行其他运算
i++ (后导自增):先取出变量的值使用,然后再将变量的值增加 1, 赋值给自己

int a = 3;
int b = a++;  //执行完后,b=3。先给b赋值,再自增。
int c = ++a;  //执行完后,c=5。先自增,再给b赋值

注意:java中的乘幂处理

int a = 3^2;   //java中不能这么处理, ^是异或符号。
double b = Math.pow(3, 2);

Math类提供了很多科学和工程计算需要的方法和常数。

逻辑运算符

运算符 含义 说明
& 与|且 可做位运算符
| 可做位运算符
^ 异或 可做位运算符
&& 短路与
|| 短路或

位运算符:(了解)

~ : 按位取反
& : 按位与
| : 按位或
^ : 按位异或
<< :左移运算符

>>:右移运算符

>>>:无符号移位运算符

右移一位相当于除2取商。
左移一位相当于乘2。

int a = 322;
int b = 3<<2;  //相当于:322;
int a = 12/2/2;
int b = 12>>2;

扩展运算符

运算符 用法举例 等效的表达式
+= a += b a=a+b

字符串连接符

+运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。

int c = 12;
System.out.println("c=" + c);

条件运算符

条件运算符和数学中的含义一致,最终结果一定是布尔值。

>, < , >= , <= 一般用于数值型数据的运算, == , != 可对任意数据进行运算。注意比较两个数据是否相等需要使用 ==

三目条件运算符

三目条件运算符,语法格式:x ? y : z

其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。

int score = 80; int x = -
  • 41
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值