自学Java-运算符
1.byte值的问题:
byte b1=127;
byte b2=(byte)128; //-128
byte b3=(byte)129; //-127
byte b4=(byte)130; //-126
byte的范围:-128 ~ 127,
128:10000000
-128:10000000(这里1既是符号位,也是数值位)。
2.数据类型转换之默认转换:
只要参与运算就会被提升为int。
byte、short、char -- int -- long -- float -- double,
long:8字节,float:4字节。
它们的底层存储结构不同,浮点数转成小数的二进制去运算,
17.625换算成二进制10001.101,
整数部分,除以2,直至商为0,余数反转,
小数部分,乘以2,直至乘为0,进位顺序取。
在将10001.101右移,直至小数点签只剩1位,1.0001101*2^4,因为右移了四位。
float表示的数据范围比long的范围要大,
long,2^63-1,
float,3.4*10^38 > 2*10^38 > 2*8^38 > 2*2^3^38 = 2*2^114 > 2^63-1。
Java语言中的字符char可以存储一个中文汉字,因为Java语言中字符占两个字节,
Java采用的是Unicode编码。
3.运算符:
运算符是对常量和变量进行操作的符号。
分类,算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符。
整数相除只能得到整数,要得到小数,只需要将操作的数据中任意一个数据变为浮点数。
x*1.0/y,既不改变数值,又能得到浮点数。
++、--运算符的使用,
单独使用,放在操作数前后效果一样,
参与运算使用,放在操作数前,先自增自减,再参与运算,放在操作数后,先参与运算,再自增自减。
int x=4; int y=(x++)+(++x)+(x*10); 4+6+60=70。
字符串连接符(+),
System.out.println("hello"+'a'+1); //helloa1
System.out.println('a'+1+"hello"); //98hello
扩展的赋值运算符其实隐含了强制类型转换,s+=1;是不等价于s=s+1;的,
而是等价于s=(s的数据类型)(s+1);。
&前后是数字,做位运算、前后是布尔值,做逻辑运算,其它同理。
&逻辑与,|逻辑或,^逻辑异或,!逻辑非。
&&相比&具有短路作用,左边是false,右边不执行,所以程序执行效率高于&,||与|同理。
位运算符,&(有0则0)、|(有1则1)、^(同则0不同则1)、~(按位取反),<<、>>、>>>。
交换两个变量的值,
用位异或实现,a=a^b; b=a^b; a=a^b; ,
用变量相加实现,a=a+b; b=a-b; a=a-b; ,
一句话搞定,b=(a+b)-(a=b); 。
位移运算符,
<<左移,左边最高位丢弃,右边补齐0,
>>右移,最高位是0,左边补齐0,;最高位是1,左边补齐1,
>>>无符号右移,无论最高位左边是0还是1,左边补齐0。
<<,把<<左边的数据乘以2的移动次幂,>>,把>>左边的数据除以2的移动次幂,
最有效率的2*16的方式,即2<<4。
单目运算符(~3),双目运算符(3+4),
三目运算符,比较表达式?表达式1:表达式2,返回true,执行表达式1,返回false,执行表达式2。
三个数比较大小,一步搞定,
int max=(a>b)?((a>c)?a:c):((b>c)?b:c); ,
boolean flag=(m==n)?true:false; 比较两数是否相同。
4.键盘录入:
导包,import java.util.Scanner;
创建键盘录入对象,Scanner sc=new Scanner(System.in);
通过对象获取数据,int x=sc.nextInt(); 。
5.流程控制语句:
流程控制语句分3类,顺序结构、选择结构、循环结构。
转载于:https://blog.51cto.com/xiaozhuan2016/1866448
自学Java-运算符相关推荐
- java自学——java的基本讲解和变量、字符串、运算符的简单介绍
java自学--java的基本讲解和变量.数组.字符串.运算符的简单介绍 hello world程序 java程序的结构 java语句的组成介绍 关键字 标识符 标识符的命名规则 分隔符 注释符 空白 ...
- 结合大学四年经验,带你揭秘高效自学Java的方法和路线(从认识、方法、反馈3个角度出发)
首发公众号:bigsai 收藏不是真支持,点赞.关注三连才是真支持! 前言 大家好,我是bigsai 好久不见,甚是想念,文章同时收录在回车课堂.本文就自学Java的n个问题和n个方法做出一些建议,并 ...
- java如何对一个表达式开根号_作为一个零基础的新手,如何系统的自学Java和JavaEE开发技术?...
0基础就找资料学习吧,建议不要看书,选择视频更好,对于新手来说,书本如果在没有人指导之下去看基本上很难看懂 在你学习Java之前一定要去了解一下这门语言,千万不要脑子热就选择来这行 如何系统的自学Ja ...
- 电脑编程入门自学java_电脑编程入门自学Java指南
随着Java近些年来的强劲发展,想要转行学习Java的初学者也越来越多了.然而,入门自学Java并不是一件轻松的事情.众所周知,万事开头难,尤其是没有编程语言基础的学习者,不仅仅需要付出更多的心血和汗 ...
- 自学 java如何入门?
玩Java多年的老司机带你上车全面系统学习Java,并且还能教你如何学习才能在今年拿到一份不错的offer. 说到系统全面,就是以目前绝大部分公司招聘要求的知识内容为基准,毕竟我们学习Java都是为了 ...
- 自学Java如何正确入门?
前言 说到系统全面,就是以目前绝大部分公司招聘要求的知识内容为基准,毕竟我们学习Java都是为了高薪工作,<史记>中说"天下熙熙皆为利来,天下攘攘皆为利往",为了高薪工 ...
- 垃圾大学,想自学 Java 可以吗?难吗?毕业后能找到一份 6k左右的工作吗?
前几天在头条上收到一条私信,内容大致是这样的:"我学校比较垃圾,想自学 Java 可以吗?自学 Java 难吗?毕业后能找到一份 6k左右的工作吗?" 不知道有没有人有类似的问题, ...
- 前几天在头条上收到一条私信,内容大致是这样的:“我学校比较垃圾,想自学 Java 可以吗?自学 Java 难吗?毕业后能找到一份 6k左右的工作吗?”
前几天在头条上收到一条私信,内容大致是这样的:"我学校比较垃圾,想自学 Java 可以吗?自学 Java 难吗?毕业后能找到一份 6k左右的工作吗?" 不知道有没有人有类似的问题, ...
- java自学能学会吗_自学java能学会吗?有没有捷径能尽快学会?
作为一种灵活多变,前景可瞻,又易学习的编程语言,Java备受年轻人关注,很多开发爱好者,或者想从事Java开发的年轻人放出豪言"我要自学Java,拿高薪,走上人生巅峰" 但是:Ja ...
- 自学java的难度_自学java难不难 搞定这十三步就够了
自学java难不难,对不同的人来说可能不一样,有着编程基础的来说,相对容易.如果是完全小白,就会稍微困难点,下面总结了十三步来自学java的步骤. 第1步:自学JAVA的开发环境配置.开发首个Java ...
最新文章
- bootstrap之div居中
- Python2.7连接MySQL5.7 附demo
- 基于.Net 2.0 (C# 2.0, ASP.NET 2.0)的快速Web开发框架设计
- oracle 查看表结构约束,oracle 约束
- 【一】Drupal 入门之新建主题
- linux如何加设磁盘配额,Linux系统攻略:如何为添加的硬盘做配额
- 0010服务器无对应信息,服务器版本对应的内存
- python的图书管理项目教程_基于python图书馆管理系统设计实例详解
- 批量修改txt内容_不用再慢慢手动修改,用Excel批量修改文件名
- VS 2008的JavaScript代码提示功能 (学习老赵视频的笔记)
- python按键退出循环_Python的for循环退出
- Zoople HTML 编辑器组件 for NET
- opera安装java插件_欧朋浏览器Opera插件安装指南
- 张正友标定法过程推导笔记
- HTML段落前面怎么加黑点,Word文档段落前面的那个小黑点,是怎么搞出来得呀?...
- 让Win7做DHCP服务器
- 图片择优算法(模糊图片筛选出最清楚的图片) 没有使用第三方库
- 贝塞尔曲线(Bezier)之爱心点赞曲线动画效果
- 【Python实例】Python五分钟码出—女神颜值打分系统(人脸识别)!
- 免安装版的Mysql教程
热门文章
- 可溶于水的机器人见过吗?明胶和糖3D打印而成,现登Science子刊封面
- 树莓派10年销量4600万台!儿童玩具到工业设备它都可,创始人:最初只想造廉价电脑,不料第一天就卖出10万台...
- 体验首款Linux消费级平板,原来芯片和系统全是国产
- 如何让机器说话更像人?清华和京东的三位大牛给出答案 | CCF C³
- 第十三届光华工程科技奖公布,彭士禄、张伯礼、王海峰等40人及1个团体获奖
- 特斯拉自动驾驶新能力:识别红绿灯停车标识;尝鲜车主:实用好用
- AI同传效果媲美人类,百度翻译出品全球首个上下文感知机器同传模型
- 深挖之后吓一跳,谷歌AI专利何止一个dropout,至少30项今日生效
- 33 个 JavaScript 核心概念系列(三): 显式 (名义) 与 隐式 (鸭子)类型转换
- 机器视觉基础(2)---坐标与矩阵变换