Java基础
1 数据类型
1.标识符
1.有字母.数字,下划线,&组成
2.不能以数字开头
3.做到见名知意,严格区分大小写
2.变量
概述:程序中想要记录一些一直在变的量,就需要定义变量.
变量的三要素:变量类型 变量名=变量值
3.数据类型的种类
基本类型: 8种
byte、short、int、long、float、double、char、boolean
引用类型:只要不是8种的基本类型,其他的都是引用类型。
4 练习1:基本类型的取值范围
- char类型--字符型--面试题:char类型可以存一个中文汉字吗?
package cy.pj.basic;
public class Test_Scope {
public static void main(String[] args) {
char c1 = '0' ;
char c2 = 'a' ;
char c3 = '中' ;
char c4 = '?' ;
char c5 = 128 ;
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
System.out.println(c5);
}
}
char类型,可以直接存储一个数字本身,但是本质上,c5还是一个char类型。底层会拿着你存入的数字,去ascii码表里查询对应的字符,然后使用字符本身。
4.2 变量交换
//测试 变量值的交换
public class Test4_Exchange {
public static void main(String[] args) {
//1,定义变量a和b
int a = new Scanner(System.in).nextInt() ;
int b = new Scanner(System.in).nextInt() ;
System.out.println("交换前:a="+a+",b="+b);
//2,开始交换
int c = a ;//创建c保存a的值
a = b ;//a没值了,找b要
b = c ;//b没值了,找c要
System.out.println("交换后:a="+a+",b="+b);
}
5 基本类型的字面值
1.整数字面值是int类型
2.浮点数的字面值是double类型
3.byte,short,char三种比int晓得整数可以用范围内的值直接赋值
4.char类型的取值范围是0~65535,不能超出,超出就报错
5.byte的取值范围是-128~127,不能超出,超出就报错
6.short的取值范围是-32768~32767,不能超出,超出就报错
7.5.5默认是double类型,但是加了后缀f(F)就会变成float类型
8.10000000000默认是int类型,但是已经超出了int范围,直接赋值会报错,加后缀L(l),把右侧的int类型的值转成long
进制前缀
二进制的数据0b开始 -- 0b0011
八进制的数据0开始 -- 0567
十六进制的数据0x开始 -- 0x0987C char类型是\u开始 -- u0000
2 基本类型的类型转换
1.小转大--隐式转化
把右侧的小类型byte类型的a,转成左侧的大类型long类型的b--可以直接转
2.大转小--显示转化
右侧的大类型double类型的m,转成左侧的下类型int类型的n--不可以直接转
解决方案是:强转/显示转化--加代码--(小类型)
3 运算规则
1.计算结果的数据类型,与最大类型一致
2.byte,short,char三种比int小的整数,运算时会先自动转换成int
3.右侧已经变成大类型int了,给左侧的小类型,不可以直接赋值---需要强转
4.java 对于小数运算时会产生不精确的现象
5.小数运算时的特殊值--Infinity NaN(not a number)
3.1 运算符
1.算术运算符
+ - * / %(取余数) ++ --
2.比较逻辑符:结果是boolean值
== !=
3.逻辑运算符:结果是boolean值
+ !(取反,非真即假,非假即真)
&(逻辑与)--表示并且关系
1 & 2,想得到最终的结果是true,要求是:1是true并且2是true
&&(双与/短路与)--表示并且关系(高效)
1 && 2 ,当1为false时,结果早都注定了是false,2的代码就会被短路不用执行了,提高效率
|(逻辑与)--表示或者关系
1 | 2 ,想得到最终的结果是true,要求是:1是true或者2是true
||(双或/短路或) -- 表示或者关系(高效)
1 || 2 ,当1为true时,结果早都注定了是true,2的代码就会被短路不用执行了,提高效率
4.三元运算符
a ? b : c --运算结果可能是b,也可能是c,具体是谁由a决定
当a判断成立时,结果就是b
当a判断不成立时,结果就是c
5.赋值运算符
+= -= *= /= 复合赋值运算符
6.自增自减
a++;//符号在后,先使用再加1
++a;//符号在前,先加1再使用
a--;//符号在后,先使用再减1
--a;//符号在前,先减1再使用