欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java学习第二天

程序员文章站 2022-07-13 14:00:58
...

java学习第二天

类型转换

public class Demo03 {
/**
 * @Author:Niko
 *@ Description:简单的类型转换学习
 *
 *
 * */
    public static void main(String[] args) {

        
        //类型转换
        //高级类型向低级类型转换,叫做强制转换,转换的方式是(类型)变量名,但是一旦超出低级的内存访问就会出现内存溢出
        int i = 129;
        byte b =(byte) i;//byte的内存范围:-127-127,但是一旦超出低级的内存访问就会出现内存溢出

        //低级向高级转换,叫做自动转换。
        int a = 5;
        byte d = 6;
        int c = a + d;
        System.out.println(c);//自动转换
        
        System.out.println(b);//强制转换


        /*
        * 注意点
        * 1.不能对布尔值进行转换
        * 2.不能把对象类型转换为不相干的类型
        * 3.在把高容量转换到低容量的时候,强制转换
        * 4.转换的时候注意内存容量,防止出现内存溢出,或者精度问题*/

        //例如精度问题的例子:
        System.out.println("=======================================");
        System.out.println((int)23.5);//把小数转换到整数
        System.out.println((int)-42.33f);//把float转换到整数
        //结果显然是出现把小数位给去除掉的结果,这样往往会对结果造成一些偏差

        System.out.println("=======================================");
        //这里是自动转换,低向高进行转换,本质上说明字符也是数字。
        char  a = 'a';
        int   c =  a+1;
        System.out.println(a);
        System.out.println(c);//结果很明显的看出字符a 在Unicode表中对应的数字是97
        //那如果把整数c强制转换为字符,看是否出现b
        System.out.println((char) c);
        //结果很明显是b,这是没有问题的。

        System.out.println("=======================================");

        //操作大的数字的时候,注意溢出问题
        // 通过下划线区分单位
        int money = 10_0000_0000;//注意类型的内存大小
        int years  =20;
        int  total = money*years;
        //出现的结果:-1474836480 是不对的,这是表明已经计算出现溢出了
        long total2 = money*years;//通过转换之后出现的结果也是一样,这说明转换之前已经存在问题了?
        //答案:因为变量默认的是int类型,这导致计算的时候,就已经出现错误,所以结果无论怎么转换都是错误的
        System.out.println(total);
        System.out.println(total2);
        //解决办法,先把一个数转换为Long类型
        //long total3 =money*((long)years);
        long total3 =((long)money)*years;
        //现在的结果就没问题了
        System.out.println(total3);

        //小细节,在使用long的时候,记住用大写的 L,因为小写的 l 容易看成 1,这样小小的细节往往会造成很大的bug。

    }

}

变量

public class Demo04 {
    /**
     * @Author:Niko
     *@ Description:变量的简单认知
     *
     *
     * */

    public static void main(String[] args) {
       //可以变化的量,就是变量。类似存放空间,不同类型的东西存放在不同类型的空间进行整理,调用等。
       //java 变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
       //java 是强类型语言,每个变量必须声明其类型。
        /*
        * 注意点
        * 1.每个变量都有类型(指的是int ,char等),类型可以是基本类型,也可以是引用的类型
        * 2.变量名必须是合法的标识符,前面有说过。
        * 3.变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
        * */
        //例如
         int a ;
         char c = 'a';


    }

    /*变量的作用域
     *类变量
     * 实例变量
     * 局部变量
     *  */
    //例子

    static int allClicks = 0 ;   //类变量:加入关键词 static

    String str = "hello world";  //实例变量

    public void method(){
        int i =0;                //局部变量
    }


}
public class Demo05 {

    //一个类里面可以有:
    //可以定义属性:变量
    static double  salary  = 2500;



    //实例变量:从属于对象; 如果不自动初始化,会自动使用这个类型的默认值  0  0.0
    //在实例变量里面没有初始化值的布尔值类型,默认是false。
    //除了基本类型,其余的默认值都是null。
    //例子
    String name;
    int  age;



    //主程序main方法
    public static void main(String[] args) {

        //局部变量:只能在main方法里面使用,在main方法外无法被调用
        int s = 10;
        System.out.println(s);

        //实例变量:要想使用实例变量的话,需要自定一个变量去使用
        //变量类型 变量名字  = new Demo05();  ,这也属于一种引用变量,这样才可以通过demo05 去使用
           Demo05 demo05  = new Demo05();

           System.out.println(demo05.name);
           System.out.println(demo05.age);


        //类变量 static :类变量不能在方法里面定义,只能在类里才能,方法只能是调用
        //我main方法上定义一个类方法,现在试下
        System.out.println(salary);


    }

    //其他方法(一般是一些操作方法后面会学)
    public void add(){
        System.out.println();

    }


}

常量

public class Demo06  {
    /*
    * 常量(一般用final关键字来定义)
    * 常量:初始化后不能再改变的值!不会改动的值
    * 所谓常量也可以理解为一种特殊的变量,只是它的值被设定后,在程序运行过程中不允许被改变
    *
    * final 常量名  = 值 ;
    * final double(这个是值的类型,不同的值,不同类型) PI = 3,14;
    *
    * 常量名一般使用大写字符!!!
    *
    *
    * */
    //小知识点:static final都属于修饰符,不存在先后顺序。
    static final int I = 10;

    static final  double  PI = 3.14;


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


}

自我理解

2020年5月19日15:24:22

今天学习内容

类型转换

什么是类型?

一般类型分为基本类型和引用类型,今天学习是基本类型。

基本类型基本为8种分别是

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

还有一种布尔值:boolean

其中不同的类型,其内存大小也大不相同

而其中存在两种转换关系:

  1. 强制转换

    解释:由高级类型向低级类型,进行转换就叫做强制转换。

    但是同时也需要注意的问题就是,内存的大小的问题,当一个高级的类型的数据转化为低级的时候,低级类型的内存不足以去存储的话,就会出现内存溢出,类似水杯装水。

  2. 自动转换

​ 解释:由低级类型向高级类型,进行转换就叫做自动转换、

​ 由低到高,内存大的类型,自然而然可以存储内存低的类型的东西。

  /*
    * 注意点
    * 1.不能对布尔值进行转换
    * 2.不能把对象类型转换为不相干的类型
    * 3.在把高容量转换到低容量的时候,强制转换
    * 4.转换的时候注意内存容量,防止出现内存溢出,或者精度问题*/

在这里说下精度问题:

顾名思义:就是把不同类型的数值进行转换的时候可能会出现偏差

例如

​ System.out.println((int)23.5);//把小数转换到整数
​ System.out.println((int)-42.33f);//把float转换到整数
​ //结果显然是出现把小数位给去除掉的结果,这样往往会对结果造成一些偏差

变量

变量:就是可以变化的量,类似一个空间,它可以是不同类型的空间,但是同时存放怎么不同类型的数值。

java学习第二天
java学习第二天

常量

常量:初始化后不能再改变的值!不会改动的值

所谓常量也可以理解为一种特殊的变量,只是它的值被设定后,在程序运行过程中不允许被改变

//结果显然是出现把小数位给去除掉的结果,这样往往会对结果造成一些偏差

变量

变量:就是可以变化的量,类似一个空间,它可以是不同类型的空间,但是同时存放怎么不同类型的数值。

[外链图片转存中…(img-RfMVAQK7-1589887782374)]

[外链图片转存中…(img-7tBQtrvS-1589887782376)]

常量

常量:初始化后不能再改变的值!不会改动的值

所谓常量也可以理解为一种特殊的变量,只是它的值被设定后,在程序运行过程中不允许被改变