java 基础三
1 运算符
1.1 比较运算符
- 比较运算符的结果都是boolean类型,也即是要么是true,要么是false。
- 比较运算符"=="不能写成"="。
- >
package java003;
/**
* 2017/8/31.
* 说明:
*/
public class OperateDemo {
public static void main(String[] args) {
int a = 3;
int b = 7;
System.out.print(a>b);//false
}
}
- <
package java003;
/**
* 2017/8/31.
* 说明:
*/
public class OperateDemo {
public static void main(String[] args) {
int a = 3;
int b = 7;
System.out.print(a<b);//true
}
}
- ==
package java003;
/**
* 2017/8/31.
* 说明:
*/
public class OperateDemo {
public static void main(String[] args) {
int a = 3;
int b = 7;
System.out.print(a==b);//false
}
}
- !=
package java003;
/**
* 2017/8/31.
* 说明:
*/
public class OperateDemo {
public static void main(String[] args) {
int a = 3;
int b = 7;
System.out.print(a!=b);//true
}
}
- >=
package java003;
/**
* 2017/8/31.
* 说明:
*/
public class OperateDemo {
public static void main(String[] args) {
int a = 3;
int b = 7;
System.out.print(a>=b);//false
}
}
- <=
package java003;
/**
* 2017/8/31.
* 说明:
*/
public class OperateDemo {
public static void main(String[] args) {
int a = 3;
int b = 7;
System.out.print(a<=b);//true
}
}
- instanceof
package java003;
/**
* 2017/8/31.
* 说明:
*/
public class OperateDemo {
public static void main(String[] args) {
String str = "hello";
System.out.print(str instanceof String);//true
}
}
1.2 逻辑运算符
- &(与)、|(或)、!(非)、&&(短路与)、||(短路或)、^(异或)
- 逻辑运算符用于连接两个boolean类型的表达式。
- 示例
package java003;
/**
* 2017/8/31.
* 说明:逻辑运算符
*/
public class OperateDemo2 {
public static void main(String[] args) {
int x = 3;
System.out.print(x >= 2 && x <= 5);
}
}
- &的特点:
- 如下图所示:表达式1&表达式2的结果。
| 表达式1 | 表达式2 | 结果 |
| true | false | false |
| true | true | true |
| false | false | false |
| false | true | false |
- &运算的规律:一假全假,全真为真。
- |的特点
- 如下图所示:表达式1|表达式2的结果。
| 表达式1 | 表达式2 | 结果 |
| true | true | true |
| true | false | true |
| false | true | true |
| false | false | false |
- |运算的规律:一真全真,全假才假。
- 示例:
package java003;
/**
* 2017/8/31.
* 说明:逻辑运算符
*/
public class OperateDemo2 {
public static void main(String[] args) {
int x = 5;
System.out.print(x > 5 || x <6);
}
}
- !的特点
- 如下图所示:!表达式
| 表达式 | 结果 |
| true | false |
| false | true |
- 非运算的规律:非假则真,非真则假。
- 示例:
package java003;
/**
* 2017/8/31.
* 说明:逻辑运算符
*/
public class OperateDemo2 {
public static void main(String[] args) {
int x = 5;
System.out.print(x == 5);
System.out.print(!(x==5));
}
}
- ^
- 如下图所示:表达式1^表达式2
| 表达式1 | 表达式2 | 结果 |
| true | true | false |
| false | true | true |
| true | false | true |
| true | true | true |
- 我们知道,在计算机中一般0表示false,1表示true,当然,需要声明的是java中不是用0表示false,1表示true的,在java中,两者不等价。
- 异或的规律:相同为0,不同为1。即异或左右两边的表达式,如果相同,就是false,不同,就是true。
package java003;
/**
* 2017/8/31.
* 说明:逻辑运算符
*/
public class OperateDemo2 {
public static void main(String[] args) {
System.out.print(true^true);//false
System.out.print(true^false);//true
System.out.print(false^true);//true
System.out.print(false^false);//false
}
}
1.3 位运算符
- <<(左移)、>>(右移)、>>>(无符号右移)、&(与)、|(或)、^(异或)、~(反码)
- 示例:6&3,int类型的数据在内存中是32位,此处为了方便,就没有画32位了。
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int a = 6 ;
int b = 3;
System.out.print( a & b);
}
}

- 示例:6 | 3
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int a = 6 ;
int b = 3;
System.out.print( a | b);
}
}

- 示例:6^3
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int a = 6 ;
int b = 3;
System.out.print( a ^ b);
}
}

- 示例:~3
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int b = 3;
System.out.print( ~ b);//-4
}
}
- 示例:3<<2 ,左移一位,乘以2。
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int b = 3;
System.out.print( 3 << 2);
}
}

- 示例:3 >>2 ,右移一位除以2,如果首个数字是0,则右移的时候,左边空位补0,;如果首个数字是1,则右移的时候,左边空位补1。因为在计算机中0表示正数,1表示负数。
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int b = 3;
System.out.print( b >> 2);
}
}

- 示例:3 >>>2,不管首位是0还是1,在左边空位都是补0。
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int b = 3;
System.out.print( b >>> 2);
}
}
- 面试题1:最有效率的方式算出2*8等于几?
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
System.out.print(2 << 3);
}
}
- 面试题2:对两个整数变量的值进行交换(不需要第三变量)
- 思路①,有弊端,如果两个整数的数值太大,会超出int范围,会引起精度问题。
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int a = 2;
int b = 3;
a = a - b ;
b = a + b;
a = b - a;
System.out.print("a="+a+",b="+b);
}
}
- 思路②
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int a = 2;
int b = 3;
a = a ^ b;
b = a ^ b ;
a = a ^ b;
System.out.print("a="+a+",b="+b);
}
}
1.4 三元运算符
- 格式:
- (条件表达式) ? 表达式1 :表达式2;
- 如果条件表达式为true,运算后的结果是表达式1,
- 如果条件表达式为false,运算后的结果是表达式2。
- 示例:求两个整数的最大值。
package java003;
/**
* 2017/9/1.
* 说明:三元运算符
*/
public class OperateDemo4 {
public static void main(String[] args) {
int a = 3;
int b = 10;
int c = (a >= b) ? a : b;
System.out.print("最大值是:"+c);
}
}
2 程序的流程控制
- 程序的流程控制分为:
- 顺序结构
- 分支结构
- 循环结构
2.1 顺序结构
- 示例:
package java003;
import sun.applet.Main;
/**
* 2017/9/1.
* 说明:顺序结构
*/
public class OperateDemo5 {
public static void main(String[] args) {
System.out.print("哈哈");
System.out.print("呵呵");
System.out.print("嘻嘻");
System.out.print("笨笨");
}
}
2.2 分支语句
- 格式1
if(条件表达式){
执行语句;
}

- 格式2
if(条件表达式){
执行语句1;
}else{
执行语句2;
}

- 格式3
if(条件表达式1){
执行语句1;
}else if(条件表达式2){
执行语句2;
}else{
执行语句3;
}

- 示例:
package java003;
/**
* 2017/9/1.
* 说明:if
*/
public class IfDemo1 {
public static void main(String[] args) {
int x = 3;
if(x > 1){
System.out.println("正确");
}
System.out.println("结束");
}
}
- 示例:
package java003;
/**
* 2017/9/1.
* 说明:if
*/
public class IfDemo2 {
public static void main(String[] args) {
char gender = '男';
if(gender == '男'){
System.out.println("性别为男");
}else{
System.out.println("性别为女");
}
}
}
- 示例三:
package java003;
/**
* 2017/9/1.
* 说明:if
*/
public class IfDemo3 {
public static void main(String[] args) {
int x = 3;
if(x >1){
System.out.print("a");
}else if(x >2){
System.out.print("b");
}else if(x >3){
System.out.print("c");
}else{
System.out.print("d");
}
}
}
- 练习一:用户输入指定的数字,然后输出对应的星期几?
package java003;
/**
* 2017/9/1.
* 说明:
*/
public class IfTest1 {
public static void main(String[] args) {
int i = 5;
if(i == 1){
System.out.print("星期一");
}else if(i == 2){
System.out.print("星期二");
}else if(i == 3){
System.out.print("星期三");
}else if(i == 4){
System.out.print("星期四");
}else if(i == 5){
System.out.print("星期五");
}else if(i == 6){
System.out.print("星期六");
}else if(i == 7){
System.out.print("星期日");
}else{
System.out.print("输入错误");
}
}
}
- 练习二:根据指定月份,输出对应的季节
package java003;
/**
* 2017/9/1.
* 说明:
*/
public class IfTest2 {
public static void main(String[] args) {
int month = 3;
if((month == 3) || (month == 4 )|| (month == 5)){
System.out.print("春季");
}else if((month == 6) || (month == 7 )|| (month == 8)){
System.out.print("夏季");
}else if((month == 9) || (month == 10 )|| (month == 11)){
System.out.print("秋季");
}else if((month == 12) || (month == 1 )|| (month == 2)){
System.out.print("冬季");
}else{
System.out.print("输入错误");
}
}
}
java 基础三的更多相关文章
- Java 基础三、接口与内部类
1. 在Java程序语言中,接口是对类的一种描述.例如Arrays类中sort方法声明可以对对象进行排序,但前提是对象所属的类必须实现Comparable接口. public interface ...
- java基础(三)
1.枚举类,使用enum定义的枚举类默认继承java.lang.Enum,而不是Object类.枚举类的所有实例必须在枚举类中显示列出,否则这个枚举类永远都不能产生实例.相关内容较多,需要后续继续跟进 ...
- java基础三种循环的使用及区别
摘要:Java新人初学时自己的一些理解,大神们路过勿喷,有什么说的不对不足的地方希望能给予指点指点,如果觉得可以的话,希望可以点一个赞,嘿嘿,在这里先谢了.在这里我主要说的是初学时用到的Java三个循 ...
- Java基础(三)-final关键字分析
今天来谈谈final关键字的作用, 虽然有很多博文关于final进行了很深的研究,但还是要去记录下谈谈自己的见解加深下印象.下面直接进入主题: 一.final关键字的作用 1.被final修饰的类不能 ...
- java基础(三)-----java的三大特性之多态
面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...
- java基础(三):反射、反序列化破解单列模式和解决方式
单例模式指的是一个类只有一个对象,通过一些措施达到达到这个目的.但是反射和反序列化可以获得多个不同的对象. 先简单的认识一下单例模式 一:单例模式 通过私有构造器,声明一个该类的静态对象成员,提供一个 ...
- Java基础三(Scanner键盘输入、Random随机数、流程控制语句)
1.引用类型变量的创建及使用2.流程控制语句之选择语句3.流程控制语句之循环语句4.循环高级 ###01创建引用类型变量公式 * A: 创建引用类型变量公式 * a: 我们要学的Scanner类是属于 ...
- java基础(三) 加强型for循环与Iterator
引言 从JDK1.5起,增加了加强型的for循环语法,也被称为 "for-Each 循环".加强型循环在操作数组与集合方面增加了很大的方便性.那么,加强型for循环是怎么解析的 ...
- java基础 三 概念和java程序的结构.
一.java的一些概念: JRE(java runtime environment):java程序运行环境,如果要运行java程序,需要jre支持.jre里包含jvm JDK(java devel ...
随机推荐
- 函数响应式编程及ReactiveObjC学习笔记 (-)
最近无意间看到一个视频讲的ReactiveObjC, 觉得挺好用的 但听完后只是了解个大概. 在网上找了些文章, 有的写的比较易懂但看完还是没觉得自己能比较好的使用RAC, 有的甚至让我看不下去 这两 ...
- for循环问题
印象中的for语句是这样的,语法: for (语句 1; 语句 2; 语句 3) { 被执行的代码块 } 语句 1 (代码块)开始前执行 starts. 语句 2 定义运行循环(代码块)的条件 语 ...
- python之二维码生成
生成的二维码只是网址的链接 直接上代码: import qrcode title = input("要生成的内容:") img = qrcode.make(title) with ...
- python有三种导入模块的方法(转)
原文:http://www.cnblogs.com/allenblogs/archive/2011/11/15/2055149.html python有三种导入模块的方法 其一, import mod ...
- margin用的时候常见问题
margin1. 在同一个方向布局 同时设置左右margin的时候间距是两者之和 同时设置上下margin的时候间距是较大的那个,大者为尊2. 拖拽父级 ...
- MAC上安装EndNote破解版的链接文件 以及某些安装好后有可能替换执照文件的方法
一款非常好用的论文写作软件不多形容,开整: X7 mac版本(非免破解版本)链接: 点击我 X8 mac版本(大客户版本,免破解非常好用) 点击我 X8 windows版本(大客户版本,免破解非常好用 ...
- 数据结构二叉树的所有基本功能实现。(C++版)
本人刚学数据结构,对树的基本功能网上找不到C++代码 便自己写了一份,贴出方便大家进行测试和学习. 大部分功能未测试,如有错误或者BUG,请高手们指教一下,谢谢. 结点声明: BinTreeNode. ...
- mysql创建定时任务,每月1号删除上月数据
1.创建存储过程: CREATE DEFINER=`gzy`@`%` PROCEDURE `delLastMonth`() BEGIN DECLARE lastmonth int; SET lastm ...
- linux 压缩解压打包工具大集合
压缩.解压缩及归档工具有很多,今天小编就整理几个大家较为常用的. compress gzip bzip2 xz zip tar cpio 一.压缩.解压工具 用法 压缩 工具 压缩后 压缩包格式 解 ...
- shell运算符之 关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符
shell运算符有很多,关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符 1,算术运算符 原声bash 不支持简单的算术运算,可以使用expr 工具 两点注意: 表达式和运算符之间要有 ...