初识java回顾:
java文件编译
一个java文件有类 类中有方法
java----->类----->方法
idea创建项目
改idea背景色
1.
2.
3.
数据类型与变量
1.字面常量
常量即程序运行期间,固定不变的量称为常量,字面值常量也是常量
字面常量的分类
2.数据类型
Java中,数据分为两种类型:基本数据类型和引用数据类型
基本数据类型有四类八种:
1.四类:整型,浮点型,字符型,布尔类型
2.八种:整数型:byte、short、int、long
小数型:float、double
字符型:char
布尔类型:boolean
引用数据类型,这些类型定义的变量都是存储地址的变量
string、数组、接口、类...
可移植性:不管是在多少为操作系统下,这个数据类型所占的字节数一定
1pb=1024tb 1tb=1024gb 1gb=1024mb 1mb=1024kb 1kb=1024byte=8bit
3.变量
变量:在程序运行期间,可以改变的量
Java中不允许使用未初始化的局部变量
局部变量:定义在方法内部的变量
3.1 整型变量
也可以先定义再初始化
变量不允许不初始化
输出整数的最大/小值
//输出整数的最小值 System.out.println(Integer. MIN_VALUE); //输出整数的最大值 System.out.println(Integer. MAX_VALUE);
integer其实也是int,只不过叫做包装类型,这个东西是int的一个加大版本
3.2 长整型 短整型
3.3 字节型
byte
128-127个字节
当给出的字面值大于当前数据类型能表示的最大范围后,便直接报错
3.4 浮点型
3.4.1 双精度浮点型
float
在数据后需要加入f,代表是float类型的数据
double
数据后无需加入f,直接表示输出double类型的数据
3.4.2 单精度浮点型
float类型在Java中占4个字节,由于表示的精度范围过小,我们一般使用double类型,不太推荐使用float
3.5 字符型变量
char
character 类型 > char 类型 前者包含后者类型le
character是char的包装类型
3.6 布尔类型
boolean类型没有规定明确的大小
boolean类型只有true和false
不能用0/1表示,所以布尔类型不能用01表示真假
3.7 类型转换
自动类型转换(隐式)只能把小字节类型赋值给大字节类型
强制类型转换可以把大字节类型赋值给小字节类型,会造成数据的丢失
注意事项
1.不同数字类型的变量之间赋值,表示范围更小的类型能隐式转换成范围较大的类型
2.如果需要把范围大的类型赋值给范围小的,需要强制类型转换,但是可能精度丢失
3.将一个字面值常量进行赋值的时候,Java会自动针对数字类型进行检查
4.强制类型转换不一定成功,不相干的类型不能互相转换
3.8 类型提升
由于计算机的CPU通常是通过4个字节为单位从内存中读写数据,为了硬件上实现方便,诸如byte和short指针低于4个字节的类型,会先提升至int,再参与计算
正确的写法:
byte a=10; byte b=20; byte c=(byte)(a+b); System.out.println(c);
4. String 字符串类型
在 Java中使用String类型定义字符串类型
打印函数str1+str2,拼接字符串
java当中的字符串类型和其他类型参数进行运算==拼接的意思
当一个字符串连续拼接两个东西的和,两个参数应带括号
写在左边可以不用带括号,因为Java程序是从左至右运算
字符串转为整数
Integar.parseInt(字符串);
整数转为字符串
string.value0f(整数);
三个方法:
//整数转为字符串 方法1: int zs=1104; String str5=String.valueOf(zs); System.out.println("str5="+str5); //方法2: String str6=zs+""; System.out.println("str6="+str6); //方法3: String str7=Integer.toString(zs); System.out.println("str7="+str7);
其他类型也可以转
运算符
1.什么是运算符:
对操作数进行操作时的符号,不同运算符操作的含义不同
Java中运算符可分为以下:算术运算符(+、-、*、/)、关系运算符(>、<、==),逻辑运算符、位运算符、移位运算符以及条件运算符等
2.算术运算符
1.基本四则运算符:加减乘除模(+、-、*、/、%)
a/b 不会保存小数,且除数和取模数不能为0
算术运算符报错 算数异常:
CTRL + SHIFT + / 段注释和取消段注释
单行注释:CTRL + / 句注释和取消段注释
java中求余数%不仅可以对整型取模,也可以对double型取模,但是没有意义,一般都是对整型取模的
两侧操作数类型不一致时,向类型大的操作数提升
3.自增/自减运算符 ++、--
++是给变量的值+1,--是给变量的值-1,
4.关系运算符
关系运算符主要有六个:==、 !=、 <、 >、 <= 、>=,其计算结果时true或者false
5.逻辑运算符 (重点)
逻辑运算符有三个:&&、||、!,运算结果都是boolean类型
1.逻辑与&&
运算结果:
例:
System.out.println(a2==1&&b2==3);//true System.out.println(a2==1&&b2>=100);//false System.out.println(a2>100&&b2>=100);//false System.out.println(a2>100&&b2>3);//false
boolean类型只有true和false两个表达式
2.短路与:表达式1 & 表达式2
只要表达式1为假,就不会执行表达式2
3.逻辑或:表达式1 | 表达式2
只有表达式1和表达式2都为假时才为假 表达式1和表达式2都走一遍
1. System.out.println(a2==1||b2==3);//true 2. System.out.println(a2==1||b2>=100);//true 3. System.out.println(a2>100||b2>=100);//false 4. System.out.println(a2>100||b2>3);//false
4.短路或
表达式1 || 表达式2
当表达式1为真时,不会走表达式2
System.out.println(10<20||(10/0==0));//true
5.逻辑非
非真即假
Java中后只能是一个布尔表达式,不能写成!a形式
1. int a3=1; 2. System.out.println(a3 != 1);//false 3. System.out.println(!(a3 != 1));//true
6.短路求值
逻辑与&&和短路或||遵守短路求值的规则
System.out.println(10>20&&10/0==0);//false System.out.println(10<20||10/0==0);//true
6.位操作符
按位与 &:二进制按位与 要相同输出1
按位或 |:二进制按位或 两者其中有一个1输出1
按位取反~:如果该位为0则转为1,为1则转为0
按位异或 ^: 二进制按位异或 两者不同时才输出1
0101 1101
0111 0011
^:0010 1110
7.移位运算符
左移:<< 将最左边的数移走,右边补个0
右移:>>将最右边的数移走,最左边符号位左边整数补0,负数补1
java中右移不一定满足移位运算符的性质
无符号右移:>>>
没有无符号左移
8.条件运算符
表达式1?表达式2:表达式3;
第一个表达式为布尔表达式,值为真执行第一个表达式,值为假执行第二个表达式
条件运算符必须把值直接打印或者赋值给另一个变量,不能直接使用
9.案例
boolean flg = true == true ? true : true == false ? false : false;
boolean flg = true == true ? true : true == false ? false : false; System.out.println(flg);//true
10.运算符的优先级
根据自己特定的情况使用括号加运算符