java环境变量的配置:
JDK:JAVA_HOME=JDK的安装路径、PATH=%JAVA_HOME%\bin
java程序的执行流程
java首先需要利用文本编辑器编写java源程序,源文件的后缀为.java,再利用编译器(javac)将源程序编译成字节码文件,字节码文件的后缀为.class,最后利用虚拟机解释运行
进制问题:
二进制:0-1,满2进1,在程序中以0b/0B开头
八进制:0-7,满8进1,在程序中以0开头
十进制:0-9满10 进1
十六进制:0-9,A-F,满16进1,在程序中以0X/0x开头
进制的转换:十进制转换为二进制:不断地除以2,余数倒排
二进制转换为十进制:
十进制转换为其他进制:向哪个进制转化就不断除以几,并将余数倒排
其他进制转换为十进制:从这个进制的最低位开始,然后按位次乘以当前进制的位次次幂,求和
每一个二进制数字成为1位,bit(b)
字节--Byte--B 1B = 8b
千字节 - KB 1KB =2^10B
兆字节 - MB -> GB -> TB -> PB
8Mb = 1MB
基本数据类型:
数值型:
整数型:byte --字节型-- 一个字节 -2^7~2^7-1 -128~127
short ---短整型--2个字节 - 2^15~2^15-1 -32768~32767
int --整型--4个字节 -2^31~2^31-1 正负21亿
long--长整型----8个字节 -2^63~2^63-1需要以L/l结尾
浮点型:float 单精度 - 4个字节 需要以f结尾 -10^38~10^38
double 双精度 - 8个字节 java中的浮点型默认为double -10^308~10^308
字符型 :char - 2个字节 0~65535 存储用的utf-8 一个字符能存储下一个中文汉字
布尔型 :
boolean - 八分之一个字节 默认值为false
基本数据类型对应的包装类型及默认值
short Short (short)0
int Integer 0
long Long 0L
char Character \u0000
double Double 0.0d
float Float 0.0f
boolean Boolean false
public class DefaultValueTest {
static int intA;
static boolean blnA;
public static void main(String[] args) {
int intB;
boolean blnB;
System.out.println(intA); //输出0
System.out.println(blnA); //输出false
//System.out.println(intB); //编译不通过
//System.out.println(blnB); //编译不通过
}
}
注意点: 基本数据类型的默认值只有在类中的时候才可以使用,在方法中需要对基本数据类型赋值之后才能使用,否则编译不通过
小技巧: 在程序中如果某些数据可能返回空值,那么最好使用包装类,否则在转换的时候可能出现异常,null无法转化为基本数据类型,而引用类型可以为null,虽然会牺牲一些转换效率,但可以避免持久化数据时产生的一些异常
引用数据类型(reference Type):指向一个对象,不是原值,指向对象的变量称为引用变量
数组[] 类 class 接口
数据类型的转换
自动类型转换/隐式转换
byte b = 125
int i = b
规律一:小的类型自动转换为大的类型
规律二:整型类型可以自动转化为浮点类型,可能会产生舍入误差
规律三:字符型可以自动提升为整数
char c = 'a'
int i = c
强制类型转换/显式转换
int i = 134;
byte b = (byte)i
规律一:当把大的类型转化为小的类型的时候,因为补码的换算问题,所以可能会产生一些想不到数据
规律二:小数在转化为整数的时候是舍弃小数位
基本数据类型和引用类型的对比
基本数据类型 | 引用数据类型 |
在栈中进行分配 | 在堆中进行分配,堆的读写速度远远不如栈 |
变量名指向具体的数值 | 变量名执行存数据对象的内存地址,即变量名指向hash值 |
变量在声明之后java就会立刻为它分配内存空间 | 变量声明的时候不会分配内存,只是存储了一个内存地址 |
基本类型之间的赋值都是创建新的拷贝 | 对象之间的赋值都是引用的传递 |
“==”和“!=”是在比较值 | "=="和"!="之间是在比较引用地址,需要自己实现equals()方法 |
基本数据类型变量的创建和销毁很快 | 对象的销毁需要JVM去做,垃圾回收机制(GC) |
运算符
+-*/% ++ --
注意:
1、byte short char在运算的时候自动提升为Int
2、整型在运算的时候保存类型不变
3、小类型和大类型运算,结果一定是大类型
4、任意整数/0 -- ArithmeticException - 算术异常
任意非零数字/0.0 任意非零小数/0 - infinity 无穷大
0/0.0 0.0/0.0 0.0/0 NaN Not a Number 非数字