JavaBasic_03
变量
变量定义的格式:
数据类型 变量名 = 初始化值;
可以在一行中定义多个变量(在实际开发中不推荐,推荐一行定义一个变量)数据类型 变量名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.+的作用:
加法
整数
字符串连接符
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.++和--的应用
单独使用效果相同
参与运算使用,在操作数的前后效果不同
//+ 表示正数 byte a = +1; //当两个整数做除法运算的时候,其运算结果,会舍弃小数位,只保留整数位 int b = 3/2;
赋值运算符
符号
=
+=
-=
*=
/=
%=
关系运算符
注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
注2:比较运算符“==”不能误写成“=” 。尤其注意
逻辑运算符
&:只要有一个为false,结果就是false
|:只要有一个为true,结果就是true
^: 相同为false,不同为true
& 和 && 运算结果一样,执行方式不一样,
&& 存在短路现象:如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算
& 左边无论真假,右边都进行运算
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。不同为true,相同为false
位运算符
绝大部分情况,我们都是针对正整数使用位运算
JavaBasic_03的更多相关文章
随机推荐
- Hadoop格式化 From hu-hadoop1/192.168.11.11 to hu-hadoop2:8485 failed on connection exception: java.net.
192.168.11.12:8485: Call From hu-hadoop1/192.168.11.11 to hu-hadoop2:8485 failed on connection excep ...
- ORM框架(ITDOS实战源码)
ORM提供了实现持久化层的另一种模式,它采用映射元数据来描述对象关系的映射,使得ORM中间件能在任何一个应用的业务逻辑层和数据库层之间充当桥梁. 如以下示例: public int GetSystem ...
- javascript 多个onclick function 取对应值
方法1: 直接获取值 <button onclick="aa(1)">执行</button> <button onclick="aa(2)& ...
- mac navicate 2013 - Lost connection to MySQL server at 'reading initial communication packet
mac 本地mysql用navicate打开表时遇到如下错误: 2013 - Lost connection to MySQL server at 'reading initial communica ...
- toolTip(用svg制作出富有动态的对话框)
昨晚看了用svg如何制作富有动态的tooltip,于是今天就心血来潮学着做一下,于是也成功做出来,也明白其中的原理,收获颇多阿!接下来要多去学习svg,这是个好东西. 这其中也注意了一些平时纠结的细节 ...
- vue项目如何打包前后端不分离发布手把手教学apache、nginx
vue项目如何不分离发布 1.首先yarn build 我用了vue-cli脚手架,bulid后的dist文件夹里的index.html有加版本号,那么为什么需要加版本号呢? a.回滚 b.解决浏览器 ...
- 002-linux——控制台的使用:
1.桌面控制台: 2.字符控制台: .默认6个字符控制台. .独立运行 互不影响 .多用户 多任务 tty-控制台的使用: .开始进入的是图形图面:tty1 就是图形界面. .图形界面切换到字符界面 ...
- 【2】IOS APP打包发布
目的: 本文的目的是对IOS APP打包发布做了对应的介绍,大家可根据文档步骤进行mac环境部署: 申请苹果开发者账号 此处略 创建申请证书 这样做的目的就是为你的电脑安装发布许可证,只有这样你的电脑 ...
- 尚学堂java 参考答案 第八章
一.选择题 1.BD 解析:B:Integer是对象,所以默认的应该是null对象.D使用的是自动装箱 2.A 解析:String类的对象是final型,是不能修改的,concat()方法是生成一个新 ...
- 适应c++ 新特性 - 与我 - 多年传统方式开发(新特性参考微软标准:https://msdn.microsoft.com/zh-cn/library/hh279654.aspx)
公司同事都在积极使用c++的新特性,并对其赞不绝口,而自己一直做着传统的c++开发方式,到底这些新特性如何,又是怎么提高开发效率的,我依然在疑问当中,从同事的说法和实际代码操练里,确实在减少代码量,集 ...