目录
java程序的运行机制
编译型与解释型
编译器是将一个程序作为一个整体进行翻译,而解释器是一条一条的翻译一个程序
标识符
概念:
类名、变量名以及方法名都被称为标识符。
所有标识符均以字母(A-Z或a-z)、美元符($)、下划线(_)开头。
字节
位(bit) :
计算机内部数据储存的最小单位,11001100是一个八位二进制数。
字节(byte) :
是计算机中数据处理的基本单位,习惯用大写B表示。
进制
进制表示:
二进制(0b) 、八进制(0) 、十进制 、十六进制(0x)
//几进制就是逢几进一
进制转化:
1bit表示1位
1B(byte,字节)=8bit(位)【1B=8b】
十进制转二进制
二进制转十进制
八进制和十六进制
字符类型
float和double
避免使用浮点数进行比较,使用BigDecimal数学工具类
float是有限、离散、舍入误差、大约、接近但不等于的
float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d);
System.out.println("***********");
float a1 = 2468888888f;
float a2 = a1+1;
System.out.println(a1==a2);
字符类型转换
所有字符的本质都是数字
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);//强制转换
System.out.println(c2);
System.out.println((int)c2);//强制转换
类型的强制转换与自动转换
小数的优先级高于整数
强制转换(高-->低)
Alt+Enter 强制类型转换快捷键
自动转换(低-->高)
范围小的变量可以直接赋值给范围大的变量
int i = 127;
byte c = (byte) i; //强制转换
float a = i;//自动转换
System.out.println(c);
System.out.println(a);
表达式的自动类型转换
变量
局部变量
局部变量用于方法中,必须声明和初始化值。
public class Demo02 {
public static void main(String[] args){
//局部变量
int i = 10;
System.out.println(i);
}
}
实例变量
实例变量用于方法的外边,类的里边
public class Demo02 {
//实例变量:从属于对象
//所有数值类型初始化为0/0.0
//布尔值默认值为false
//除基本类型,其余默认值都是null
String name;
int age;
public static void main(String[] args) {
//变量类型 变量名 = new Demo02()
//变量类型出基本类型外,也可自行定义
Demo02 demo02 = new Demo02();
System.out.println(demo02.age);
System.out.println(demo02.name);
}
}
类变量 static
类变量用于方法的外边,类的里边。定义类型前加static
public class Demo02 {
//类变量 static
static double salary = 2500;
public static void main(String[] args){
System.out.println(salary);
}
}
常量
常量名一般大写
格式 : final 常量名 = 值
public class Demo02 {
//常量
//static和final均为修饰符,不区分前后。
static final double PI = 3.14;
public static void main(String[] args){
System.out.println(PI);
}
}
Ctrl+d:复制当前行到下一行
运算符
加减乘除
操作数中有一个为long类型,则结果为long型。
操作数中有一个为double类型,则结果为double型。
java中,两个整数相除结果为整数,向下取整。
long a = 1234567890888L;
int b = 11;
short c = 1;
byte d = 2;
System.out.println(a+d);
System.out.println(c+d);
System.out.println(a*b/c-d);
System.out.println(c*b/c-d);
自增和自减
a++:先赋值,再自增
++a:先自增,再赋值
int a = 3;
int b = a++; //a++ a=a+1
int d = a;
int c = ++a;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
逻辑运算符
位运算
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 (两位均为1,则为1)
A|B = 0011 1101 (两位均为0,则为0)
A^B = 0011 0001 (异或:两位相同则为0,否则为1)
~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
二进制向左移一位,对应十进制数 *2
二进制向右移一位,对应十进制数 /2
位运算优点:效率高
扩展赋值运算符
+= , -= , *= , /=
int a = 10;
int b = 20;
a+=b; //a = a+b
a-=b; //a = a-b
System.out.println(a);
字符串连接符 +
“+”号左侧数为String类型,则另一侧也转换为String型,并连接。
“+”号右侧数为String类型,另一侧依旧运算。
int a = 10;
int b = 20;
System.out.println(a+b);
System.out.println(""+a+b);
System.out.println(a+b+"");
三元运算符
x ? y : z
如果x==true,则结果为y,否则结果为z。
int score = 80;
String type = score < 60 ? "不及格" : "及格";
System.out.println(type);
int score = 50;
String type = score < 60 ? "不及格" : "及格";
System.out.println(type);
ctrl+鼠标左键:查看内部文档
运算符的优先级
包机制
包的本质是一个文件夹
一般利用公司域名倒置作为包名:com.baidu.www
定义包:package
导入包:import
阿里巴巴开发手册
javaDoc
javadoc命令用来生成自己的API文档
终端生成javadoc文档
javadoc 参数 Java文件
javadoc -encoding UTF-8 -charset UTF-8 Doc.java
生成Java文档 编码为UTF-8 字符集为UTF-8 编译成一个文档
使用IDEA生成JavaDoc文档
API介绍
Scanner
用于录入用户键盘输入的数据
使用Scanner接收用户键盘输入的数据,需要三个步骤: