java基础Day4 java语法(2)
类型转换
Demo03
不同类型的数据先转换为同一类型,然后进行运算
低——————————————————————————>高
byte, short, char ——>int ——>long ——>float ——>double
- 强制类型转换:(类型)变量
高————>低
int i = 128;
byte b = (byte)i;//内存溢出,byte最大127
- 自动类型转换
低————>高
double d = (double)i;
注意点:
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换为低容量的时候,强制转换
- 转换的时候可能存在内存溢出或者精度的问题
//操作数比较大的时候,注意溢出问题
int money = 10_0000_0000;//数字之间可以用下划线分割
int years = 20;
int total = money * years;
System.out.println(total);//输出-1474836480,计算的时候溢出
变量
type varName [=value] [{,varName[=value]}];
//数据类型 变量名 = 值; 可以使用逗号隔开来声明多个同类型的变量。(不建议)
变量作用域
Demo04
- 类变量:
public class Demo04 {
//类变量
static double salary = 10000;
public static void main(String[] args) {
System.out.println(salary);//可以直接输出
}
}
- 实例变量
public class Demo04 {
//属性:理解为变量
//实例变量:从属于对象;不初始化会输出此类型的默认值
String name;
int age;
public static void main(String[] args) {
Demo04 demo04= new Demo04();
System.out.println(demo04.name);//输出null
System.out.println(demo04.age);//输出0; 布尔值:默认是false;除了基本类型,其余的默认值都是null
}
}
- 局部变量:在 方法 里面
public static void main(String[] args) {
//局部变量;必须声明和初始化值;只在本方法内有用
int i = 10;
}
常量
初始化之后就不能改变的值
final 常量名 = 值
final static double PI = 3.14//final、static是修饰符,不存在先后顺序
变量命名规范
- 见名知意
- 类成员变量:首字母小写和驼峰原则:除了第一个单词以外,单词首字母大写 eg:monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:全部大写、下划线 eg:MAX_VALUE
- 类名:首字母大写和驼峰原则
- 方法名:首字母小写和驼峰原则
运算符
算术运算符:+ - * / % ++ --
赋值运算符:=
关系运算符:> < >= <= == != instanceof
逻辑运算符:&& || !
位运算符(二进制):& | ^异或:两位相同为0,不相同为1 ~ >> << >>>
2*8怎样计算最快?2*8 = 2*2*2*2
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
<<相当于2;>>相当于/2;位运算效率极高
条件运算符:x ? y : z//如果x==true,则结果为y,否则结果为z
扩展赋值运算符:+= -= *= /=
两个变量或多个变量运算,如果有long类型,结果为long,如果没有long类型,结果都为int。
//关系运算符返回的结果: 布尔值 true false
int a = 10;
int b = 20;
System.out.println(a > b);//flase
System.out.println(a < b);//true
int a = 3;
int b = a++;//先赋值再自增,b=3,a=4
int c = ++a;//先自增再赋值,c=5,a=5
借助Math.工具运算
//短路运算
int f = 5;
boolean g = (f<4)&&(f++<4);
System.out.println(g);//输出false
System.out.println(f);//输出5,短路了,根本没进行后面的运算
f =5 ;
boolean h = (f>4)&&(f++<4);
System.out.println(h);//输出false
System.out.println(f);//输出6;没有短路,f在比较后进行了自增
f = 5;
boolean i = (f>4)&&(f++<6);
System.out.println(i);//输出true,先比较再自增
System.out.println(f);//输出6
//字符串连接符 + ,String
System.out.println(""+a+b);//输出1020
System.out.println(a+b+"");//输出30
包机制:文件夹
一般利用公司域名倒置作为包名eg:www.baidu.com com.baidu.www
放在包中时,文件的首行是
pakage pkg1[. pkg2[. pkg3...]];
导入包:
import package1[.package2...].(classname|*);//*指导入这个包下所有的类
ctrl+d:复制当前行到下一行
JavaDoc
JavaDoc用来生成自己的API文档
/**
* @author 作者名
* @version 版本号
* @since 指明需要最早使用的jdk版本
* @param 参数名
* @return 返回值情况
* @throws 异常抛出情况
*/
- 通过命令行 javadoc 参数 java文件
在文件资源管理器中
C:\Users\xieyueting\Desktop\javaSE\code\JavaSE\Basic Syntax\src>javadoc -encoding UTF-8 -charset UTF-8 Doc.java
会生成
打开index.html
2. 通过IDEA生成JavaDoc文档
https://blog.csdn.net/qq_44122193/article/details/114789427