invader的java学习第五天基础篇
invader的java学习第五天基础篇(持续更新中…)
一、位运算符
- ^、&、|、~、>>、<<、>>>,位运算符就是基于二进制直接进行运算(0为false,1为true)
①两个相同的数字进行^(异或)运算时,其结果一定为0(可以用同性相斥、异性相吸助记)
②0和任何数进行^运算,其结果就是该数字
③两个变量在互相^三次后,两个变量的值可以交换,如下代码:(结果输出应为num1=20;num2=10)
int num1=10;
int num2=20;
num1=num1^num2;
num2=num1^num2;
num1=num1^num2;
System.out.println("num1="+num1+"num2="+num2);
tip:在逻辑运算符中只能接boolean类型的值(true或false),在位运算符中的是接数的,其实意思一样只是体现方式不一样
- 按位左移(<<)(转换成二进制运算,左移相当于左边抹去三个0再把后面缺的位数用0补充,不管是正数还是负数,都用0补充)
System.out.println(2<<3);//输出结果是16;运算规律:2*2^3=16
System.out.println(-2<<3);//输出结果是-16;同上但它是负数
注意:当一个数字左移N位,而且N超过了数字类型的取值范围,相当于左移 num<<(N%32)
按位右移(>>)(和左移原理差不多,但它是用符号位补位,也就是正数就用0补,负数就用1补)
System.out.println(8>>2);//输出结果是2;运算规律:8/2^2(相当于*2^-2)=2 System.out.println(-8>>2);//输出结果是-2;同上但它是负数
无符号按位右移(>>>)(一律用0填补)
①当一个正数进行无符号右移操作时和右移操作的结果是一样的
②当一个负数进行无符号右移操作时得出的结果一定是一个正数
二、条件运算符(?: 用法:表达式①?“表达式②”:“表达式③”)
☆表达式①的值一定是boolean类型;用法:当表达式①结果为true时,该式结果为表达式②,相反为false则为表达式③
☆条件运算符是java中唯一的三目运算符,可以连接三个操作数
import java.util.Scanner;
public class FinalVarTest{public static void main(String[] args) {Scanner input=new Scanner(System.in);System.out.println("==请输入用户名===");int uname = input.nextInt();int regUname = 123;String msg = uname==regUname?"恭喜登录成功":"用户名或者密码错误";System.out.println(msg);//最后两步可以直接改成一步:System.out.println(uname==regUname?"恭喜登录成功":"用户名或者密码错误");}
}
注意:条件运算符最后一定有个结果,该结果要么要用一个变量来存然后输出该变量,要么直接输出,否则会报错
另:条件运算符在一定程度上帮助解决流程控制的问题,可以代替一部分if语句
三、运算符优先级
①有括号的,括号是老大(最主要的)
②单目运算符>双目>三目(++、–比+、-优先)
四、流程控制结构
在编程语言中,程序在运行期间可以用如下流程进行控制:
顺序流程 顺序结构
分支流程 分支结构/选择结构
循环结构
①顺序结构:程序自上而下执行,main方法就是一个典型的顺序结构(但程序里只有这个是远远不够的)
②选择结构:if分支(分单分支和双分支)
单分支:先判定if表达式中的值,如果是true,则执行该条语句,然后接着执行后面的;如果是false,则跳过整个if结构,继续执行后面的
双分支:if-else结构,如果if表达式中的值是true,则执行if里的语句,然后接着执行后面的,反之,则执行else语句,然后跳出整个if-else
注意:if、else分别带一对大括号,但当if或else里只有一条语句时,可省略大括号(最好还是带下);另:if、else里表达式的值一定是boolean型的
-
invader的java学习第五天基础篇相关推荐
- invader的java学习第三天基础篇
invader的java学习第三天基础篇 一.整数的取值范围表 类型名称 数据类型 所占空间 表数范围 字节型 byte 1字节 -128-127 短整型 short 2字节 +-3w(-2^15-2 ...
- invader的java学习第四天基础篇
invader的java学习第四天基础篇(持续更新中-) 一.类型转换 自动转换(数值之间在进行四则运算时,数据类型会自动向大类型靠拢) byte num=10; short a=num; Syste ...
- 【Java学习笔记】【基础篇】07.JavaDoc以及两种使用方式
JavaDoc 1.介绍 JavaDoc是一种将注释生成HTML文档的技术,生成的HTML文档类似于Java的API,易读且清晰明了. JavaDoc是Sun公司提供的一个技术,它从程序源代码中抽取类 ...
- invader的java学习第一天基础篇
invader的java学习第一天基础篇 一.java主要历史 ①java是Sun公司的产品,09年被Oracle公司收购. ②java语言之父:詹姆士高斯林 二.jdk.jre.jvm三者关系 jd ...
- invader的java学习第二天基础篇
invader的java学习第二天基础篇 一.深入了解第一个Hello World程序 public class Hello World{ public static void main(String ...
- Java学习笔记(五):一张图总结完JVM8基础概念
Java学习笔记(五):一张图总结完JVM8基础概念 引文 最近在学习JVM的相关内容,好不容易把基础概念全部都学了一遍,却发现知识网络是零零散散的.迫不得已,只好再来一次总的归纳总结.为了更好的理解 ...
- java学习笔记:零基础java学习路线+配套资料+书籍推荐
公众号菜鸟名企梦2018年,精品文章汇总: 01 我的秋招 我的秋招offer 我的offer选择 秋招全面总结-必读宝典 求职必读 02 零基础学习路线 零基础-java学习路线(上) 零基础-ja ...
- JAVA学习笔记五---函数
JAVA学习笔记五---函数 5.1 方法的学习 编写一个程序,求圆的周长和面积. package practice; /*** 编写一个程序,求圆的周长和面积.* @author iszhangyo ...
- Java学习记录五(多线程、网络编程、Lambda表达式和接口组成更新)
Java学习记录五(多线程.网络编程.Lambda表达式和接口组成更新) Java 25.多线程 25.1实现多线程 25.1.1进程 25.1.2线程 25.1.3多线程的实现 25.1.4设置和获 ...
最新文章
- (转载)从无知到有知
- GetLastError编号解释
- Please use new-style autograd function with static forward method
- sql 发送邮件网络附件_利用VBA发送附件电子邮件
- fopen、_wfopen临时
- html页面取js里面的值,如何在javascript中获取HTML元素的样式值?
- 定义动画名字html,CSS3 animation-name属性怎么用?
- KeyShot 10最新版发布 支持big sur KeyShot 10 Pro for Mac新功能
- 智能实验室服务器,阿里巴巴机器智能实验室线下智能团队三年工作总结
- 深入Redis持久化
- 优化算法——差分进化算法(DE)
- 什么是存储过程?有什么优点?
- 【银河麒麟V10】【桌面】火狐浏览器设置主页不生效
- 2014年大数据解决方案提供商面临三大挑战
- AI智能润色改写,伪原创写作工具,毕业论文必备工具
- html 3d坐标,CSS3三维变形,transform,3D,视角知识
- BSN-DDC基础网络的DID功能设计
- csv和json文件
- CentOS7 DNS 设置
- 《深入理解计算机系统》读书笔记
热门文章
- win10系统让任务栏变透明的方法
- 机器学习中原始数据处理的常用数据变换方法整理汇总
- 四级真题图表作文计算机,2017年12月英语四级作文框架:图表作文
- Linux的一些命令行总结(1)
- Notepad++下载及中文转换
- 爬取新浪微博数据+新浪微博模拟登录+mysql+python
- 要实践不要忽悠的“云计算应用创新推进大会”
- 【渝粤教育】国家开放大学2018年春季 0691-21T物理化学及实验 参考试题
- TikTok投4.2亿欧元在爱尔兰开建首个欧洲数据中心,海外总部也设于英国伦敦
- 'Microsoft.DataTransformationServices.Wizards' error in VS 2017