Java基础

Java基础

1. new project

  1. new project->empty project->定义名称
  2. file->project structure->设置正确匹配

2. 标识符

在这里插入图片描述

  • 所以标识符都以字母(A-Z或a-z)、美元符($)、下划线(_)开始
  • 首字符后可以是字母(A-Z或a-z)、美元符($)、下划线(_)或数字的任意组合
  • 标识符大小写敏感
  • 不能使用关键字作为变量名或方法名

3. 数据类型

  • 强类型语言

  • 弱类型语言

  • Java数据类型
    在这里插入图片描述

    1. 基本类型(primitive type)
    2. 引用类型(reference type)

String不是关键字,是类

4. 数据类型扩展及面试题

  • 整数拓展:二进制0b、八进制0、十六进制0x

  • 浮点数拓展:

    float 有限的、离散的、舍入误差、接近但不等于

    最好避免完全使用浮点数进行比较!!!

    float f = 0.1f;          // 0.1
    double d = 1.0/10;       // 0.1
    System.out.println(f==d); //运行结果false
    System.out.println(f);
    System.out.println(d);
    
    float f1 = 23554354641f;
    float f2 = f1 + 1;
    System.out.println(f1==f2); //运行结果true
    System.out.println(f1);
    System.out.println(f2);
    

    银行业务表示 **BigDecimal **数学工具类

  • 字符拓展

    char c1 = 'a';
    char c2 = '中';
    System.out.println(c1);       //运行结果 a
    System.out.println((int) c1); //强制转换 //运行结果 97
    System.out.println(c2);       //运行结果 中
    System.out.println((int) c2); //强制转换 //运行结果 20013
    

    所有字符本质上还是数字!!!

    编码问题

    Unicode表:(97 = a 65 = A) 2字节 0~65536 ,实际表示 U0000~UFFFF

    Excel表格最初也是2^16=65536

    char c3 = '\u0037';
    System.out.println(c3); //运行结果 7
    
  • 转义字符

    转义字符意义
    \n换行(LF) ,将当前位置移到下一行开头
    \r回车(CR) ,将当前位置移到本行开头
    \t水平制表(HT) (跳到下一个TAB位置)
    \\代表一个反斜线字符\
    \’代表一个单引号(撇号)字符
    \"代表一个双引号字符
  • 对象内存

    //对象  从内存分析
    String sa = new String("he");
    String sb = new String("he");
    System.out.println(sa==sb);//运行结果 false
    String sc = "he";
    String sd = "he";
    System.out.println(sc==sd);//运行结果 true
    
  • 布尔值扩展

    //布尔值扩展 less is more!
    boolean flag = true;
    //两句等价
    if (flag==true){}
    if (flag){}
    

5. 类型转换

  • 低 ----------------------------------------------------> 高

    byte,short,char -> int -> long -> float -> double

    //byte int
    int i = 128;
    byte b = (byte)i;//强制转换 高->低
    System.out.println(i);//运行结果 128
    System.out.println(b);//运行结果 -128    内存溢出!!
    
    //char int
    char c = 'a';
    int in1 = c + 1;
    System.out.println(in1);//运行结果 98
    System.out.println((char)in1);//运行结果 b
    
  • 注意点:

    1.不能对布尔值进行转换

    2.不能把对象类型转换为不相干的类型

    3.在把高容量转换到低容量的时候,强制转换

    4.转换时候可能存在内存溢出,或者精度问题

  • 操作比较大的数据时,注意溢出问题

    int mo = 10_0000_0000;
    int year = 20;
    int total = mo*year; //-1474836480 ,计算时候溢出
    long total2 = mo*year; //-1474836480,默认是int,转换之前已经出现问题
    long total3 = mo*((long)year);//20000000000,先把一个数转换为long
    

6. 变量、常量、作用域

(1)变量

是最基本的存储单元,要素:变量名、变量类型和作用域

注意:尽量一行不要定义多个变量。

作用域:类变量、实例变量、局部变量

局部变量

必须声明和初始化,只能使用在此对应的{}之内。

public class Demo04 {
    public static void main(String[] args) {
        //局部变量,必须声明和初始化,只能使用在此对应的{}之内
        int i = 10;
        System.out.println(i);
    }
}
实例变量

从属于对象(从属于所在类);

如果不自行初始化,则为这个类型的默认值;

布尔值:默认为false

除了基本类型,其他默认值都是null。

public class Demo04 {
    String name;
    int age;
    float f;
    
    public static void main(String[] args) {
         //变量类型 变量名字
        Demo04 demo04 = new Demo04();
        System.out.println(demo04.name);//运行结果 null
        System.out.println(demo04.age);//运行结果 0
        System.out.println(demo04.f);//运行结果 0.0
    }
}
类变量

static,从属于所在类。

public class Demo04 {
    //类变量 static
    static double salary = 2500;

    public static void main(String[] args) {
        //类变量 static
        System.out.println(salary);//运行结果 2500.0
    }
}

(2)常量

final,初始化后不能改变值!

常量名一般使用大写字符

public class Demo05 {
    static final double PI = 3.14;
    //final static double PI = 3.14;
    //修饰符,不存在前后
    public static void main(String[] args) {
        System.out.println(PI); //运行结果 3.14
    }
}

(3)变量命名规范

  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 方法名:首字母小写和驼峰原则:runRun()
  • 类名:首字母大写和驼峰原则:GoodMan

7. 运算符

在这里插入图片描述
算术运算/:注意作用范围。

算术运算时候:只有有long参与则结果为long;若没有long,则结果全为in。

碎知识点

  • JDK7新特性,数字之间可以用下划线分割

    int mo = 10_0000_0000;
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值