Java基础笔记二

Java基础笔记二

本文章是作者学习B站系列视频《狂神说Java》与经典书籍《Java核心技术》的记录笔记与心得,创作不易,希望能够得到您的支持。

类型转换

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

  • 各个数据类型的优先级:
    byte,short,char->int->long->float->double

例如:

public class Transform{
    public static void main(String[] arg){
    int i=128;
    // byte b=i 错误,不能把一个int类型的值赋给byte
    byte b=(byte)i;//强制转换
    //数据类型完成转换,但是发生内存溢出的问题
    }
}
  • 强制类型转换:高->低
  • 自动类型转换:低->高
public class Transform{
    public static void main(String[] arg){
    int i=128;
    double b=i;//int类型转换为double,自动转换
    }
}

注意点:

  1. 不能对bool值进行转换

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

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

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

System.out.println((int)-45.89f);//输出-45
//出现了精度问题
public class BigNumber{
    public static void main()
    {
        //操作大数时,数字之间可以用下划线分割(JDK新特性)
        int money=10_0000_0000;
        int years=20;
        int total1=money*years;//-1474836480,计算时已经溢出,错误
        long total2=money*years;//溢出,因为在赋值前完成计算,但是计算时已经溢出,错误
        long total3=(money*(long)years);//先把一个数转换为long,正确

    }
}

变量

变量就是可以变化的量。由于Java是一种强类型语言,每个变量都必须声明其类型。变量是最基本的存储单元,必须包括变量名,变量类型和作用域。

定义变量的格式:
数据类型+变量名=值

  • 变量类型可以是基本类型,也可以是引用类型

  • 变量名必须合法

  • 每一个声明都是完整语句,必须以分号结束

  • 尽管$是一个合法的Java字符,但是不建议在代码中使用。它只用在Java编译器或其他工具生成的名字中

  • 不能使用Java保留字(关键字)作为变量名,且变量名大小写敏感

变量的作用域

public class Scope{
    String name;
    int age;
    //main方法
    public static void main(String[] args){
        //局部变量:使用前必须声明和初始化值
        int i=10//i只在上下两个花括号中有效

        System.out.println(i);
        //变量类型 变量名字=new Scope();

        Scope scope=new Scope();
        System.out.println(scope.age);//0
        System.out.println(scope.name);//null

        //实例变量:在类里面,方法外面,从属于对象,如果不自行初始化,则默认为0
        //布尔变量:默认为false
        //除了基本类型,其它都是null

        //类变量 用static修饰
    }
}

常量

  • 常量可以理解为一种特殊的变量,利用关键字final

  • 习惯上,常量的名字一般用大写

  • 常量一经赋值,不能再更改

public class Final{
    final static double PI=3.14;
    //final 与 static 都是修饰符,不存在先后顺序
    public static void main(String[] args){
        System.out.println(PI);
    }
}

变量的命名规范

  • 类成员变量:首字母小写+驼峰原则(除第一个单词外,之后单词首字母大写)

  • 局部变量:同上

  • 常量:大写字母(单词与单词之间用下划线隔开)

  • 类名:首字母大写+驼峰原则

  • 方法名:首字母小写+驼峰原则

运算符

二元运算符

public class Operator1{
    public static void main(String[] args){
        //"+,-,*,/,%"为二元运算符
        int a=10;
        int b=20;
        int c=25;
        int d=25;
        System.out.println(a/b);//0,因为小数部分被抹去
        System.out.println(a/(double)b);//0.5
        System.out.println(c%a);//5,计算c/a所得的余数
    //a+=10,表示a=a+10;
    //字符串连接符:+
    }
}

关系运算符

关系运算符返回的结果:正确/错误,是布尔值

public class Operator2{
    public static void main(String[] rgs){
        int a=10;
        int b=20;
       
      System.out.println(a>b);//false
      System.out.println(a=b);//false
      System.out.println(a!=b);//true
    }
}

一元运算符

  • 自增、自减运算符
  1. 前置运算符:先增减,再运算

  2. 后置运算符:先运算,再增减

public class Operator3{
    public static void main(String[] args){
    int a=3;
    int b=a++;
    System.out.println(a);
    //4,此时先把a=3赋给b,之后a+1,则输出a等于4
    int c=++a;

    System.out.println(a);
    //5,a经过了两次自增,则为5
    System.out.println(b);
    //3,b被赋值为3后a才自增,a的增加对b没有造成影响,所以b不会改变
    System.out.println(c);
    //5,a自增两次后得到5,然后赋值给c,则c输出为5

        }
    }

幂运算

public class operator4{
     public static void main(String[] args){
         double pow=Math.pow(2,3);
         //使用工具类来操作
     }
}

逻辑运算符

public class operator5
{
     public static void main(String[] args){
     boolean a=true;
     boolean b=false;
     System.out.println("a&&b"+(a&&b));
     //false,二者均为真是结果为真,其余均为假
     System.out.println("a||b"+(a||b));
     //true,二者均为假是结果为假,其余均为真
     System.out.println("!a&&b"+!(a&&b));
     //true,先进行与运算,然后取非


    //断路问题:在进行与运算时,当第一个值为假是,不会进行第二步操作
    int c=5boolean d=(c<4)&&(c++<4);
    System.out.println(c);//5,c<4为假,不会进行c自增操作
     }
}

位运算符

/*
A=0011 1100;
B=0000 1101;
&,|,^ 三个运算符分别对每一位进行操作(分别对应与或非三种运算法则)



*/
System.out.println(2<<3);//16
//<< >>表示左移,右移运算符,效率较高
//左移表示乘2,右移表示除以2

三元运算符

public class operator6
{
public static void main(String[] args){
    //x?y:z 表示如果x为真,则进行y操作,否则进行z操作
    int score=70int a=0;
    (score>60)?a=10:a=20;
    //70>60为真,则进行a=10的操作

}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leon Zha

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值