文章目录
类型转换:由低到高:byte,short,char—> int —> long—> float —> double
标识符注意点:
- 所有的标识符都应该以字母、美元符、或者下划线开始(例age、$salary、__1_value)
- 首字符之后可以是字母、美元符、下划线或数字的任何字符组合
- 不能使用关键字作为变量名或方法名
关键字
- 标识符是大小写敏感的
数据类型:
- 强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用,否则报错
java基本数据类型
Java引用数据类型
- 类——class、string
- 接口——interface
- 数据——【】
注:避免使用浮点数进行比较,因为浮点数是有限且离散的,存在舍入误差,结果接近但不等于
float f = 0.1f;//0.1
double d = 1.0/10;//0.1
System.out.println(f==d);//结果false
float d1 = 2020202020202020f;
float d2 = d1+1;
System.out.println(d1==d2);//结果true
强制转换:(类型)变量名
char c1 = 'A';//97=a A=65
char c2 = '中';//中=20013
System.out.println(c1);
System.out.println((int)c1);//强制转换
System.out.println(c2);
System.out.println((int)c2);//强制转换
//所有的字符本质还是数字
char c3 = '\u0061';//a=\u0061
System.out.println(c3);
类型转换:由低到高:byte,short,char—> int —> long—> float —> double
注意:
- 不能对boolean类型进行类型转换。
- 不能把对象类型转换成不相关类的对象。
- 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
- 转换过程中可能导致溢出或损失精度
- 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
运算中,不同类型的数据先转化为同一类型,然后进行运算
变量:就是可以变化的量(数据类型 变量名 = 值)
int a, b, c; // 声明三个int型整数:a、 b、 c
int d = 3, e = 4, f = 5; // 声明三个整数并赋予初值
byte z = 22; // 声明并初始化 z
String name = "SWY"; // 声明并初始化字符串 name
double pi = 3.14159; // 声明了双精度浮点型变量 pi
char x = 'x'; // 声明变量 x 的值是字符 'x'
Java变量要素包括变量名,变量类型和作用域
变量作用域分:
- 类变量(写在类中需要关键字static)
- 实例变量(从属于对象,无关键字,如果不对其初始化,将为默认值)
- 局部变量(定义在方法中的变量,必须声明和初始化值,只在该方法内有效,不从其他方法输出)
package com.hua.base;
public class Demo07 {
//类变量:static
static double salary=2500;
//属性:变量
//实例变量:从属于对象;如果不对变量初始化值,那么变量将默认为这个类型的默认值 0 0.0
//布尔值:默认是false
//除了基本类型, 其余的默认值都是null
String name ="沈涴喻";
int age;
//main方法
public static void main(String[] args) {
//局部变量:必须声明和初始化值
//局部变量只在该方法内有效,不能从其他方法输出
int i=10;
System.out.println(i);
//变量类型 变量名字=new Demo07();
Demo07 demo07=new Demo07();
System.out.println(demo07.age);
System.out.println(demo07.name);
//类变量 static
System.out.println(salary);
}
}
注意:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法标识符
- 声明必须以分号结束
常量:被定义后不可以改变的量
final 常量名 = 值;
final double PI = 3.14;
常量名一般使用大写字符
变量命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量、局部变量和方法名:首字母小写和驼峰原则(lastName、goodDog())
- 常量:大写字母和下划线(MAX_VALUE)
- 类名:首字母大写和驼峰原则(GoodMan)
运算符
一、算术运算符
//基本四则运算
c = a + b; // "+"加法:左右操作数相加
c = a - b; // "-"减法:左操作数减右操作数
c = a * b; // "*"乘法:左右操作数相乘
c = a / b; // "/"除法:左操作数除以右操作数
c = a % b; // "%"取余:左操作数除以右操作数得到其余数
//自增/自减运算
a++; // 自增:操作数值加1
b--; // 自减:操作数值减1
//增量运算符
a += b; // 该式等价于"a = a + b"下同
a -= b;
a *= b;
a /= b;
a %= b;
注意:++是操作位先赋值再运算,++是操作位先运算再赋值
二、关系运算符
a == b; // 判断a与b是否相等,相等则条件为真
a != b; // 判断a与b是否不等,不等则条件为真
a > b; // 判断a是否大于b,大于则条件为真
a < b; // 判断a是否小于b,小于则条件为真
a >= b; // 判断a是否大于等于b,大于等于则条件为真
a <= b; // 判断a是否小于等于b,小于等于则条件为真
int a = 10;
int b = 20;
a == b; // false
a != b; // true
a > b; // false
a < b; // true
b >= a; // true
b <= a; // false
三、逻辑运算符
逻辑运算符分为与(&&)或(||)非(!)
package com.hua.Operator;
//逻辑运算符 与and 或or 非
public class Demo05 {
public static void main(String[] args) {
boolean a=true;
boolean b=false;
System.out.println("a && b:"+(a&&b));//两个变量都为真,结果就是true
System.out.println("a || b:"+(a||b));//两个变量有一个为真,结果就是true
System.out.println("!(a && b):"+!(a&&b));//如果是真则为假,如果是假则为真
//短路运算
int c=5;
boolean d=(c<4)&&(c++<4);//执行到c<4时,发现为错,那么后面的代码就不会执行
System.out.println(d);
System.out.println(c);
}
}
注:短路运算需当两个操作位都为ture时,结果为ture,但当第一个输出结果为false时,则结果定为false,后面的操作则不会被执行
四、位运算符
- 一元运算符:~
- 二元运算符:&、|、^、<<(相当于*2)、>>(相当于/2)
package com.hua.Operator;
public class Demo06 {
public static void main(String[] args) {
/*
A=0011 1100
B=0000 1101
A&B 两个都为1则为1,有一个为0则为0 则为0000 1100
A|B 两个都为0则为0,有一个为1则为1 则为0011 1101
A^B 两个位置相同为0,否则为1 则为0011 0001
~B 取反 则为1111 0010
2*8=16拆分2*2*2*2
<<=*2 >>=/2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);//2*2*2*2=16
}
}
五、条件运算符
条件运算符也成为三元运算符,该运算符需3个操作位,格式为A?B:C,A为真结果为B,否则为C
package com.hua.Operator;
public class Demo08 {
public static void main(String[] args) {
//三元运算符
// x ? y : z
//如果x==true,则结果为y,否则为z
int score =50;
String type = score<60 ?"不及格":"及格";//须掌握
//if
System.out.println(type);
}
}