java基础———标识符,变量

标识符

什么是标识符

标识符其实就是名字,比如变量名、类名、方法名等,就像人的名字一样让你能更快更准的找到它。

标识符的命名规范

它和人名不同,人名只要不是太离谱,大家都可以接受,但是标识符的命名有着自己的规则。

(1)由字母、数字、下划线(_)和美元符号($)组成;
(2)不能以数字开头;
(3)区分大小写;
(4)不能是Java中的保留字和关键字

比如:
age、score 、$title
student_name
getName
这些都是合法的标识符。

关键字和保留字

上面说到标识符不能用java的关键字和保留字。
什么是java的关键字,那些是关键字。

(1)在Java中有特定含义、专门用途的一些标识符称为关键字(keyword),关键字全部小写
在这里插入图片描述
至于这些关键字什么意思,我们以后学到的时候再讲,现在知道即可。
什么是java的保留字,那些是保留字
(2)保留字:没有定义用途,但保留备用,如goto、const

练习一下
请判断以下标识符是否合法:
HelloWord、username2、user_name、_userName、
$abc_123、public、
2UserName、user#Name、Hello World

变量

我们的程序是用来处理数据的,那我们要处理的数据存储在哪里?如何访问?

什么是变量

首先要明确,变量是用来存储数据的,根据业务需要,存储的数据可能会发生变化。
变量的语法中,包含一些术语:数据类型、变量名、变量的值
在这里插入图片描述

变量:保存程序执行过程中的数据
变量名:定义变量的标识符
变量类型:存放的数据类型
变量值:内存单元中装载的数据
变量其实是内存中的一小块区域,可以通过变量名来访问这块区域。
因此,每一个变量使用前必须先声明(定义),然后进行赋值(填充内容),才能使用
注意:java的变量是区分大小写的,int a和int A 表示两个不同的变量

变量的定义

1) 数据类型 变量名;
变量名 = 对应数据类型的值;


int a;
a = 10;

注意:a = 10中10称为常量值
2)数据类型 变量名 = 对应数据类型的值; (定义变量时直接赋值,推荐写法)

int a = 1024;

注:“=” 表示赋值,变量不赋值,是不能直接使用的,会报错
比如下面代码,定义了变量c,但是没有赋值,打印的时候,直接报错`

int c;
System.out.println(c)

在这里插入图片描述

变量的分类

按变量的数据类型划分

基本类型变量:保存的是真实的数字、字符等数据。
引用类型变量:保存的也是数据,只不过这个数据比较特殊,是对象的引用值(相当于对象的内存地址)

按声明位置划分

局部变量:方法或语句块内部定义的变量
全局变量:方法外部、类的内部定义的变量

命名规范

【变量名、方法名】:首字母小写,其余单词首字母大写。这种命名方式也称为小驼峰原则
例如:title,void payTime()
【类名】:首字母大写,其余单词首字母大写。这种命名方式也称为大驼峰原则
例如:class UserManager {}
【包名】:全部小写,用英文的"."隔开
例如:com.qfedu
【项目名】:全部小写
例如:studentsys
【常量】:全部大写,单词之间用_隔开
例如:public static final int NO_LOGIN_STATUS = 401

数据类型

前面提到数据类型,什么是数据类型
在这里插入图片描述

基本数据类型

Java中所有的基本数据类型都有固定的存储范围和所占内存空间的大小,而不受具体操作系统的影响,以保证Java程序的可移植性
在这里插入图片描述

整数类型

byte 字节型 /shor 短整型/int 整型/long长整型

byte b = 97;
short s = 200;
int i = 10000;
long l = 64646413132L;

可以使用二进制值、八进制值、十六进制对整数类型赋值

byte b1 = 0b10;
byte b2 = 010;
byte b3 = 0x10;

int i1 = 0b10;
int i2 = 010;
int i3 = 0x10;

赋值时不能超出该类型的数值范围

byte b = 1000;

在这里插入图片描述

浮点类型

float/double
浮点数就是我们通常说的小数。
Java浮点类型有两种表示形式:
十进制形式,必须含有小数点,例如:
3.14 314.0 0.314
科学记数法形式,如:
3.14e0 3.14E2 3.14E-1

float f = 10.3f;
double d = 12.3;
double d1 = 12.3e0;
double d2 = 12.3e2;
double d3 = 12.3e-2;
double d4 = 12.3E2;

注意:一般我们提到浮点数默认指的是double型,如要声明float型,则需在数字后面加f或F。

字符类型

char
Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示(Unicode是全球语言统一编码)
值可以为英文,也可以为中文

char c = 'A';  
char gender= '男';

char类型还可以直接使用数字赋值

char c = 97;  
char gender= 22899;
System.out.println(c); // a
System.out.println(gender); // 女

通过unicode编码赋值

char c = '\u4e2d';
System.out.println(c); // 中

Java语言中使用转义符号’'来将其后的字符转变为其它含义
一些常见的转义字符
在这里插入图片描述

//    \ 在java中有特殊含义,转义符号,这个需要和其他字符配合到一起来用,有特殊的含义
		
// 转义字符
char c = '\t';
System.out.println(c);

// 输出单引号这个字符    
// 单引号在java里有特殊的语法含义,单引号用来括住字符的
// \' 相当于将原来的语法含义去掉,将其转换为普通的单引号字符
char c1 = '\'';
System.out.println(c1);

System.out.println("super\tman");

System.out.println("super\nman");

在这里插入图片描述

布尔类型

布尔类型的值:true/false (小写)
boolean类型表示真假,一般用于逻辑运算、流程控制

boolean ret = true;
boolean isDel = false;

类型转换

自动类型转换

取值范围小的会自动转为取值范围大的
byte -> short -> int -> long -> float -> double
char -> int -> long -> float -> double

byte b = 30;
// 自动类型转换
short s = b;
System.out.println(s);

int i = s;
System.out.println(i);

double d = i;
System.out.println(d);

byte不能转为char;
short,char不能互相转换

byte b = 12;
// 编译报错
char c = b;

short s = 2000;
// 编译报错
char c = s;
强制类型转换

取值范围大的转为取值范围小的时,需要进行强制类型转换
基本语法:类型A 变量名 = (类型A)类型B的变量;

long l = 100L; 
// 强制转换为int
int i = (int)l;

long l2 = 23456789000L;
// 强制类型转换,数据溢出
int i1 = (int)l;

注意:有可能造成精度降低或数据溢出,使用时要注意
另外,boolean 类型不能转换成任何其它基本数据类型

运算符

表达式

由变量、数字和运算符组成的式子
表达式都是从左至右计算,返回运算结果,如果有括号,先处理括号里面的内容

算术运算符

在这里插入图片描述
注意:
有多种类型的数据混合运算时,系统首先将所有数据转换成容量最大的那种数据类型,然后再进行计算。例如int型和long型运算时,先把int量转成long型后再进行运算。
运算中使用的浮点数常量值,按照double类型进行处理
运算中使用的整数常量值,按照int类型处理

// 算数运算符 + - * / % ++ --
int i = 10;
int i2 = i + 3;
int i3 = (i2 - 5) * i;
System.out.println(i3);

int a = 10;
int b = 3;
// 如果除数和被除数都是整型变量,/ 表示取整(商)  10 / 3 = 3
System.out.println(a / b);

double d = 15.5;
double d2 = 3.0;
// 对于浮点数,/ 数学意义上的除法,得到是小数
System.out.println(d / d2);
System.out.println(d / 3);

// 取余
System.out.println(a % b);
System.out.println(d % 3);
System.out.println("-------------------------------");

// 自增 ++, 每次+1
int m = 10;
m++;
System.out.println(m); // 11
++m;
System.out.println(m); // 12

System.out.println("-------------------------------");

int n = 10;
// ++ 出现在变量后面,后自增
// n++ 这个表达式,先返回n的值(k = 10),然后进行自增的操作
int k = n++;
System.out.println(k); // 10
System.out.println(n); // 11

System.out.println("--------------------------------");

int p = 10;
// ++ 出现在变量前面,前自增
// ++p 这个表达式,先对p进行自增操作(11),然后这个表达式在返回p的值(q = 11)
int q = ++p;
System.out.println(q); // 11
System.out.println(p); // 11

// 自减 --
int r = 10;
r--;
System.out.println(r);
--r;
System.out.println(r);

int r1 = 10;
// int r2 = r1--;
int r2 = --r1;
System.out.println(r2);

自增和自减一般针对整数处理
i++ 与 ++i的区别:
i++ 表示 先返回i的值,再对i进行+1操作
++i 表示 先对i进行+1操作,再返回i的值

赋值运算符

在这里插入图片描述

int a = 10;
int b = 20;

// a = a + b;
a += b;
System.out.println(a);

// a = a - b
a -= b;
System.out.println(a);

// a = a * 4
a *= 4;
System.out.println(a);
关系运算符

比较运算符两边的操作数,结果返回boolean类型
在这里插入图片描述

// == 、 != 、 > 、  < 、  >= 、  <=
int age = 30;

// 判断值是否相同
System.out.println(age == 30);
// 不等于 !=
System.out.println(age != 20);

System.out.println(age > 40);

System.out.println(age < 40);

System.out.println(age >= 30);

System.out.println(age <= 10);
逻辑运算符

在这里插入图片描述
&&:表达式的多个条件中,只要有一个为false,整个表达式返回false
||:表达式中的多个条件中,只要有一个为true,整个表达式返回true
&& 与 & 区别:比如a&&b, 如果 表达式a 为 false,则不计算 表达式b;而a&b时,表达式a和b都会计算
|| 与 | 区别:比如a||b,如果 表达式a为true,则不计算表达式b
在这里插入图片描述

// 逻辑运算符  针对多个条件进行综合判断 整个判断结果,也是boolean
// 判断一个人是否是高富帅
// 身高 180cm及以上, 个人资产 1千万及以上 , 颜值9分及以上
int height = 182;
int money = 100000000;
int handsome = 10;

// && 短路与   同真为真,有假即假
// 只有所有条件都为true ,返回true
// 只要又一个为false,整个判断结果为false
// 180 >= 180  && 10 >= 10000000 && 9 >= 9
// true && false && true
boolean ret = height >= 180 && money >= 10000000 && handsome >= 9;
System.out.println(ret);

// || 短路或   同假为假,有真既真
// 所有的条件中,只要有一个为true,整个结果就是true
// 所有条件都是false,整个结果false

// 相亲 三个条件里只要满足一个,女方就很满意
boolean ret2 = height >= 180 || money >= 10000000 || handsome >= 9;
System.out.println(ret2);


// ! 逻辑非 真变假 !true=false  假变真  !false = true
// 矮穷挫
boolean ret3 = !(height >= 180 && money >= 10000000 && handsome >= 9);
System.out.println(ret3);

int year = 1996;
boolean ret4 = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
// boolean ret4 = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
System.out.println(ret4);
三目运算符

? :
基本语法:表达式1 ? 表达式2 : 表达式3
说明:判断表达式1是否成立,如果成立,执行表达式2,否则执行表达式3

int age = 30;
int ret = age > 20 ? 1 : 0;
System.out.println(ret);

// 表达式2和表达式3的运算结果的类型,决定了接收整个表达的返回值的变量的类型
boolean ret2 = age > 50 ? true : false;
System.out.println(ret2);
位运算符

在这里插入图片描述

int a = 1;
int b = 0;

System.out.println(a & b);
System.out.println(a | b);
System.out.println(a ^ b);
// 左移1位相当于乘以2
// 0000 0001    0000 0010
System.out.println(a << 1);

int c = 4;
// 右移1位相当于除以2
// 0000 0100   0000 0010
System.out.println(c >> 1);
优先级

Java中的运算符很多。一般而言,单目运算符优先级较高,赋值运算符优先级较低。算术运算符优先级较高,关系和逻辑运算符优先级较低
注意:优先级不用记,无法确定优先级时,使用小括号即可

ascii码表

在这里插入图片描述

  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值