学习资源来自哔哩哔哩——遇见狂神说——狂神说Java
目录
数据类型:
long定义的必须在数字后面+L
float定义的要在数字后面加F
如
long num1=30L;
float num2=50.1F;
字符
char name='a';
字符串
string name=“abc”
布尔值
boolean flag=true;
boolean flag=false
强制转换:
public class Hello {
public static void main(String[] args) {
int i=127;
byte b=(byte)i;//强制转换 (类型)+变量名 高到低
//自动转换 低到高
System.out.println(i);
System.out.println(b);
}
}
注意:不能对布尔值进行转换
在把高容量转换到低容量的时候强制转换
转换的时候可能存在内存溢出,或者精度问题
溢出问题,错误示范:
public class Hello {
public static void main(String[] args) {
//操作比较大的数的时候注意溢出问题
int money=10_0000_0000;
int years=20;
int total=money*years;//-1474836480,计算的时候溢出了
long total2=money*years;//默认是int,转换之前已经存在问题了
System.out.println(total);
}
}
正确示范:
public class Hello {
public static void main(String[] args) {
//操作比较大的数的时候注意溢出问题
int money=10_0000_0000;
int years=20;
int total=money*years;//-1474836480,计算的时候溢出了
long total2=money*years;//默认是int,转换之前已经存在问题了
long total3=money*((long)years);//先把需要转换的进行转换
System.out.println(total3);
}
}
变量
由低到高: byte,short,char,int,long,float,double
public class day2 {
//类变量 static
static double salary=2500;
//实例变量:从属于对象;如果不自行初始化,这个类型的默认值 0 0.0
//布尔值:默认是false
//除了基本类型其余默认值都是null
String name;
int age;
public static void main(String[] args) {
//局部变量:必须声明和初始化值
int i=10;
System.out.println(i);
day2 day2=new day2();
System.out.println(day2.age);
System.out.println(day2.name);
System.out.println(salary);
}
}
常量:
public class day2 {
//修饰符,不存在先后顺序
static final double PI=3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
final:常量
static:类变量
◆类成员变量:首字母小写和驼峰原则: monthSalary
◆局部变量:首字母小写和驼峰原则
◆常量:大写字母和下划线: MAX VALUE
◆类名:首字母大写和驼峰原则: Man, GoodMan
◆ 方法名:首字母小写和驼峰原则: run(), runRun()
驼峰原则:除了第一个字母小写后面的字母首字母都大写
IDEA:ctrl+D:复制当前行到下一行
运算符:
&&:与 ||:或 |:非
public class day2 {
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));
//注意短路运算
int c=5;
boolean d=(c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
}
}
所谓短路运算如图所示,就是在c<4直接false后会直接得出结果,所以不会计算c++,所以最后c的值还是5
位运算符:&,|,^,~,>>,<<,>>>
/*
A=0011 1100
B=0000 1101
A&B=0000 1100 与
A|B=0011 1101 或
A^B=0011 0001 异非
~B=1111 0010 取反
*/
与:上面与下面如果都是1则为1,否则为0
或:上面与下面如果都是0则为0,否则为1
异或:上面与下面如果相同则为0,否则为1
<<左移 *2 <<右移 /2
位运算优点:效率高
字符串连接符+ 使用时的区别
条件运算符
? :
x?y:z
如果x==true,则结果为y,否则结果为z
public class day2 {
public static void main(String[] args) {
int score=50;
String type=score<60?"不及格":"及格";
System.out.println(type);
}
}