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);
    }
}

变量命名规范:

  1. 所有变量、方法、类名:见名知意
  2. 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写
  3. 局部变量:首字母小写和驼峰原则
  4. 常量:大写字母和下划线:MAX_VALUE
  5. 类名:首字母大写和驼峰原则:Man,GoodMan
  6. 方法名:首字母小写和驼峰原则: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 代码文件名

posted @ 2023-01-27 16:21  西瓜星冰乐  阅读(18)  评论(0)    收藏  举报