markdown学习Day4

JAVA的基础语法

标识符和关键字

关键字

以下是关键字,在JAVA里有特殊含义,不可以用作给变量和类起名

标识符

类名:scr新建的java class的名字

public class +[类名]

 

变量名:代码内部定义一个概念

String+[变量名]

【类名】+【变量名】+【方法名】=标识符

**【注意点】**

  1. 所以的标识符的首字母都应该是

    • 字母大小写

    • 美元符($)

    • 下划线(_)

  2. 首字母之后可以是字母,美元符,下划线,数字的任意组合

  3. 不能使用关键字作为变量名和方法名

  4. 标识符是大小写敏感的

  5. 可以使用中文,但是一般不用,很LOW

数据类型

  • java是一种强类型语言,要求所有变量必须先定义后使用。

  • 基本类型=整数(byte,short,int,long)浮点(float,double)是非(true,false)字符

  • 引用类型:类,接口,数组

变量

  • 变量就是一个可以变化的值

  • Java变量是程序中最基本的储存单元,包括【变量名】【变量类型】【作用域】

【type】+【varName】=【[=vaule]】

  • 数据类型+ 变量名 = 值 (最后加个分号)

八大数据类型

字节

  • 位(bit):计算机内部存储的最小单位

  • 字节(byte):计算机的基本单位,一个字节等于8个位;1B=8b

  • 字符:计算机中使用的字母,数字,字,符号

  • 1024B=1KB

    1024KB=1M(兆)

    1024M=1G

    1024G=1TB

数据类型拓展

  1. 整数拓展

    进制,二进制[0b],十进制,八进制[0],十六进制[0x]

  2. 浮点数拓展

    有限 离散 舍入误差 接近但是不等于

    {最好不要用浮点数进行比较}

    *【==】java中进行比较的符号

  3. 字符拓展

    【强制换行】

    原理:所有字符本质上还是数字

    编码中有个叫Unicode表,将字母,汉字等转化成数值

    如a=97,A=65,“中”=20013

sout(c1)-------->sout((int)c1) 即可以完成强制换行的操作

  1. 转义字符

    【\t】制表符(空格)

    【\n】换行

类型转换

JAVA是强类型语言,所以要进行有些运算的时候,需要用到类型转换

-------------------------------------------------------

byte,short,char< int < long < float < double

运算中,不同类型的数据先转换为同一类型

【强制转换】 (类型)变量名

从高到低

int i =128;
byte b = i;
//(这个时候就会报错,因为是不同的数据类型)

int i =128;
byte b = (byte)i;
//英文括号里加需要转换成的数据类型
//但要注意每一个类型的最大最小值,不要产生内存溢出现象

【自动转换】

从低到高

int i =128;
double b = i;
//不需要任何操作就可直接转换

【注意点】

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

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

  3. 把高容量转到低容量时强制转换,从低到高自动转换

  4. 转换时可能出现内存溢出和精度问题

    精度问题:当要将高容量的小数转换为低容量的整数时,其输出的精度会出现偏差,如会舍去小数点后的数字

     System.out.println((int) 23.7);
    System.out.println((int)-45.89f);

    23
    -45

    Process finished with exit code 0

    常见问题

    1.操作比较大的数时,注意溢出问题

    int money = 10_0000_0000;
        //数字之间可用下划线分割
        int year = 20;
        int total = money*year;//-1474836480,未输出正确的值,计算时内存溢出
          System.out.println(total);
          //若换一个long,虽然long>int,但此时total的值默认是int
          //转换之前就出现问题
           
//解决方式
      long total2 =money*((long)year);//将其中一个数转化为long数据
      System.out.println(total2);



posted @ 2021-02-04 22:32  酥饼sama  阅读(48)  评论(0)    收藏  举报