Day03
注释
-
单行注释 //
-
多行注释 /* */
-
//JavaDoc: 文档注释 / ** */
标识符

标识符是大小写敏感的
数据类型
-
强类型语言
要求变量的使用要严格符合规定,所有的变量都必须先定义后才可使用 (安全性高,但速度慢)
![]()
public class Demo02 {
public static void main(String[] args) {
//八大基本类型
//整数
int num1 = 10; //最常用
byte num2 = 20;
short num3 = 30;
long num4 = 40L; //long类型要在后面加L
//浮点数
float num5 = 4.53F; //float类型要在后面加F
double num6 = 3.1415926535;
//字符
char name = '杨'; //只能一个字符
//字符串,String不是关键字,是类
//String name2 = "杨润泽";
//布尔值
boolean flag = true;
//boolean flag = false;
}
-
数据类型拓展
二进制0b 十进制 八进制0 十六进制0x
浮点数拓展
-
浮点数是离散、舍入误差、大约、接近但不等于
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
(银行业务怎么表示?)
BigDecimal 数学工具类
编码 Unicode (97=a;65=A)
转义字符
\t 制表符(table)
\n 换行符
//布尔值扩展
boolean flag = true;
if(flag==true){} //新手
if(flag){} //老手
//Less is More!类型转换
//强制转换 (类型)变量名 高--->低
//自动转换 低--->高
![]()
注意点:
-
不能对布尔值进行转换
-
不能把对象类型转换为不相干的类型
-
在把高容量转换到低容量的时候,强制转换
-
在转换的时候可能存在内存溢出,或者精度问题!
public class Demo05 {
public static void main(String[] args) {
int i = 128;
double b = (byte)i; //内存溢出
System.out.println(i);
System.out.println(b);
//1. 不能对布尔值进行转换
//2. 不能把对象类型转换为不相干的类型
//3. 在把高容量转换到低容量的时候,强制转换
//4. 在转换的时候可能存在内存溢出,或者精度问题!
System.out.println("=========================");
System.out.println((int)23.7);
System.out.println((int)-45.89F);
System.out.println("=========================");
char c = 'a';
int d = c+1;
System.out.println(d);
System.out.println((char)d);
//强制转换 (类型)变量名 高--->低
//自动转换 低--->高
}
}
变量
public class Demo08 {
//类变量 static
static double salary = 2500;
//实例变量:从属于对象(不用初始化) 0 0.0 字符串16位0
//在类里面,方法外面
//布尔值:默认是false
//除了基本类型,其余的默认值都是null
String name;
int age;
public static void main(String[] args) {
//局部变量,必须声明和初始化值
int i = 10;
System.out.println(i);
//变量类型 变量名字 = new Demo08()
Demo08 demo08 = new Demo08();
System.out.println(demo08.age);
System.out.println(demo08.name);
//类变量 static
System.out.println(salary);
}
//其他方法
public void add(){
}
}常量
初始化后不能再改变值!(常量一般使用大写字符)
final
static final double PI = 3.14;
final static double PI = 3.14;
//都可以,修饰符不存在先后顺序![]()
运算符
public class Demo01 {
public static void main(String[] args) {
long a = 13321212123L;
int b = 123;
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
}
}自增++ 自减--
b=a++ 先给b赋值,再自增
b=++a 先自增,再给b赋值
幂运算 2^3
//很多运算,我们会使用一些工具类来操作
double pow = Math.pow(2,3);
System.out.println(pow);逻辑运算
public class Demo02 {
public static void main(String[] args) {
//逻辑运算符 与(and) 或(or) 非
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);
System.out.println(d); //false
System.out.println(c); //5
>>
}
}位运算符
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A^B = 0011 0001
~b = 1111 0010
效率极高!!!
<< *2
>> /2public class Demo03 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b; //a = a+b
a-=b; //a = a-b
//字符串连接符 +
System.out.println(""+a+b); //1020
System.out.println(a+b+""); //30
}
}三元运算符
x ? y : z
如果x==true,则结果为y,否则结果为z
运算符的优先级
优先级 运算符 结合性 1 ()、[]、{} 从左向右 2 !、+、-、~、++、-- 从右向左 3 *、/、% 从左向右 4 +、- 从左向右 5 «、»、>>> 从左向右 6 <、<=、>、>=、instanceof 从左向右 7 ==、!= 从左向右 8 & 从左向右 9 ^ 从左向右 10 | 从左向右 11 && 从左向右 12 || 从左向右 13 ? : 从右向左 14 =、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>= 从右向左 -




浙公网安备 33010602011771号