Java基础知识

基础知识

基本概括

本篇主要介绍:

  • 编译基础准备阶段
  • 关键字了解
  • 数据(整数、浮点数)
  • 数据类型的比较与转换
  • 变量:类变量、实例变量、局部变量
  • 常量

编译基础准备阶段

编译型:

Java文件——>class文件的过程;主要是文件全部翻译为计算机可以读的文件;

解释型:

class文件在解释器中运行读写的过程,按步骤进行;

IDEA

下载IDEA IDEA官网

可以自行百度:IDEA优化,工欲善其事,必先利其器!


关键字

KeyWords
abstractassertbooleanbreakbyte
catchcharclassconstcontinue
dodoubleelseenumextends
finallyfloatforgotoif
importinstanceofintinterfacelong
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
teansienttryvoidvolatilewhile

标识符注意点

●所有的标识符都应该以字母(Az或者a-z),美元符、或者下划线开始
首字符之后可以是字母(Az或者a-z),美元符、下划线或数字的任何字符组合
●不能使用关键字作为变量名或方法名。
●标识符是大小写敏感
合法标识符举例:age、$ salary、_vaue、_1_value
●非法标识符举例:123abc、- salary、#abc

public static void main(String[] args){
String 王者荣耀 = "最强王者";
System.out.println(王者荣耀)
}

●可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low


数据

整数

整数进制主要有:二进制0b、八进制0、十进制、十六进制0x,用byte,short,int,long声明

拓展知识

  • byte是有符号的8位类型,范围从**-128到127**
  • short是一个有符号的16位类型。短类型变量的范围为**-32,768到32,767**
  • int是有符号的32位类型,范围为**-2,147,483,648到 2,147,483,647** 。当在表达式中使用字节和短型值时,在求值表达式时将它们提升为int
  • long是一个有符号的64位类型。长型的范围是**-9,223,372,036,854,775,808至9,223,372,036,854,775,807**。表示一个大数时,在数字或文本后面附加一个大写或小写的L

代码展示

public class Demo01 {
    public static void main(String[] args) {
        //整数拓展: 二进制0b,八进制0,十进制,十六进制0x
        int i = 10;
        int i2 = 010;   //八进制
        int i3 = 0b10;  //二进制
        int i4 = 0x10;  //十六进制

        System.out.println(i);	//10
        System.out.println(i2);  //8
        System.out.println(i3);  //2
        System.out.println(i4);  //16
    }
}

浮点数

  • float:有限,离散,舍入误差,大约,接近单不等于

  • double:比较过程需要注意

数据比较【>、<正常,==需要关注】

代码展示

public class Demo01 {
    public static void main(String[] args) {
        //浮点数拓展:银行业务怎么表示?钱
        //BigDecimal    数学工具类
        //BigDecimal num = new BigDecimal("340000000");
        //=========================================

        //float    有限 离散 舍入误差 大约 接近但不等于
        /* double
           最好完全使用浮点数进行比较【重点】
         */
        float f = 0.1f; //0,1
        double d = 1.0/10.0;
        System.out.println("f==d:"+(f==d));//false

        float d1 = 12123312321f;
        float d2 = d1 + 1;
        System.out.println("d1==d2:"+(d1==d2));//true ***
        System.out.println("=============================");
        //=========================================
        if (Double.compare(d,f)==0){
            System.out.println("这里相等");
        }else {
            System.out.println("这里不相等");//执行这个
        }
    }
}

浮点类型比较:在 ***处执行明显是存在+1但是却显示相等,这里出现的相等,是因为由于精度问题,double/float比较相等也不能直接使用==,但是比较大小可以用<、>号。

double d1 = 0.1, d2 = 0.1;  
if (d1 == d2) {}// 坏代码  
if (Double.compare(d1, d2) == 0) {}// 好代码  
if (Double.doubleToLongBits(d1) == Double.doubleToLongBits(d2)) {}// 好代码  
if (Double.valueOf(d1).equals(d2)) {}// 好代码,1.5以上  

变量作用域

类变量
实例变量
局部变量 static

public class Variable{
    static int allClicks = 0;  //类变量
    String str = "helo world"; //实例变量
    
    public void method(){
        int i = 0;	//局部变量
    }
}

代码举例

public class Demo04 {

    //属性:变量

    //类变量 static
    static double salary = 2500;

    //实例变量:方法外面,类里面【从属于对象】
    //        如果不进行初始化,输出为这个类型的默认值
    //        数值:0 0.0;    布尔值:false   除了基本类型,其余:null
    String name;
    int age;

    //main方法
    public static void main(String[] args) {
        //局部变量:存活于方法,终止于方法,不可移植
        //         必须声明和初始化值
        int i = 10;
        System.out.println(i);

        //变量类型 变量名字 = new demo04();
        Demo04 demo04 = new Demo04();
        System.out.println(demo04.age);
        System.out.println(demo04.name);

        //类变量 static
        System.out.println(salary);
    }
}

数据类型的转换

数据类型转换规则:高->低(强制转换);低->高(自动转换)

------------------------------------byte,short,char -> int -> long -> float ->double
代码展示
public class Demo02 {
    public static void main(String[] args) {
        //类型转换
        //低------------------------------------------高
        //byte,short,char -> int -> long -> float ->double
        //=====================================================
        int i = 128;
        byte c = (byte)i;   //数据溢出
        double b = i;
        //强制转换  (类型)变量名 高——>低
        //自动转换  低——>高
        System.out.println(i);//128
        System.out.println(c);//-128    数据溢出
        System.out.println(b);//128.0
        
        System.out.println("=========================");
        System.out.println((int)23.7);//23
        System.out.println((int)-232.7f);//-232

        System.out.println("=========================");
        char e = 'a';
        int d = e+1;
        System.out.println(d);	//98
        System.out.println((char) d);	//b
        System.out.println("=========================");
        //操作比较大的时候注意移除问题
        //JDK7的新特性,数字之间可以用下划线分割
        int money = 20_0000_0000;
        int year = 20;
        int total = money*year;
        long total2 = money*year;
        long total3 = money*((long)year);//此处需要强制转换,否则会溢出
        System.out.println(total);	//溢出
        System.out.println(total2); //溢出
        System.out.println(total3); //正确
    }
}

注意点:
1、不能对布尔值进行转换;
2、不能把对象类型转换为不相干的类型;
3、在把高容量转化为低容量需要【强制转换】
4、转换的时候可能存在内存一处,或者精度问题!


常量

final代码展示

public class Demo05 {

    //常量:大写字母表示

    //修饰符,不存在先后顺序【变量类型前面都为修饰符】
    static final double PI = 3.14;
    final static double LEN = 3.14;

    public static void main(String[] args) {
        System.out.println(PI);
        System.out.println(LEN);
    }
}

相关知识点都在代码注释中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值