类型转换
-
字节小(容量小)----------------------------------------------------------------------------------->字节大(容量大)
byte,short,char -> int -> long ->float-> double(小数的优先级大于整数)
-
运算中,不同类型的数据先转化为同一类型,然后进行运算。
-
大转小强制转化,小转大自动转化
注意点
-
不能对布尔值进行转换
-
不能把对象类型转换为不相干的类型
-
把高容量转换转换到低容量的时候,强制转换
-
转换的时候可能存在内存溢出,或者精度问题
public class Demo04 {
public static void main(String[] args) {
int i=128;
byte b=(byte) i;//内存溢出,byte范围(+127~-128)输出结果有误为-128
System.out.println(b);
//强制转化 (类型)变量名 高->低
//自动转换 什么都不做 低->高
double c=i;
System.out.println(c);
//JDK新特性,数字之间可以用下划线分割,输出时无误
//操作比较大的数字时候,注意溢出问题
int money=10_0000_0000;
int years=20;
long total=money*((long)years);//先把一个数强制转换为long
System.out.println(total);
}
}
变量
注意事项:
-
每个变量都有类型,类型可以是基本类型,也可以是引用类型
-
变量名必须是合法的标识符
-
变量声明是一条完整的语句,因此每一个声明都必须以分号结
变量作用域
-
类变量 (写在类里面的)
-
实例变量 (可以写在类中间)
-
局部变量 (写在方法里面)
public class Demo05 {
//实例变量:从属于对象,不需要初始化值,如果不初始化值数值型默认为0
// 除了基本类型默认值都为null,布尔值默认为false
String name;
int age;//类变量 static
static double salary=2500;public static void main(String[] args) {
//局部变量:必须声明和初始化值
int i=0;
System.out.println(i);//实例变量:变量类型 变量名字 =new Demo05()
Demo05 demo05 = new Demo05();//先敲 new Demo05()然后alt+enter+ernter
System.out.println(demo05.age);//类变量:static
System.out.println(salary);}
}
-
常量
初始化后不能再改变值,不会变动的值。
属于一种特殊的变量,被设定后,在程序运行过程中不允许被改变。
常量名一般使用大写字符。
public class Demo06 {
//final属于修饰符,不存在先后顺序
static final double PI=3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
变量命名规范:
-
所有变量、方法、类名:见名知意
-
类成员变量:首字母小写和驼峰原则:monthSalary
-
局部变量:首字母小写和驼峰原则
-
常量:大写字母和下划线:MAX_VALUE
-
类名:首字母大写和驼峰原则:Man,GoodMan
-
方法名:首字母小写和驼峰原则:run(),runRun()
基本运算符
-
算数运算符:+,-,*,/,%,++,--
-
赋值运算符:=
-
关系运算符:>,<,>=,<=,==,!=instanceof
-
逻辑运算符:&&,||,!
-
位运算符:&,|,^,~,>>,<<,>>>
-
条件运算符:?:
-
扩展赋值运算符:+=,-=,*=,/=
优先级:
package operator;
//计算时会遇到的数据类型转变
public class Demo02 {
public static void main(String[] args) {
long a=1233339999393939933L;
int b=122;
short c=10;
byte d=8;
System.out.println(a+b+c+d);//结果为long
System.out.println(b+c+d);//结果为int
System.out.println(c+d);//结果为int
//计算数值时会自动转换为其中最大容量的类型,
// 如果类似short+byte同级别的转化为上一级int
}
}
package operator;
public class Demo03 {
public static void main(String[] args) {
//关系运算符返回结果:true false 布尔值
int a=10;
int b=20;
int c=21;
System.out.println(c%a);//取余,模运算
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
}
}
package operator;
public class Demo04 {
public static void main(String[] args) {
//++自增 --自减
int a=3;
int b=a++;//后置自增,a先不变,代码执行结束后再增加
int c=++a;//前置自增,a先自增,代码执行再赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算,math工具
double pow = Math.pow(2, 3);
System.out.println(pow);
}
}
package operator;
public class Demo05 {
public static void main(String[] args) {
//逻辑运算符:与(&&)或(||)非(!)
boolean a=true;
boolean b=false;
System.out.println("a&&b:"+(a&&b));//全真为真
System.out.println("a||b:"+(a||b));//全假为假
System.out.println("!(a&&b):"+!(a&&b));//真为假
//有一个短路操作,当有 (b&&a) 时,已经判断b为假了,
// 整体返回false,a就不会去运行了。
}
}
package operator;
public class Demo06 {
public static void main(String[] args) {
/*
位运算符
A=0011 1100
B=0000 1101
----------------------------------
A&B=0000 1100(与运算 同1为1)
A|B=0011 1101(或运算 有1为1)
A^B=0011 0001(异或运算 相同为0,相异为1)
~B=1111 0010(取反操作)
<< 左移相当于乘2
>> 右移相当于除2
*/
}
}
package operator;
public class Demo07 {
public static void main(String[] args) {
//字符串连接符 +
int a=10;
int b=20;
System.out.println(a+b);//30
System.out.println(""+a+b);//1020
System.out.println(a+b+"");//30
//如果先出现像string类型的字符,会把剩余类型转化为string类型然后进行拼接
//如果后出现string,前面还是运算,后面拼接
}
}
package operator;
//三元运算符
public class Demo08 {
public static void main(String[] args) {
//x?y:z
//如果x==true,则结果为y,否则结果为z
int score =50;
String type=score<60?"不及格":"及格";
}
}
包机制
包的本质就是文件夹
包名一般利用公司域名倒置,如:www.baidu.com,——>包名为:com.baidu.www
定义包(放在所有代码的最开头),package pkg1[.pkg2[.pkg3……]];
导入包,import package1[.package2……].(classname|*);
*为通配符,可以将这个包下所有的类都导进去
import com.wyl.base.*
有时间看阿里巴巴开发手册
JavaDoc生成文档
jdk帮助文档
百度云:链接:百度网盘 请输入提取码 提取码:85dc
-
参数信息
-
@author 作者名
-
@version 版本号
-
@since 指明需要最早使用的jdk版本
-
@param 参数名
-
@return 返回值情况
-
@throws 异常抛出情况
-
package com.wyl.base;
/**类注释
* @author wyl
* @version 1.0
* @since 1.8
*/
public class Doc {
String name;
/**方法注释
*
* @param name
* @return
* @throws Exception
*/
public String test(String name)throws Exception
{
return name;
}
}
通过命令行把java代码编译成文档
作业:学会查找使用IDEA生成JavaDoc文档
(2条消息) 使用IDEA生成JavaDoc文档(IDEA2020.3.2)_Gyur Miyonesqn的博客-CSDN博客