栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

注释(commment)

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

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

    多行注释:一段,格式:

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

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

标识符

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

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

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

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

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

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

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

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

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

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

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

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

    常量名:所有字母都大写且每个单词用下划线连接: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,只有truefalse两个值,常常用在条件判断和循环结构中

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

类型转换

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

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

    自动转换:低——高

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

    举例:

//强转类型举例
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;//bytecharshort互相做运算或自身做运算时,都将自动转换成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
    }
}
 
比较运算符 

比较运算符:==、!=、<、>、<=、>=、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【规律:<

右移>>:将整数的二进制数整体向右移,如果原整数为正数,则在空缺位补0;若为负数,则补1【规律:<

无符号右移>>>:右移,补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的值要求可以统一为一个数据类型

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/777955.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号