java基础笔记
JAVA基础
数据类型
基本数据类型(Primitive Type)
数值类型:
整数类型:
byte占1字节
short占2字节
int占4字节
long占8字节,long类型数据后要加L(小写l也行,但是容易看成1,尽量用大写L)
整数拓展: 二进制0b 十进制 八进制0 十六进制0x
int i =10;
int i2 =010;//八进制0,转为十进制是8
int i3 =0x10;//十六进制0x,转为十进制是16,0~9和A~F(10-16)
浮点类型:
float 占4字节,float类型数据后要加F
double 占8字节
浮点数拓展
float f = 0.1f;//0.1
double d = 1.0/10;//0.1
此时f和d都是0.1
System.out.println(f==d);//false
输出却等于false
float f1 = 23112165456156f;
float f2 = f1+1;
System.out.println(f1==f2);//true
此时明显两者不相等,得出结果却是true
结论: 浮点数是有限长度的离散数, 会舍入误差,接近但不等于。所以最好避免使用浮点数进行比较,采用BigDecimal这个数学工具类进行操作,特别是在使用重要的数据时。
字符类型:
char占2字节
字符拓展:
所有字符的本质还是数字,采用Unicode编码
char c1='A';
char c2='中';
System.out.println(c1);
System.out.println((int)c1);
System.out.println(c2);
System.out.println((int)c2);
char c3='\u0061';
System.out.println(c3);
输出结果为:
A
65
中
20013
a
boolean类型:
占1位,其值只有true和false
补充:1B(byte,字节)=8bit(位)
String不是基本类型
引用数据类型(Reference Type)
类
接口
数组
类型转换
运算中,不同类型的数据先转化为同一类型,然后进行运算。
低——————————————————>高
byte,short,char-->int-->long-->float-->double
强制转换: (类型)变量名 高-->低
int i= 128;
byte b= (byte)i;
System.out.println(i);//128
System.out.println(b);//-128
由于byte类型的数据最大值为127,所以此时发生了内存溢出。
自动转换: 低-->高
int i= 128;
double b= i;
System.out.println(i);//128
System.out.println(b);//128.0
类型转换的注意点:
1. 不能对布尔值进行转换
2. 不能把对象类型转换为不相干的类型
3. 在把高容量转换到低容量的时候,强制转换
4. 转换的时候可能存在内存溢出,或精度问题。
例如:
int money = 10_0000_0000;
int years = 20;
int total = money*years;//内存溢出
long total2= money*years;//计算后再转换,仍然溢出
long total3 =money*((long)years);//先转换再计算
System.out.println("total:"+total);
System.out.println("total2:"+total2);
System.out.println("total3:"+total3);
输出结果:
total:-1474836480
total2:-1474836480
total3:20000000000
变量
变量的定义语句虽然可以一行写多个例如 int a=1,b=2,=c=3 但是为了代码的可读性,应一行只定义一个变量。
根据变量作用域可分为类变量,实例变量和局部变量。
public class Test3 {
static int a=0;//类变量
String str ="hello word";//实例变量
public void method(){
int i=0;//局部变量
}
}
具体例子:
public class Test3 {
//类变量 static
static double salary = 2500;
//实例变量:从属于对象,如果不自行初始化则为这个类型的默认值 0 0.0
//布尔值默认是:false
//除了基本类型,其余的默认值都是null
String name;
int age;
public static void main(String[] args) {
//局部变量:必须声明和初始化
int i=10;
System.out.println(i);//10
//变量类型 变量名字 = new Test3();
Test3 test3 = new Test3();
System.out.println(test3.name);//null
System.out.println(test3.age);//0
//类变量 static
System.out.println(salary);//2500.0
}
}
类变量和类同生同死
常量
初始化后不能再改变值,可以理解为特殊的变量。
定义:final 常量名 = 值;
常量名一般使用大写字符
public class Test4 {
//修饰符不分先后顺序,即和final static 无差别
static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
变量命名规范:
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
运算符
位运算符计算速度较快
计算2*8最快的方式为2<<3
包
package pkg1[.pkg2[.pkg3...]];
一般利用公司域名倒置作为包名:com.baidu.www
JavaDoc
javadoc命令是用来生成自己API文档的
参数信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
CMD命令行中输入地址>javadoc -encoding UTF-8 -charset UTF-8 代码文件名
浙公网安备 33010602011771号