变量

变量定义的格式:

数据类型 变量名 = 初始化值;

可以在一行中定义多个变量(在实际开发中不推荐,推荐一行定义一个变量)数据类型 变量名1=初始化值,变量名,...,变量名n

        //可以不在变量定义定义的时候赋初值,只要保证在首次使用之前,初始化就可以        byte b1=3,b2=4,b;​        //初始化的时候,可以用变量的值来初始化        byte a = b1;​        //? 出错:byte,short,char 参与运算首选转化成int类型        //b=b1+b2;​        //? 对了, 编译器变聪明了        b= 3+4; //3和4默认是int类型     //b=100 + 100;​        //这里一旦涉及到变量,编译器就不够智能了,因为变量代表内存中的一片存储空间,而变量的值是指内存空间中        //所存储的数值,在编译的时候,我们的程序并未真正执行,所以变量还没有在内存中分配响应的存储空间        //b =  b1 + 0;
//练习2        // 130: 原码 0 1000 0010        // byte 补码  1000 0010-> 1 1111 1101 -> 1 1111 1110 -> -126        byte bb = (byte)130;  //byte 能表示的最大整数时127        System.out.println(bb);
        // 300: 256+32+12  2^8+2^5+2^3+2^2  原码 01 0010 1100        //                                  补码    0010 1100  -》 原码0010 1100-》 32+12=44        byte bb1 = (byte)300;        System.out.println(bb1);​        //强制转化,可能损失数据精度​

字符串拼接

        System.out.println('a');
​
        System.out.println('a'+1);
        //如果运算符为+,并且操作数有字符串类型的值参与运算+,字符串拼接   "hello" + "world" = "helloworld"
        System.out.println("hello"+'a'+1);
        System.out.println('a'+1+"hello");
        System.out.println("5+5="+5+5);
        //("5+5=" + 5) "5+5=5" + 5 = "5+5=55"
        System.out.println(5+5+"=5+5");
 

算数运算符

1.+的作用:

  1. 加法

  2. 整数

  3. 字符串连接符

2./运算:

  • 整数相除,只能得到整数

  • 要想得到小数,可以*1.0

3.%:运算符号取决于,被取余的数,而不是模数

取余(也叫求模)操作根据公式计算就可以了。设A除以B的结果为Q,余数为R,则 A = B * Q + R,R = A - B * Q。

例如:-8 % 3

因为-8 / 3 = -2,那么余数就是R = A - B * Q,即-8 - 3 * (-2) = -2。

取余操作除了套用公式来做,还有一个快捷的经验,就是取余的结果的符号永远和被除数的符号一样

这个经验可以用下面的例子来解释:去银行借了8万块贷款,每个月还3万,还了2个月之后,还剩下2万没还,这个2万依然是欠的,所以和8万的符号相同。

4.++:自增1

  • ++ 在前 ++a: 先自增1,在访问该变量的值

  • ++ 在后 a++: 先访问该变量的值,在自增1

5.--:自减1

  • --在前 --a:先自减1,在访问该变量的值

  • --在后 a--: 先访问该变量的值,在自减1

6.++和--的应用

  1. 单独使用效果相同

  2. 参与运算使用,在操作数的前后效果不同

        //+ 表示正数        byte a = +1;                //当两个整数做除法运算的时候,其运算结果,会舍弃小数位,只保留整数位        int b = 3/2;

赋值运算符

  • 符号

    • =

    • +=

    • -=

    • *=

    • /=

    • %=

关系运算符

注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。

注2:比较运算符“==”不能误写成“=” 。尤其注意

逻辑运算符

&:只要有一个为false,结果就是false

|:只要有一个为true,结果就是true

^: 相同为false,不同为true

& 和 && 运算结果一样,执行方式不一样,

  • && 存在短路现象:如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算

  • & 左边无论真假,右边都进行运算

  • “|”和“||”的区别同理,双或时,左边为真,右边不参与运算。

  • 异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。不同为true,相同为false

位运算符

绝大部分情况,我们都是针对正整数使用位运算

JavaBasic_03的更多相关文章

随机推荐

  1. iOS架构设计系列之解耦的尝试之变异的MVVM

    最近一段时间,在思考如何合理的架构一个可扩展性良好的界面编程方式.这一部分的成果做成了一个叫ElementKit的库.目前功能在不断的完善中. 关于iOS的架构,看多了MVVM,VIPER,MVC,M ...

  2. Python面向对象之继承

    前言: 继承是面向对象的3大特性之一,对于继承一点要注意一下4点. 一.基本查找 如果子类继承了父类,子类的实例化对象,没有的方法和属性会去父类找 class Parent(object): #父类 ...

  3. vue-cli webpack全局引入jquery

    1.首先在package.json里加入, dependencies:{ "jquery" : "^2.2.3" } 2.安装依赖 npm install jq ...

  4. Mysql 用户ip访问根据省份查询

    表名:shop_interview_customer 表结构:customerId空为游客模式 interviedId customerId interviewIP iPdetail 1 1001 1 ...

  5. 研究Duilib的实现结构

    第一步:调用RegisterClassEx(): 第二步:调用CreateWindowEx() 第三步:调用ShowWindow(),同时启动消息循环 说明: 1.RegisterClass,Regi ...

  6. oracle日志相关的表

    SELECT * FROM all_objects t where  object_name like '%EN_CONCAT_IM%';DBA_HIST_SQLTEXTDBA_HIST_SQLSTA ...

  7. Android简易项目--傻瓜式阿拉伯语输入法(Dummy Arabic Input)

    一.应用名称 Android简易项目--傻瓜式阿拉伯语输入法(Dummy Arabic Input) 二.应用图标 三.应用说明 现在通行的阿拉伯语键盘布局并无规律可循,阿拉伯语使用者需要花费较多时间 ...

  8. 第三节 java 数组(循环遍历、获取数组的最值(最大值和最小值)、选择排序、冒泡排序、练习控制台输出大写的A)

    获取数组的最值(最大值和最小值) 思路: 1.获取最值需要进行比较,每一次比较都会有一个较大的值,因为该 值不确定,需要一个变量进行临储. 2.让数组中的每一个元素都和这个变量中的值进行比较,如果大于 ...

  9. spoon 更新数据

    一个小需求,被要求使用spoon 来同步数据 主要流程为: 1.查询A库未同步数据 id 2.根据步骤1查到的id,作为条件更新B库数据 3.更新B库数据成功则更改库A中的数据状态为已同步. 4.添加 ...

  10. netty源码理解(二) serverstrap.bind()

    eventloop是一个线程,里面有一个executor封装了一个线程工厂,在启动的时候启动一个线程,传入的实现了runnable的内部类,里面调用了eventloop的run方法.