1. 标识符
1.1 标识符概述
给【类,方法,变量等】命名时使用的字符序列
1.2 标识符定义规则
▲由数字、字母、下划线( _ )和美元符( $ )组成
▲不能以数字开头
▲不能是关键字
▲区分大小写
1.3 常见命名约定
小驼峰命名法:(方法,变量)
1.标识符是一个单词时,首字母小写
2.标识符由多个单词组成是,第一个单词首字母小写,其他单词首字母大写
大驼峰命名法:(类)
1.一个单词时,首字母大写
2.多个单词时,每个单词首字母大写
1.4 基本准则
见名知意
2. 数据类型转换
2.1 自动类型转换
把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。
byte short char 之间不会相互转换,三者计算时首先转换为int类型
boolean类型不能与其他值进行运算
当把任何基本数据类型的值和字符串(String)进行连接运算(+)时,基本数据类型的值将自动转化为字符串(String)类型
2.2 强制类型的转换
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量
格式:目标数据类型 变量名 = (目标数据类型)值或者变量;
ex:int k = (int)88.88;
注意:
可能造成精度降低或者损失;
字符串不能直接转换为基本类型,但通过基本类型对应的包装类,则可以实现把字符串转换成基本类型;
boolean类型不可以转换为其他的数据类型;
3.运算符
3.1 运算符和表达式
运算符:对常量或变量进行操作的符号
表达式:用运算符吧常量或者变量连接起来符合Java语法的式子
3.2 算术运算符
3.2.1 算术运算符规则
整数运算:
如果两个操作数有一个为long,结果为long
没有long时,结果为int
浮点运算:
只要有一个double,则结果为double
无double,则结果为float
取模运算:
其操作数可以为浮点数,一般使用整数,结果为”余数“,”余数“符号和左边操作数相同,如:7 / 3 = 2,-7 / 3 = -1,7 / -3 = 1
3.2.2 字符的"+"操作
char类型参与算术运算,只用字符在计算机底层对应的数值来进行计算;
‘A’------>65 A-Z连续
'a'------->97 a-z连续
'0'------->48 0-9连续
3.2.3 字符串的”+“操作
字符串中的"+"为字符串连接符,并不是算术运算符
3.3 赋值运算符
3.3.1
注意事项:扩展的赋值运算符隐藏了强制类型转换
public static void main(String[] args)
{
short s = 20;
s += 10; // s =(short) (s + 10)
System.out.println(s);
}
}
public static void main(String[] args)
{
int a=3;
int b=4;
a+=b;
System.out.println("a="+a+"\nb="+b);
a=3;
//a*=b+3; // 等同于 a = a *( b + 3) 21 会将扩展赋值运算符后的表达式作为一个整体和左边进行运算
a = a * b + 3;//15
System.out.println("a="+a+"\nb="+b);
}
}
3.4 自增自减运算符
++ 自增,变量的值加一
-- 自减,变量的值减一
3.4.1 注意
class Demo1
{
/*
++ 自增
-- 自减
*/
public static void main(String[] args)
{
int a = 5;
System.out.println(a++); //5 先取值 后运算
System.out.println(a); //6
System.out.println(++a); //7 先运算 后取值
}
}
class Demo1
{
/*
++ 自增
-- 自减
*/
public static void main(String[] args)
{
int a = 5;
int b = a++ + 1;
System.out.println(a);//6
System.out.println(b);// 6
int c = 5;
int d = ++c + 1;
System.out.println(c);//6
System.out.println(d);// 7
int x = 10;
int y = x++ + x++ + x++;
System.out.println(y); // y的值是多少?
System.out.println(x);
}
}
3.5 关系运算符
注意事项:
关系运算符的结果都是boolean类型,要么是true,要么是false
3.6 逻辑运算符
注意事项:
逻辑与&,无论做辨真假,右边都要执行
短路与&&,如果左边为真,右边执行,如果左边为假,右边不执行
逻辑或,无论左边真假,右边都要执行。
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
public static void main(String[] args){
int a = 10;
boolean b = a++ < ++a && --a < --;
System.out.println(b); //false
System.out.println(a); //12 左边为假,右边不执行
}
3.7 位运算符
计算机中存储 数字的二进制的补码
正数的 原码、反码、补码都是一样的
负数的 原码、反码除符号位 其余位按位取反(0->1 1->0)
补码:原码取反+1
位运算的执行效率是最高的
public static void main(String[] args){
int a = 3;
int b = 2;
int c = 3 << 2; //相当于计算 3*2*2
int c = 3 >> 2; //相当于计算 3/2/2
System.out.println(c);
}
3.8 三元运算符
格式:关系表达式 ? 表达式1 : 表达式2
当关系表达式成立(true)则整个三元运算结果为表达式1,否则为表达式2
public static void main(String[] args)
{
int a = 3;
int b = 2;
int c = a < b ? a + 1 : ++b; // a < b 为假,三元运算结果为表达式2(++b) = 2+1 = 3
System.out.println(c);
}
class Demo1
{
/*
需求:动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg,
请用程序实现判断两只老虎的体重是否相同。
*/
public static void main(String[] args)
{
int weightA = 180;
int weightB = 200;
boolean result = weightA == weightB ? true : false;
System.out.print(result);
}
}
class Demo1
{
/*
需求:一座寺庙里住着三个和尚,已知他们的身高分别 为150cm、210cm、165cm,
请用程序实现获取这三个和尚的最高身高。
*/
public static void main(String[] args)
{
int height1 = 150;
int height2 = 210;
int height3 = 165;
int max = (height1 > height2 ? height1 : height2) > height3 ? (height1 > height2 ? height1 : height2) : height3;
System.out.print(max);
}
}