标识符
public class Ademo01 {
// java标识符
public static void main(String[] args) {
String 星星="study";//一般不建议变量直接用中文表示
// 大小敏感
String Man="qingtong";
String man="baiyin";
String name="qingtong";
System.out.println(Man);
System.out.println(man);
}
}
数据基本类型
public class Ademo02 {// 八大基本类型
public static void main(String[] args) {
int num1=10;
byte num2=20;
short num3=30;
long num4=30L;//Long类型要在数字后面加上L
// 小数:浮点数
float num5=50.1F;//float类型要在数字后面加上F
double num6=3.14159;
// 字符
char name='中';//char name='中国';这是不对,代表了俩个字符
/* 字符串String:不是关键字,是类
String name="中国" */
//布尔型:是非
boolean flag=true;
//boolean flag=false;
}
}
变量
所有变量都必须先定义才能使用
public class Ademo03 {//所有变量都必须先定义才能使用
public static void main(String[] args) {
/* String a;
System.out.println(a);这样子是不可以的,因为在局部变量里面需要先定义才能使用
*/
String a="hello";//这里是可以的因为,已经定义了
System.out.println(a);
}
}
类变量、示例变量、局部变量
public class Bdemo01 {//变量 分为:实例变量、类变量、局部变量
//实例变量:从属于对象 可以不给初值
// 在实例变量如果不进行初始化,这个类型的默认值 0或0.0 布尔值:默认类型是false 除了基本类型,其余的默认值都是null
String name;
int age;
//类变量(静态变量)
static double salary=5000;//它必须要加上static关键字 如果不加,在main方法中是不能输出的
public static void main(String[] args) {//main方法:
//局部变量:必须声明和初始化
int i=10;
System.out.println(i);//10
//变量类型 变量名=new Bdemo01()
Bdemo01 bdemo01=new Bdemo01();
System.out.println(bdemo01.age);//0
System.out.println(bdemo01.name);//null
//类变量
System.out.println(salary);//5000.0
}
//其他方法
public void add(){
}
}
常量
public class Bdemo02 {//常量
//语法: fainl 常量名=值
static final double PI=3.14;//final static double PI=3.14;这样也可以,因为修饰符不存在先后顺序
public static void main(String[] args) {
System.out.println(PI);//3.14
}
}
进制的类型
public class Ademo04 {
public static void main(String[] args) {
//扩展知识:进制:二进制:0b开头 十进制:0开头 十六进制:0x开头
//整型
int i = 10;//十进制
int i2 = 010;//八进制
int i3 = 0x10;//十六进制
System.out.println(i); //10
System.out.println(i2); //8
System.out.println(i3); //16
//浮点数扩展
float f=0.1f;//0.1
double d=1.0/1.0; //0.1
System.out.println(f==d);//false
//总结:float 和double是不同的数据类型,并且在最好完全使用浮点数进行比较
float d1 = 2131231231f;
float d2=d1+1;
System.out.println(d1==d2);//true
//总结;float 是有限的,离散的,舍入误差,大约 接近但不等于
}
}
类型转换
public class Ademo05 {
public static void main(String[] args) {//类型转换
//运算中,不同类型的数据先转化为同一类型,然后进行运算。
//强制类型转换: (类型)变量名 高——>低
//自动类型转换: 低——>高
int i =128;
byte b = (byte)i;
double d=i;//自动类型转换: 低——>高 128.0
System.out.println(i);//128
System.out.println(b);//-128 因为byte的范围是-128~127 这里产生了溢出问题
}
}
运算符
public class Bdemo04 {
public static void main(String[] args) {
//快捷键:ctrl+D :复制当前一行到下一
//算术运算符: +,-,*,/,%,++,--
//二元运算符
int a=10;
int b=15;
int c=20;
int d=25;
System.out.println(a+b);//25
System.out.println(a-b);//-5
System.out.println(a*b);//150
System.out.println(a/b);//0
System.out.println(a++);//10
System.out.println(++b);//16
System.out.println(c--);//20
System.out.println(--d);//24
//基本类型的扩展
long aa=123123123123123L;
double aa1=123321;
float bb1=10;
float bb2=12;
int bb=123;
short cc=10;
byte dd=8;
System.out.println((aa+bb+cc+dd)); //Long类型 123123123123264
System.out.println((bb + cc + dd));//Int类型 141
System.out.println((cc + dd));//Int类型 18
System.out.println(aa1+aa);//double类型 1.23123123246444E14
System.out.println(aa1+dd);//double类型 123329.0
System.out.println(aa1+bb1);//double类型 123331.0
System.out.println(bb1+bb2);//float类型 22.0
}
}
/*总结:如果两个操作数有一个为Long, 则结果也为long
没有long时,结果为int。即使操作数全为shot,byte,结果也是int.
如果两个操作数有一个为double, 则结果为double. 只有两个操作数都是float, 则结果才为float.
*/
关系运算符
public class Bdemo05 {
public static void main(String[] args) {
//关系运算符:>,<,>=,<=,== ,!= 关系运算符返回的结果是布尔类型,也就是false或true
int a=10;
int b=20;
System.out.println(a>b);//false
System.out.println(a<b);//true
System.out.println(a>=b);//false
System.out.println(a<=b);//true
System.out.println(a==b);//false
System.out.println(a!=b);//true
}
}
逻辑运算法
public class Cdemo01 {
public static void main(String[] args) {
//逻辑运算符 :&&(与) ||(或) !(非):去反
boolean a=true;
boolean b=false;
System.out.println(a&&b);//false
System.out.println(a||b);//true
System.out.println(!(a&&b));//true 如果为假变为真
//短路运算符
int c=5;
boolean d=(c<4)&&(c>4);//如果判断一个为假就不会在执行之后
System.out.println(d);//false
/*位运算: &,|,^,~ , >>(右移),<<(左移),>>>
例如: A 0011 1100
B 0000 1101
A&B=0000 1100 与运算:如果各自对应的位都为1,才为1
A|B=0011 1101 或运算:如果各自对应都为0,才为0,否则为1
A^B=0011 0001 异或:如果对应为相同就为0,不相同就为1
~B=1111 0010 取反:和原来相反
*/
//>>(右移):相当与除2 <<(左移):相当与乘2
//二进制 移动(左移)
/*0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 3
右移同理:只是反过来而已
*/
System.out.println(2<<3);//16
}
}
遇见狂神说