学习Java笔记记录Day2

一. 数据类型转换,各个数据类型之间存在着转化,即int 可以转化为 byte ,long 可以转化为 int ,

数据类型从小到大的排序依次是:

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

在从小往大转化时,需要强制转化,但是从大向小转换时,不需要

example:

public class demo4 {
    public static void main(String[] args) {
        int num1 = 123123;
        char num2 = num1;
        System.out.println(num2);
    }
}

此时无法输出,因为char类型小于int类型,需要强制转换

强制转换=(数据类型)变量名        

public class demo4 {
    public static void main(String[] args) {
        int num1 = 12333333;
        byte num2 = (byte)num1;
        System.out.println(num2);
    }
}

此时输出结果为21,显然是错误的。

导致这一结果的问题是,此时char类型的上线为127,而1233333显然大于127,导致了内存溢出。

注意:类型转换的几个主要问题

        1.强制转换时,需要注意数据类型,不可出现内存溢出

        2.Boolean不可转换成其他数据类型

        3.浮点型转换成整数型时存在误差

        4.当两个int类型运算时,超过int上限时,需要将其中一方先强行转化为long类型

即:

        int money = 10_0000_0000;
            int time = 20;
            long total = money*(long)time;
            System.out.println(total);

二.变量的相关知识

1.首先是,变量即相当于自己定义变量名并对其赋值,例如: int a = 100;

这定义变量a的值为100;

2.局部变量,即该变量只能在该方法中被使用

public class demo5 {
    public static void main(String[] args) {
        int a = 100 ;
        System.out.println(a);
    }
    public static void total(){
        System.out.println(a);
    }
}

出错,不能在total中输出a的值,即a为局部变量只能在main方法中使用

3.实例变量,即在方法外定义变量,若方法内想调用时,需要new该类名,例如:

public class demo5 {
    int salary = 2500;
    public static void main(String[] args) {
        int a = 100 ;
        //变量类型 demo5 变量名 demo5
        demo5 demo5 = new demo5();
        System.out.println(demo5.salary);
        System.out.println(a);
    }

}

此例中,salary即为实例变量

4.类变量,类似于实例变量,于实例变量不同的是,在方法中调用类变量时,不需要new 类名,可直接调用,同时,在定义其前,需要加上static等,例如:

public class demo5 {
    int salary = 2500;
    static String name = "孙bagui";
    public static void main(String[] args) {
        int a = 100 ;
        //变量类型 demo5 变量名 demo5
        demo5 demo5 = new demo5();
        System.out.println(demo5.salary);
        System.out.println(a);
        System.out.println(name);
    }
    public static void total(){
        System.out.println();
    }
}

5.常量,在方法外定义一常量,且该常量不可变化,定义常量时,需要在其前加final,例如 

public class Demo6 {
    final static String name = "孙bagui";

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

三.运算符

运算符又分为算术运算符,赋值运算符,关系运算符,逻辑运算符,位运算符,条件运算符,扩展赋值运算符,

具体如下:

其中,主要记住上四个,逻辑运算符的意识为,与或非

运算符的小知识:

        1.%为取余,也称为模运算,具体使用如下

package operator;

public class Demo1 {
    public static void main(String[] args) {
        int a = 10 ;
        int b = 21;
        System.out.println(b%a);
    }
}

结果为1

        2.在整数数据类型计算时,若运算中有long类型,则结果为long类型,若没有,则结果为int类型

例如:

package operator;

public class Demo2 {
    public static void main(String[] args) {
        long num1 = 100000000L;
        int num2 = 100000;
        byte num3 = 123;
        short num4 = 12;
        System.out.println(num1+num2+num3+num4);
        System.out.println(num2+num3+num4);
        System.out.println(num3+num4);
    }
}

        3. 数值相等判断:

例如:

public class Demo3 {
    public static void main(String[] args) {
        int a = 5;
        int b = 6;
        System.out.println(a == b);
        System.out.println(a > b);
        System.out.println(a < b);
        System.out.println(a != b);
    }
}

4. ++与--

++为累加,即 a++=a+1;++a也为a=a+1,不同点为,若b=a++,则b=a, 若b=++a,则b=a+1;

--同理;

            

5.幂函数的运算

其他函数的运算要使用方法类来实现,例如幂函数的运算,例如:2^3为8

在代码中要使用Math.pow来实现

double pow = Math.pow(2, 3);
System.out.println(pow);

6.逻辑运算


public class Demo6 {
    public static void main(String[] args) {
        //逻辑运算,即与或非
        boolean a = false;
        boolean b = true;
        System.out.println(a&&b);//与,或A与B中有一个false,则结果为false
        System.out.println(a||b);//或,若A或B中有一个true,则结果为true
        System.out.println(!(a&&b));//非,则是对以上的否定
        //短路算法,即当a&&b时,若a为false,则不会再去判断b是否为true,而直接输出false
        //例子如下:
        int c = 5;
        boolean d = (c>6)&&(c++>6);
        System.out.println(c);//若执行c++>6,则c最后的值为6
        System.out.println(d);//结果显示5,解释了短门算法

    }
}

7.位运算

package operator;

public class Demo7 {
    /*
    位运算符,主要是用于二进制
    例如
    a = 1100 0011
    b = 0010 1010
    则
    a|b = 1110 1011   (若a为0,b也为0,则输出0,反之都为1)
    a&b = 0000 0010   (若a为1,b也为1,则输出1.反之都为0)
    a^b = 0001 0110   (当a与b的值相等时,输出1,反之输出0)
    ~b =  1101 0101   (与b完全相反)
    除此之外,还有>>与<<,具体作用如下:
    以下皆为二进制内计算
    0000 0001 1
    0000 0010 2
    0000 0011 3
    0000 0100 4
    0000 1000 8
    0001 0000 16
     */
    public static void main(String[] args) {
        System.out.println(2<<3);//相当于将2相左移动3位
        //即,<<为乘2,>>为除2
    }
}

 8.其他运算符

package operator;

public class Demo8 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        a+=b;//a+=b的意思为,a=a+b;a-=b同理为a=a-b
        System.out.println(a);
        //三元运算符,x?y:z,意思是,若x为正则输出y,否则输出z
        int x = 80;
        String confidition = x>60?"great":"false";
        System.out.println(confidition);
    }
}

四.包机制

包的机制就是文件夹,用来存放不同的文件

若想使用别的包的数据需要使用Import 包名

通常的报名使用倒过来的公司官网,例如:www.baidu.com的包名通常为

com.baidu.www

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值