public class hello {
public static void main(String[] args) {
// 字符串常量
System.out.println("程序员");
System.out.println("hello world!");
System.out.println("=============");
//整数常量
System.out.println(123);
System.out.println(-123);
System.out.println("=============");
//小数常量
System.out.println(12.12);
System.out.println(-12);
//字符常量
System.out.println('A');
System.out.println('我');
//布尔常量
System.out.println(true);
System.out.println(false);
//空常量
//空常量不能直接输出的
//System.out.println(null);
}
}
常量
public class hello {
public static void main(String[] args) {
/*变量定义格式:数据类型 变量名=变量值
基本数据类型:
byte,short,int,long,float,double,char,boolean
变量的使用
取值格式:变量名
修改格式:变量名=变量值
*/
int a=20;
System.out.println(a);
a=20;
System.out.println(a);
}
}
变量
注意事项:
1、名字不能重复使用
2、变量未赋值,不能使用
3、long类型的变量定义的时候,为了防止整数过大(一般都认为是int类型),后面要加L
4、float类型的变量定义的时候,为了防止类型不兼容(一般都认为是double类型),后面要加F
标识符
标识符定义规则:
- 有数字、字母、下划线(_)、和美元符($)组成
- 不能以数字开头
- 不能是关键字
- 区分大小写
标识符命名法
小驼峰命名法:方法、变量
- 约定1:标识符是一个单词的时候,首字母小写
- 范例1:name
- 约定2:标识符由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写
- 范例2:fristName
大驼峰命名法:类
- 约定1:标识符是一个单词的时候,首字母大写
- 范例1:Student
- 约定2:标识符由多个单词组成的时候,每个单词的首字母大写
- 范例2:Good Student
类型转换
自动类型转换:
把一个表示数据范围小的数值或者变量赋值给另一个表示数据大的变量(从低到高)
范例:double=10;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a6FtUcn8-1637748616396)(/Users/mac/Desktop/截屏2021-11-24 下午12.53.08.png)]
强制类型转换:
把一个表示数据类型范围大的数值或者变量赋值给另一个表示数据范围小的变量(从高到低)
- 格式:目标数据类型 变量名=(目标数据类型)值或变量;
- 范例:int a=(int)88.88;
算数运算符
加减乘除+取余
public class hello {
public static void main(String[] args) {
int a=6;
int b=4;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a/b);
System.out.println(a%b);
System.out.println(6.0/4);
}
}
字符的"+"操作
public class hello {
public static void main(String[] args) {
//定义两个变量
int a=10;
char c='A';//'A'的值是65
c='a';//'a'的值是97
c='0';//'0'的值是48
System.out.println(a+c);
//char ch=a+c;
//char类型会自动提升为int类型
int e=a+c;
System.out.println(e);
//int k=10+13.23;
double d=10+13.22;
System.out.println(d);
}
}
定义:
拿字符在计算机底层的对应数值来进行计算的
- ‘A’------>65 A-Z是连续的
- ‘a’------>97 a-z是连续的
- ‘0’------>48 0-9是连续的
计算表达式中包含多个基本数据类型的值的时候,整个算数表达式的类型会自动提升
提升规则:
- byte类型,short类型和char类型将被提升到int类型
- 整个表达式的类型自动提升到表达式中最高等级操作数同样的类型
- 等级顺序:byte, short,char–>int–>long–>float–>double
字符串的+操作
public class hello {
public static void main(String[] args) {
System.out.println("it"+"kui");
System.out.println("it"+666);
System.out.println(666+"it");
System.out.println("it"+6+6);
System.out.println(6+6+"it");
}
}
注意事项:
- 当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算符
- “it”+666
- 在“+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算符,当连续进行“+”操作时,从左到右逐个执行。
- 1+88+“it”
赋值运算符
public class hello {
public static void main(String[] args) {
//把10赋值给int类型的变量
int i=10;
System.out.println("i:"+i);
//+=把左边和右边的数据做加法操作,结果赋值给左边
i +=20;
//i=i+20;
System.out.println("i:"+i);
//注意:拓展的赋值运算符底层隐含了强制类型转换
short a=10;
a+=20;
// a=(short)(a+20);
System.out.println("a:"+a);
}
}
自增自减运算符
符号|作用|说明
++|自增|变量的值加1
–|自减|变量的值减1
public class hello {
public static void main(String[] args) {
//定义变量
int i=10;
System.out.println("i:"+i);
//单独使用
i++;
++i;
System.out.println("i:"+i);
//参与操作使用
//int l=i++;
int l=++i;
System.out.println("i:"+i);
System.out.println("l:"+l);
}
}
注意事项:
- ++和–既可以放在变量的后面,也可以放在变量的前面。
- 单独的使用的时候,++和–无论是放在变量的前边还是后边,结果是一样的。
- 参与操作的时候,如果放在变量的后面,先拿变量参与操作,后拿变量做++或者–。
- 参与操作的时候,如果放在变量的前面,先拿变量做++或者–,后拿变量参与操作
- 最常用的用法:单独使用
关系运算符
public class hello {
public static void main(String[] args) {
int i=10;
int a=20;
int c=10;
//==
System.out.println(i==c);
System.out.println(i==a);
System.out.println("============");
//>=
System.out.println(i>=c);
System.out.println(i>=a);
System.out.println("============");
//!=
System.out.println(i!=c);
System.out.println(i!=a);
System.out.println("============");
//>
System.out.println(i>a);
System.out.println(i>c);
System.out.println("============");
//不小心把==写成=
//等于把c的值赋值给了i,然后输出i
System.out.println(i=a);
}
}
注意事项:
- 关系运算符的结果都是boolean类型,要么是true,要么是false
- 千万不要把“==”误写成“=”
逻辑运算符
public class hello {
public static void main(String[] args) {
//定义变量
int a = 10;
int b = 20;
int c = 30;
//& 有false则false
System.out.println((a > b) & (a > c));//false&false
System.out.println((a < b) & (a > c));//ture&false
System.out.println((a > b) & (a < c));//false&ture
System.out.println((a < b) & (a < c));//ture&ture
System.out.println("===========");
//! 有ture则ture
System.out.println((a > b) | (a > c));//false|false
System.out.println((a < b) | (a > c));//ture|false
System.out.println((a > b) | (a < c));//false|ture
System.out.println((a < b) | (a < c));//ture|ture
System.out.println("===========");
//^ 相同为false不同为ture
System.out.println((a > b) ^ (a > c));//false^false
System.out.println((a < b) ^ (a > c));//ture^false
System.out.println((a > b) ^ (a < c));//false^ture
System.out.println((a < b) ^ (a < c));//ture^ture
System.out.println("===========");
//!
System.out.println((a > b));//false
System.out.println(!(a > b));//false
System.out.println(!!(a>b));//false
System.out.println(!!!(a>b));//false
}
}
短路逻辑运算符
public class hello {
public static void main(String[] args) {
//定义变量
int a = 10;
int b = 20;
int c = 30;
//& 有false则false
System.out.println((a > b) && (a > c));//false&&false
System.out.println((a < b) && (a > c));//ture&&false
System.out.println((a > b) && (a < c));//false&&ture
System.out.println((a < b) && (a < c));//ture&&ture
System.out.println("===========");
//| 有ture则ture
System.out.println((a > b) || (a > c));//false||false
System.out.println((a < b) ||(a > c));//ture||false
System.out.println((a > b) || (a < c));//false||ture
System.out.println((a < b)|| (a < c));//ture||ture
System.out.println("===========");
//&&和&
System.out.println((a++>100)&&(b++>100));
//System.out.println((a++>100)&(b++>100));
System.out.println("a:"+a);
System.out.println("b:"+b);
}
}
注意事项:
-
逻辑与:&,无论左边真假,右边都要执行
短路与:&&,如果左边为真,右边执行;如果左边为假,右边不执行。
-
逻辑或:|,无论左边真假,右边都要执行
短路或:||,如果左边为假,右边执行;如果左边为真,右边不执行。
-
常用的逻辑运算符:&&、||、!
三元运算符
public class hello {
public static void main(String[] args) {
int a = 10;
int b = 20;
int max = a>b?a:b;
System.out.println("max:"+max);
}
}
格式:
关系表达式?表达式1:表达式2;
范例:
a>b?a:b;
执行流程:
首先计算关系表达式的值
如果值为ture,表达式为1的值就是运算结果
如果值为false,表达式为2的值就是运算结果