Java基础语法01——变量与运算符

Java基础语法01——变量与运算符

本文是对Java基础语法的第一部分的学习,包括注释;标识符的命名规则与规范;变量的数据类型分类以及转换;以及六种运算符(算术、赋值、比较、逻辑、三元和位运算符)。

注释(commment)

书写注释是一种良好的习惯,注释是写给人看的,并不会在代码运行时展示出来。注释主要分为以下三类:单行注释、多行注释、文档注释

  1. 单行注释:一行,格式://

  2. 多行注释:一段,格式:/* 注释文字 */

  3. 文档注释:是专门为了用javadoc工具自动生成文档而写的注释,它是一种带有特殊功能的注释。

    格式:/** 文字 */ (这一部分还有很多需要扩展学习的地f方)

标识符

identifier在Java中,有很多需要自己起名字的地方,而这些就被称为标识符。

用来命名:类名、变量名、方法名、包名、接口名、常量名等。

  • 标识符命名规则:【必须遵循,否则会报错】

    1. 首字母只能以英文字母大小写、$、下划线(_)开始

    2. 首字母之后可以是英文字母大小写、$、下划线(_)或数字的任意组合

    3. 标识符的命名是大小写敏感的

    4. 不能使用关键字(被java语言赋予了特殊含义,用作专门用途的字符串,所有字母全部是小写的),但可以包含

    5. 可以使用中文命名,但是一般不建议使用

  • Java标识符的命名规范:【非必须遵守,但是一种良好的代码习惯】

    1. 类名、接口名:多单词组成时,每个单词的首字母大写:XxxYyyZzz

    2. 变量名、方法名:首个单词全部小写,其余单词首字母大写:xxxYyyZzz

    3. 包名:所有字母都小写:xxxyyyzzz

    4. 常量名:所有字母都大写且每个单词用下划线连接:XXX_YYY_ZZZ

  • 合法标识符举例:age、$salary、_value、__1_value

  • 非法标识符举例:123abc、-salary

变量

  • Java是一种强类型语言,即所有的变量都必须严格符合规定,所有变量都必须先定义再使用

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

  • 变量只在它的作用域内有效,一般作用域是{}

  • 在一个作用域内不能声明重名的多个变量

数据类型

数据类型分为基本数据类型和引用数据类型两种

 

整数类型:byte(1字节=8bit)、short(2字节)、int(4字节)、long(8字节)

byte范围:-128~127

定义long类型时,变量的值后要加L或l,例如:long l = 1000000L

整数类型常量默认为int型

浮点类型:float(4字节,但其表示的数范围比long大)、double(8字节)

定义float类型时,变量的值后要加F或f,例如:float f = 100.1f

浮点类型常量默认为double型

字符型:char(1字符=2字节)

声明char类型时,使用一对单引号(‘ ’)进行赋值,只能对一个字符进行赋值

表示方法:(1)表示一个字符(2)转义字符{\n——换行符,\t——制表符}(3)使Unicode字符集表 示字符{eg:\u0043——C}

布尔类型:boolean,只有true\false两个值,常常用在条件判断和循环结构中

  • 拓展:\\n运行时会输出\n(不再表示换行的意义);"\"可以将符号变成普通的字符

类型转换

  • 首先知道一下基本数据类型容量大小的顺序:byte、short、char——>int——>long——>float——>double(顺序由低容量到高容量)(此处容量大小,指的是类型的数据的范围大小)

  • 类型转换有两种类型:自动转换、强制转换(注意:不包括布尔类型)

    1. 自动转换:低——高

    2. 强制转换:高——低,需使用强转符:(强转类型)变量名 【可能导致精度损失】

    3. 举例:

//强转类型举例
public class Demo01{
    public static void main(String[] args){
        double d1 = 129.4;
        int i1 = (int)d1;//将double型强转为int型
        System.out.println(i1);//运行结果为129
    }
}
//自动提升类型举例
public class Demo02{
    public static void main(String[] args){
        byte b1 = 12;
        char c1 = 'a';
        int i1 = 129;
        
        int i2 = b1 + c1;//byte\char\short互相做运算或自身做运算时,都将自动转换成int类型
        int i3 = b1 + i1;//当容量大的和容量小的做运算时,结果为容量大的类型
        System.out.println(i2);//int型——12+97
        System.out.println(i3);//int型——12+129
    }
}

拓展1——String字符串类型

  • 属于引用数据类型

  • 声明String类型时,使用一对双引号,表示字符串

  • String类型可以与其他8中基本类型做运算,且只能是连接运算:+,运算结果仍为String类型

拓展2——不同进制间的转换(了解)

所有数字在计算机底层都以二进制存在

二进制(以0b或0B开头)、十进制、八进制(以0开头)、十六进制(以0x或0X开头,用0-9及A-F[16]表示)

public class Test1{
    public static void main(String[] args){
        int num1 = 0b110;//二进制???为啥这条运行不了???
        int num2 = 123;//十进制
        int num3 = 0127;//八进制
        int num4 = 0x123A;//十六进制
        System.out.println("num1 = " + num1);
        System.out.println("num2 = " + num2);
        System.out.println("num3 = " + num3);
        System.out.println("num4 = " + num4);
    }
}

 

运算符

算术运算符

算术运算符包括正负号(+、-)、加减乘除(+、-、*、/)、取模(取余)(%)、++(前++、后++)、--(前--、后--)

通过下面的程序代码解释相关的运算(正负号和加减乘比较简单就不说了):

  • //除法运算
    public class Demo01{
        public static void main(String[] args){
            int num1 = 12;
            int num2 = 7;
            int num3 = num1 / num2;
            System.out.println("num3 = " + num3);//1
            
            double num4 = num1/num2;//自动类型提升为double
            System.out.println("num4 = " + num4);//1.0
            
            double num5 = num1/num2+0.0;
            System.out.println("num5 = " + num5);//1.0
            
            double num6 = num1/(num2+0.0);
            System.out.println("num6 = " + num6);//1.714...(除不尽)
        }
    }
    //掌握住基本数据类型运算的本质

  • //取余运算
    public class Domo02{
        public static void main(String[] args){
            int i1 = 12;
            int i2 = 5;
            System.out.println("i1%i2 = " + i1%i2);//2
            
            int ii1 = -12;
            int ii2 = 5;
            System.out.println("ii1%ii2 = " + ii1%ii2);//-2
            
            int iii1 = 12;
            int iii2 = -5;
            System.out.println("iii1%iii2 = " + iii1%iii2);//2
            
            int iiii1 = -12;
            int iiii2 = -5;
            System.out.println("iiii1%iiii2 = " + iiii1%iiii2);//-2
            //取模结果的符号于被取模数相同
        }
    }

  • //前++(--):先自增(减)1.后做运算
    //后++(--):先做运算,后自增(减)1
    public class Demo03{
        public static void main(String[] args){
            int a = 5;
            int b = ++a;
            System.out.println("a="+a+",b="+b);//a=6,b=6
            
            b = a++;
            System.out.println("a="+a+",b="+b);//a=7,b=6
            
            b = --a;
            System.out.println("a="+a+",b="+b);//a=6,b=6
            
            b = a--;
            System.out.println("a="+a+",b="+b);//a=5,b=6
        }
    }
    //自增运算不改变 变量的数据类型

赋值运算符

赋值运算符号:=

扩展赋值运算符:+=、-=、*= 、/=、%=

//+=(其余的类似)
public class Demo04{
    public static void main(String[] args){
        int i1 = 7;
        i1 += 2;//相当于i1=i1+2
        System.out.println(i1);//9
        
        short i2 = 7;
        //i2 = i2 + 2;//编译失败,因为数据类型
        i2 += 2;//结论:不会改变变量的数据类型
        System.out.println(i2);//9
        
        int i3 = 1;
        i3 *= 0.2;//i3=i3*0.2(注意数据类型是整型的)
        System.out.println(i3);//0
        i3 += 1;//i3=i3+1
        System.out.println(i3);//1
    }
}
/*
1. 在开发中,使得整数+2的方法:
    num=num+2;
    num+=2;(推荐)
2. 在开发中,使得整数+1的方法:
    num=num+1;
    num+=1;
    num++;(推荐)
*/

比较运算符

比较运算符:==、!=、<、>、<=、>=、instanceof

比较运算符的结果都是布尔类型:true或false

//注意区分好==和=
public class Demo05{
    public static void main(String[] args){
        boolean b1 = true;
        boolean b2 = false;
        System.out.println(b2 == b1);//false
        System.out.println(b2 = b1);//true
    }
}

逻辑运算符

  • 逻辑运算符:&(逻辑与)、&&(短路与)、|(逻辑或)、||(短路或)、!(逻辑非)、^(逻辑异或)

  • 逻辑运算符两边操作的都是布尔类型的变量

  •  

  • 区分:&和&&(二者的运算结果相同,只是运行过程不同)【|、||的区分类似】

&:左右两边都运行

&&:如果左边的值可以判断出整体的值,那么右边的就不再运行

//举例说明两者区别
public class Demo05{
    public static void main(String[] args) {
        boolean b1=false;
        int n1 =10;
        if(b1 & (n1++ >0)){
            System.out.println("我在北京");
        }else{
            System.out.println("我在南京");
                }
        System.out.println("n1=" + n1);
        //我在南京
          n1=11
        boolean b2=false;
        int n2 =10;
        if(b2 && (n2++ >0)){
            System.out.println("我在北京");
        }else{
            System.out.println("我在南京");
                }
        System.out.println("n2=" + n2);
        //我在南京
          n1=10
    }
}

位运算符

(了解即可,平时用到的不太多)

  • 位运算符:<<(左移)、>>(右移)、>>>(无符号右移)、&(与)、|(或)、^(异或)、~(取反)

  • 位运算符运算的是整数的二进制,操作的是整数

  • 左移<<:将整数的二进制数整体向左移,在空缺位补0【规律:<<n(左移n位) = 相当于原数乘2^n】

    右移>>:将整数的二进制数整体向右移,如果原整数为正数,则在空缺位补0;若为负数,则补1【规律:<<n(右移n位) = 相当于原数除以2^n】

    无符号右移>>>:右移,补0

  • 与运算&:12&5——写成二进制——只有都是1才1,其余情况是0——结果:4

    00001100——12

    00000101——5

    00000100——4

    或运算|:12|5——写成二进制——只要有一个1就是1——结果:13

    00001100——12

    00000101——5

    00001101——13

    异或运算^:12^5——写成二进制——两者不相同就是1——结果:9

    00001100——12

    00000101——5

    00001001——9

    取反运算~:~12——写成二进制——包括最高位按位取反

    00001100——12

    11110011—— -13

三元运算符

  • 三元运算符结构:(条件表达式)?表达式1:表达式2

  • 注意几点:条件表达式的结果须是布尔类型

若条件表达式的结果为true,则执行表达式1;若条件表达式的结果为false,则执行表达式2

表达式1与表达式2的值要求可以统一为一个数据类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java关键字: abstract、assert、boolean、break、byte、case、catch、char、class、const、continue、default、do、double、else、enum、extends、final、finally、float、for、goto、if、implements、import、instanceof、int、interface、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while Java标识符: 标识符是Java程序中指定名称的组件,如变量名、方法名、类名等。标识符必须以字母、下划线或美元符号开头,不能以数字开头,只能包含字母、数字、下划线或美元符号。 Java变量Java变量是存储数据的容器,可以存储不同类型的数据,如int、double、String等。变量需要先声明,再进行赋值操作。Java中的变量可以被分类为:局部变量、成员变量和静态变量Java运算符Java运算符包括算术运算符、比较运算符、逻辑运算符、条件运算符、位运算符等。算术运算符包括加(+)、减(-)、乘(*)、除(/)、取余(%)等;比较运算符包括大于(>)、小于(<)、等于(==)、不等于(!=)、大于等于(>=)、小于等于(<=)等;逻辑运算符包括与(&&)、或(||)、非(!)等;条件运算符包括三目运算符(?:)等;位运算符包括按位与(&)、按位或(|)、按位异或(^)等。 Java流程控制: Java流程控制指的是在程序中控制程序执行的顺序和次数。Java流程控制包括分支语句和循环语句。分支语句包括if语句、switch语句等;循环语句包括for循环、while循环、do-while循环等。还有特殊的流程控制语句,如break语句、continue语句等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Etlevent

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

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

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

打赏作者

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

抵扣说明:

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

余额充值