类型转换
由于java是强类型语言,进行有一些运算的时候,需要用到类型转换
低--------------------------------------------------高
byte>short>char>int>long>float>double
运算中,不同类型的数据要先转换为同一类型,然后进行运算(重点)
强制转换 (类型)变量名 高–低
自动转换 低—高
int i1 = 128;
byte b = (byte)i1;//内存溢出
System.out.println(i1);
System.out.println(b);
int i2 = 128;
double d = i2;
System.out.println(i2);
System.out.println(d);
1.布尔值不能进行转换
2.不能把对象类型转换不相干的类型
3.在容量转换低容量的时候,强制转换
4.转换的时候可能存在内存溢出或者精度问题!
取整数部分,不会四舍五入
System.out.println((int)23.7);
System.out.println((int)-45.89f);
运算中,不同类型的数据要先转换为同一类型,然后进行运算
//操作比较大的数的时候,注意溢出的问题
//jdk7新特性,数字之间可以用下划线
int money = 10_0000_0000;
int years = 20;
int total = money*years;//-1474836480,数据溢出
long total2 = money*years;
System.out.println(total);
System.out.println(total2);//-1474836480,因为计算的时候默认是int,转换之前已经存在问题了。
long total3 = ((long) money*years);
long total4 = money*((long)years);
System.out.println(total3);
System.out.println(total4);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yEcIxyov-1600875408192)(C:\Users\25343\AppData\Roaming\Typora\typora-user-images\image-20200922101942576.png)]
变量
java是一种强类语言,每一个变量都必须声明其类型
java变量是程序中最基本的储存单元,包括变量名,变量类型,作用域。
数据类型 变量名 = 值;
int a,b,c;不建议怎么定义变量
注意事项:
- 每一个变量都有类型,类型可以是基本数据类型,也可以引用类型
- 变量名必须是合法的标识符。
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
变量作用域
类变量:(静态变量) 类中独立于方法之外的变量
实例变量:方法的外面,类的里面。如果不初始化,这个类型的是默认值 0或者0.0,布尔值是false,除了基本类型,其他的默认值都是null。(是在类声明的内部但是在类的其他成员方法之外声明的)
局部变量:必须声明和初始值
public class Variable{
static int allClick = 0;//类变量(静态变量)
String str = "hello world";//实例变量
public void method(){
int i = 0;//局部变量,必须声明和初始值**
}
}
static:静态的
static{}静态代码块
**常量:**常量是一种特殊的变量,它被设定后,在程序过程中不允许被改变。
关键字:final 常量名 = 值;
常量名一般使用大写
(重点)修饰符,不存在先后顺序
static final double PI1 = 3.14;
final static double PI2 =3.14;
变量的命名规范
所有变量、方法、类名:见名其意
类成员变量、局部变量、方法名:首字母小写和驼峰原则(除了第一个单词以外,后面的单词首字母大写)lastName、runRun。
常量:大写字母和下划线:Man_VALUE
类名:首字母大写和驼峰原则:GoodMan
运算符
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R16OoKLz-1600875408194)(C:\Users\25343\AppData\Roaming\Typora\typora-user-images\image-20200922150530461.png)]
整数类型相加是时候有long类型,结果类型会是long类型,没有long类型的,无论有不有int类型,结果类型都为int类型。
有double类型时结果类型为double类型。
a++:先赋值,后自增
++a:先自增,后赋值
a–:先赋值,后自减
–a:先自减,后赋值
//幂运算
Math使用数学工具类
double pow = Math.pow(3, 2);//3^2=3*3=9.0
System.out.println(pow);
短路运算
如果前面的的运算已经为flase了,后面的运算不执行了
//短路运算
int c =5;
boolean b2 = (c<4) && (c++<4);
System.out.println(b2);
System.out.println(c);
位运算
A = 0011 1100
B = 0000 1101
A&B(与) = 0000 1100 两个数都为1结果为1,否则为0
A|B(或) = 0011 1101 两个数都为0价格为0,否则为1
A^B(异惑运算) = 0011 0001 如果两个位置相同为0,否则为1
~B(取反) = 1111 0010 B数完全取反
A = 0011 1100
B = 0000 1101
A&B(与) = 0000 1100 两个数都为1结果为1,否则为0
A|B(或) = 0011 1101 两个数都为0价格为0,否则为1
A^B(异惑运算) = 0011 0001 如果两个位置相同为0,否则为1
~B(取反) = 1111 0010 B数完全取反
重点知识
*运算效率极高的
<< 左移 相当于"数字"2
<< 右移 相当于"数字"/2
2*8 = 16 2*2*2*2 (2<<3)
运算效率极高的
<< 左移 相当于"数字"*2
>> 右移 相当于"数字"/2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 0101 5
0000 0110 6
0000 0111 7
0000 1000 8
0000 1001 9
0000 1010 10
0000 1011 11
0000 1100 12
0000 1101 13
0000 1110 14
0000 1111 15
0001 0000 16
*/
**字符串连接符 + **
字符串连接符 + ,String,+ 运算两边有一方到String类型,另外一边的操作转换String连接。
int a = 10;
int b = 20;
//字符串连接符 + ,String,+ 运算两边有一方到String类型,另外一边的操作转换String连接。
System.out.println(""+a+b);//String在前面,后面进行拼接
System.out.println(a+b+"");//String在后面,前面依旧进行运算
System.out.println(a+b+""+b+a);//只要不是最末尾,String后面会拼接。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8480Ok61-1600875408195)(C:\Users\25343\AppData\Roaming\Typora\typora-user-images\image-20200922175845293.png)]
三元运算符
//三元运算符
public static void main(String[] args){
//x ? y :z
int bcs = 100;
String type = bcs<90 ? "不及格" : "及格";
//努力学习做强大的人 ?人生巅峰 : 工地搬砖
}
包机制
一般使用公司域名倒置作为包名:www.baidu.com com.abidu.www
com.bac.包名
为了能够使用某一个包的成员,我们需要在java程序中明确导入该包,使用import语句可完成此功能
*是通配符,导入所有的包
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Snb9R4W-1600875408196)(C:\Users\25343\AppData\Roaming\Typora\typora-user-images\image-20200922182611001.png)]
JavaDoc
javaDoc命令是用来生成自己API文档的
参数信息
@author作者名
@version版本号
@since 指明需要最早使用jdk版本
@param参数名
@return返回值情况
@throws异常抛出情况
生成API文档
- 进入java文件目录
- javadoc -encoding UTF-8 -charset UTF-8 文件名(encoding是java代码编码,-charset是对生成文档所用的编码)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oImZMkb3-1600875408198)(C:\Users\25343\AppData\Roaming\Typora\typora-user-images\image-20200922184632294.png)]
IDEA生成javadoc文档