JavaSE之变量和运算符

关键字,保留字,标识符

        // 关键字:编程语言把一些单词赋予了特殊含义
        // 保留字:以前是关键字,因功能或某些特殊原因现在不提倡使用的关键字
        // 标识符 : 一切需要程序员自己起名的东西
        //          必须以字母、下划线(_)或美元符号($)开头;
        //          余下的字符可以是下划线、美元符号或任何的字母或数字,长度不限
        //          标识符中不能有空格;
        //          不能使用Java中的关键字或者保留字做为标识符
        //      类 : 每个单词首字母大写,其余字母小写,如 HelloWorld,Demo,GetMaxAge,DBUtils
        //      包:  所有单词小写
        //      变量和方法:首个单词小写,其余单词首字母大写,其余小写 (main,getAge,getMaxAge)
        //      常量:全大写(PI,MAX_VALUE)

Java中数据类型分两大类型

public class Demo2 {
    public static void main(String[] args) {
        // 数据类型
        //  一、基本数据类型 (4类8种):
        //      ①整型(byte,short,int[默认类型],long),他们之间取值范围不同
        //      ②浮点型(float,double[默认类型]),他们之间取值范围不同
        //      ③字符型(char)
        //      ④布尔型(boolean)
        //  二、引用数据类型,从数组开始接触
//      System.out.println(100); // int[默认类型]
//      System.out.println(100.99);// double[默认类型]
        // 变量 :程序运行过程中可变的量
        // Java是一种强类型语言 : 1.变量必须要声明(创建);2.必须指定类型;3.必须指定名称
        // 语法 :类型 名称 [= 值]
        byte num1 = 127;
        short num2 = 200;
        int num3 = 100;
        // long数据,末尾加大小写l均可,表示数字的取值范围是long的范围,不是默认的int范围
        long num4 = 9999999999L;
        
        double num5 = 9.001;
        float num6 = 100.99f;
//      使用一个变量时,必须经过初始化(被赋过值),否则无法编译
        System.out.println(num1);
        System.out.println(num2);
        System.out.println(num3);
        System.out.println(num4);
        System.out.println(num5);
        System.out.println(num6);
        
//      字符型 : 单引号,只能表示一个字符,包括中文,说明char占2字节
        char c1 = '中';
//      字符在磁盘中是以数字形式保存的
        System.out.println(c1+1);
//      布尔型 : 只可以赋 true or false
        boolean b1 = true;
    }
}

常见进制,字符,转义符

public class Demo2 {
    public static void main(String[] args) {
        // 1.进制(二进制,八进制,十六进制)
//      int num1 = 010;
//      int num2 = 0x1F;
//      System.out.println(num1);
//      System.out.println(num2);
        // 2.字符的另一种表示方式unicode,次要
//      char c1 = '\u4e2d';
//      System.out.println(c1);
        // 3.转义符,次要
        char c1 = '\t';
        System.out.print(c1);
        System.out.println(1);
//      System.out.print(1);
//      System.out.println(2);
    }
}

同一个块内,不能声明同名变量
变量的作用域:变量的有效范围,从声明它的位置开始,到它所在的块结束

算术运算符

//      算术运算符: +、﹣、*、/、%、++、 --
//      + : 如果+两侧是数值表达式,做的就是加法;如果+有一侧有字符串,加号就是连接符号
//      System.out.println(5+6+7);// 18
//      System.out.println(5+"6"+7);// 567
//      System.out.println(5+6+"7");// 117
//      System.out.println(5+6+'7');// 66
//      System.out.println(5+","+6);// 5,6
        
//      int num1 = 1011;
//      int num2 = 1;
//      num1+num2=1012
//      System.out.println("num1+num2="+(num1+num2));
//      1011+1=1012
//      System.out.println(num1+"+"+num2+"="+(num1+num2));
        
        // / : 整型与整型相除,结果还是整型(取整,不是四舍五入)
//      System.out.println(11/3); // 3
//      System.out.println(11.0/3);// 3.6666666666666665
//      System.out.println(11/3.0);// 3.6666666666666665
        
//      % 取余数(模运算):结果的正负,只与被除数有关
//      System.out.println(5%2);//      1
//      System.out.println(-5%2);//     -1
//      System.out.println(5%-2);//     1
//      System.out.println(-5%-2);//    -1
//      System.out.println(4%5);//4

自增,自减

public class Demo4 {
    public static void main(String[] args) {
        // ++自增 , --自减
//      i++;// i = i + 1; i+=1;
//      ++i;// i = i + 1; i+=1;
//      int i = 1;
//      int j = 0;
//      j = i++;// ++在后,先运算,再自增
//      System.out.println(i);//2
//      System.out.println(j);//1
//      System.out.println(++i);
//      System.out.println(i);
        int i = 1;
//      i++;
//      System.out.println(i++);// 2
//      System.out.println(i++);// 3
//      System.out.println(i);//4
        int j = 11110;
        j = ++i;
        System.out.println(i);// 2
        System.out.println(j);// 2
    }   
}
public class Demo5 {
    public static void main(String[] args) {
        int num1 = 20;
        int num2 = 30;
        System.out.println((num1++)+num2);// 50
        System.out.println(num1+","+num2);// 21,30
        System.out.println((num1++)+num2++);// 51
        System.out.println(num1+","+num2);// 22,31 
        System.out.println((num1++)+(++num2));// 54
        System.out.println(num1+","+num2);// 23,32
    }
}
public class Demo6 {

    public static void main(String[] args) {
        int num1 = 20;
        int num2 = 30;
        System.out.println((num1++)+num2+","+((++num1)+(++num2)));// 50,53
        System.out.println(num1+","+num2);// 22,31
    }

}

赋值运算符:=、+=、﹣=、*=、/=、%=

        int num = 10;
//      System.out.println(num);//10
//      num = 100;
//      System.out.println(num);//100
//      num += 10;// 与num = num + 10;等效
//      System.out.println(num);//110
//      num -= 10;// 与num = num - 10;等效
//      System.out.println(num);//100
//      num *= 10;// 与num = num * 10;等效
//      System.out.println(num);//1000
//      num /= 3;
//      System.out.println(num);
//      num %= 3;
//      System.out.println(num);

比较运算符

public class Demo8 {
    public static void main(String[] args) {
        // 比较运算符:>、<、>=、 <=、==、!=
        int age = 22;
        if(age > 18) {
            System.out.println("成年人");
        }
        if(age == 18) {
            System.out.println("正好18");
        }
        if(age != 18) {
            System.out.println("不是18");
        }
        if(age < 18) {
            System.out.println("未成年人");
        }
    }
}

逻辑运算符

public class Demo9 {
    public static void main(String[] args) {
        // 逻辑运算符:!非、&&与、||或
        int age = 12;
        double height = 1.99;
//      &&与
//      if(age > 18 && height > 1.8) {
//          System.out.println("你真棒,又高又高");
//      }
        
//      ||或
//      if(age > 18 || height > 1.8) {
//          System.out.println("你真棒,又高又高");
//      }
        
//      !只能对boolean值取反,true取反false,false取反true
        boolean b = height > 1.8;
        if(!b) {
            System.out.println(111);
        }
    }
}

位运算符(次要)

public class Demo10 {
    public static void main(String[] args) {
        // 位运算符: &、|、^ 、 ~、>>、<<、>>>(pass)
        // 自己定义一个整数,代表年份
//      int year = 2020;
        //  闰年判断依据:能被4整除且不能被100整除,或者能被400整除
//      if(year%400 == 0 | (year%4 == 0 & year%100 != 0)) {
//          System.out.println("闰年");
//      }
        
//      按位与&,按位或| 和 逻辑与&&,逻辑或|| 都能进行逻辑判断
//      按位与&,按位或|能够参与位运算(位运算:针对的是二进制整数)
//      & :只有参加运算的两位都为1,&运算的结果才为1,否则为0
        /*
         *  101     5
            110     6
            ----------
            100     4
         */
//      System.out.println(5&6);
//      System.out.println(3&5);
//      | :只有参加运算的两位都为0,|运算的结果才为0,否则为1
        /*
         *  101     5
            110     6
            ----------
            111     7
         */
//      System.out.println(5|6);
//      ^:只有参加运算的两位不同,^运算的结果才为1,否则为0
        /*
         *  101     5
            110     6
            ---------
            011     3
         */
//      System.out.println(5^6);
        
//      << :a<<b,将a的二进制数据左移b位,右边移空的部分补0  1100 12    
        // 3*2^2 = 12 
        // 5*2^3 = 40 
        // 4*2^4=64 
        // a<<b等效于a*2^b
//      System.out.println(4<<4);
        
//      >> : a>>b 64/(2^2) 128/(2^3)
        // a>>b等效于a/(2^b)
//      System.out.println(128>>3);
        
//      int num = 2;以效率最高的形式变成8
//      int num = 2;
//      num = num<<2;
//      System.out.println(num);
    }
}

&,|和&&,||有什么异同
1.都能参与逻辑运算
2.&,|还能参与位运算,&&,||不能
3.&&,||有短路性,&,|没有

三元运算符

public class Demo12 {
    public static void main(String[] args) {
        // 条件运算符(三元运算符): ?:
        // 表达式1? 表达式2: 表达式3
        // 当表达式1是true时,返回表达式2,否则返回表达式3  
//      int num = 1451 > 999 ? 0 : 1;
//      System.out.println(num);
        
//      year%400 == 0 || (year%4 == 0 && year%100 != 0
        int year = 1600;
        System.out.println(year%400 == 0 || (year%4 == 0 && year%100 != 0) ? "闰年" : "平年");
    }
}

类型转换

public class Demo2 {
    public static void main(String[] args) {
        // 类型转换
        // 1.自动类型转换 :两种类型彼此兼容的,目标类型取值范围大于原类型
//      byte num1 = 12;
//      short num2 = num1;
//      int num3 = num2;
//      long num4 = num3;
        // 2.强制类型转换:两种类型彼此不兼容的,目标类型取值范围小于原类型
        long num1 = 128;
        int num2 = (int)num1;
//      short num3 = (short)num2;
//      byte num4 = (byte)num3;
//      System.out.println(num2);
//      System.out.println(num3);
//      System.out.println(num4);
        char c1 = 'A';
        char c2 = (char)(c1 + 32);
//      System.out.println(c2);
    }
}

运算时有兼容方向

public class Demo3 {
    public static void main(String[] args) {
        // 运算时的兼容
        // 向范围大的方向兼容
//      long num1 = 10;
//      int num2 = 20;
//      int num3 = (int)(num1 + num2);
//      System.out.println(num3);
        
        // byte short char int ->int
        
//      byte num1 = 9;
//      short num2 = 10;
//      short num3 = (short)(num1 + num2);
//      int num3 = num1 + num2;
        
        short num1 = 99;
//      num1+2计算结果为int类型,需要强转才能赋值给short
        num1 = (short)(num1 + 2);
//      +=有自动转换,无需强转
        num1 += 2;
//      short num1 = 99; num1 = num1 + 2;与num1 += 2;有什么区别
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,171评论 0 9
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,865评论 6 13
  • 1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或...
    哈哈哎呦喂阅读 646评论 0 0
  • 第01章 JAVA简介第02章 基础语法第02章 递归补充第03章 面向对象第04章 异常处理第05章 数组第06...
    顺毛阅读 509评论 0 1
  • 和自己说声对不起 曾经为了别人为难自己 说声对不起 很多东西都没学会好好珍惜 因为伪装让自...
    领家来阅读 236评论 0 0