Fork me on GitHub

java数据类型学习及转换

快捷键的使用

  • 在IDEA中输入psvm快捷键直接生成main方法

    public static void main(String[] args) {   
       
    }
    
  • 在IDEA中直接输入sout快捷键直接生成输出语句

    System.out.println("Hello world");
    

注释

java中的注释有三种

  1. 单行注释

    //单行注释
    //快捷键:ctrl+/
    
  2. 多行注释

    /*
    多行注释(又称块注释)
    快捷键:ctrl+shift+/
    */
    
    
  3. 文档注释

    /**
    *文档注释
    *快捷键:输入/** ,点击“Enter”,自动根据参数和返回值生成注释模板
    * @deprecated:Java注释练习
    * @Author:周乐儿
    */
    

书写注释是一个非常好的习惯,加油吧,sao年!

标识符

关键字

关键字


java 所有组成部分都需要名字

类名、变量名以及方法名都被称为标识符

数据类型

强类型语言

要求变量的使用严格符合规定,所有变量都必须先定义后才能使用。

弱类型语言

对变量的使用没有过于严格的规定,通常在JavaScript中可以看到

Java数据类型分为两大类

  • 基本类型

  • 引用类型

    java数据类型

public class demo01 {
    public static void main(String[] args) {
        //八大基本数据类型
        //整数
        int num=10;  //最常用
        byte num1=111;
        short num2=88;
        long num3=100L;//long类型在数字后面加个L

        //小数:浮点数
        float num4=1.203F;//float类型在数字后面加个F
        double num5=2.36;

        //字符类型
        char name='周';
        //字符串,String不是一个关键字,而是一个类
        String name1="周乐儿";

        //布尔类型:是非
        boolean flag=true;
        //boolean flag=false;
    }
}

数据类型的拓展以及面试题讲解

整数类型拓展

  • 进制的表示

    1. 二进制:0b

    2. 八进制:0

    3. 十进制

    4. 十六进制0x

      public class Demo01{
          public static void mian(String[] args){
              int num=10; //十进制
              int num2=010;//八进制
              int num3=0x10;//十六进制
              
              System.out.println(num);
              System.out.println(num2);
              System.out.println(num3);
          }
      }
      

浮点数类型拓展

float与double作比较,由于float是有限的、离散的、舍入误差的、大约的、接近但不等于所以

float f=0.1f;
double d=1.0/10;
System.out.println(f==d);
System.out.println(f);
System.out.println(d);

1604994488744

float d1=2315649871f;
float d2=d1+1;
System.out.println(d1==d2);

1604994881992

所以说在银行面试时问到是否可以使用float类型进行比较时,是不可以的,因为float类型的数值的近似于,约等于的,有误差。BigDecimal 数学工具类 银行业务的计算使用BigDecimal类,避免误差

字符类型拓展

public class Demo02{
    public static void mian(String[] args){
        char c1='a';
        char c2='中';
        System.out.println(c1);
        System.out.println((int)c1);//强制转换整数型
        System.out.println(c2);
        System.out.println((int)c2);//强制转换整数型
        //所有字符本质都是数字//编码  Unicode 表:(97=a  65=A)
        char c3='\u0061';
        System.out.println(c3);
        System.out.println("/********************************************/");
        //转义字符
        //  \t  制表符
        //  \n   换行    
        System.out.println("Hello\tworld!");
        System.out.println("/********************************************/");
        String sa=new String("hello world");
        String sb=new String("hello world");
        System.out.println(sa==sb);
        String sc="hello world";
        String sd="hello world";
        System.out.println(sc==sd);//对象需要从内存分析
    }
}


1604995316021

布尔值拓展

public class Demo03{
    public void static mian(String[] args){
        boolean flag=ture;
        if(flag=true){}
        if(flag){}
    }
}

if(flag=ture){}和if(flag){}意思一样,只是进行了精简,前者像初学者写的代码,后者则更像老手写的代码,精简且易读。

类型转换

由于java是强类型语言所以我们在运算时就需要用到类型转换。

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

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

运算中不同数据类型,需要先进行类型转换再进行运算

  • 强制类型转换

    (类型)变量名 高到低

  • 自动类型转换

    变量名 低到高

  • 注意点

    1. 不能对布尔值进行类型转换
    2. 不能将对象类型转换为不相干的类型
    3. 在把高容量转换为低容量时,强制转换
    4. 类型转换时需注意内存溢出,精度问题
  • 内存溢出问题代码示例

    public class Demo04{
        public static void main(String[] args){
            int money=1000000000;
            int years=20;
            int total=money*years;
            System.out.println(total);//内存溢出,-1474836480
            long total1=money*years;
            System.out.println(total1);//默认是int类型,转换之前已经存在问题
            long total2=money*(long)years;
            System.out.println(total2);
        }
    }
    
    

    1604999519536

  • 精度问题代码示例

    public class Demo05{
        public static void main(String[] args){
            float c=27.89f;
            float c1=-46.23f;
            System.out.println((int)c);
            System.out.println((int)c1);
        }
    }
    
    

    1604999684261

posted @ 2020-11-10 17:21  乐二啊  阅读(96)  评论(0)    收藏  举报