Java基础语法

Java运算符

算术运算符

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。

1、操作数:参与运算的数据 称为操作数。
2、表达式:运算符和操作数的整体 称为表达式。单独的一个操作数也可以看作一个最简单的表达式。 int age = 1+1;
3、返回值:操作数 或者是 表达式 参与 运算的结果。
4、一元运算符:只需要一个操作数的运算符。也叫做 单目运算符。
5、二元运算符:需要两个操作数的运算符。也叫做 双目运算符。
6、三元运算符:需要三个操作数的运算符。也叫做 三目运算符。
注意:参与所有运算的数据,都是操作数 或者 表达式的 返回值 参与的。


/ 和 % 的应用 [ 求随机数的千位、百位、十位、个位 ]

public class Test {
public static void main(String[] args) {
// 任意四位数
Scanner scanner = new Scanner(System.in);
System.out.print("请输入任意四位数:");
int num = scanner.nextInt();
int unit = num % 10;// 个位
int decade = num / 10 % 10; // 十位
int hundred = num / 100 % 10;// 百位
int Thousands = num / 1000 % 10;// 千位
System.out.println("千位:" + Thousands + "\n百位:" + hundred + "\n十位:" + decade + "\n个位:" + unit);
}
}

代码演示


i++和++i的异同之处
共同点:
1、i++ 和 ++i 都是变量自增+1,都等价于i=i+1
2、如果i++,++i是一条单独的语句,两者没有任何区别。
3、i++和++i的使用仅仅针对变量。5++和++5会报错,因为5不是变量。
不同点:
如果i++,++i 不是一条单独的语句,他们就有很大的区别。

赋值运算符

符号:  =    符合赋值运算符:[Java中:+=、-=、*=、/=、%=] => 类型自动提升
复合赋值运算符特点:
1,生成的字节码文件要稍微小一点点(内存消耗小)。
2,隐含一个强制类型的转换。强制转换的类型为 左边变量的类型
* 左值 的类型 要和 右值表达式的返回值的类型 要兼容,不然会出现精度丢失。
示例:int a,b,c;  a = b = c =3;
   int a = 3; a += 5;  => a+=5 <==> a=a+5

比较运算符(关系运算符)

1、>、<、>=、<= :只适用于 数值型包括 char 类型的数据。
2、==  != 适用于 java支持的所有的数据类型。

逻辑运算符

参与逻辑运算的操作数必须是 boolean 类型的数据。逻辑表达式的 返回值 也是 boolean 类型。在Java中不可以写成3<x<6,应该写成x>3 & x<6





短路与( && ) 、条件与 (  & )区别:
&&:如果表达式左边为真,表达式右边参与运算;如果左边为假,那么右边不参与运算,直接返回整个逻辑表达式的结果为false 。
& :表达式左边运算结果无论真假,右边都进行运算。
* 短路与的效率往往高于逻辑与,通常使用短路与  &&

 int value = 1;
System.out.println((1 < 2) & (value++ > 0)); // true
System.out.println((1 > 2) & (value++ > 0)); // false


短路或( || ) 、 条件或 (  | )区别:

|: 无论左边运算结果是什么,右边参与运算;
||:当左边为true时,右边不参与运算;直接返回整个逻辑表达式的值 为  true

 int value = 1;
System.out.println((1 < 2) | (value++ > 0)); // true
System.out.println((1 > 2) || (value++ > 2)); // false


异或( ^ )与或( | )的不同之处是:只有表达式左右都为true时,结果为false,当两边都为false,结果也为false

 // 一边为true,一边为false
System.out.println((3 > 2) ^ (9 < 8)); // true
// 一边为false,一边为true
System.out.println((7 > 10) ^ (9 > 3)); // true
// 两边都为true
System.out.println((3 > 2) ^ (2 > 1)); // false
// 两边都为false
System.out.println((1 > 2) ^ (2 > 3)); // false

位运算符

解释:位运算符是直接对整数进行二进制运算


按位与( & ):二元运算符。

规则:低位对齐,进行按位与。 对应的位 有0则0  全1则1.
1:可以将某个整数的某些二进制位设置为0。
2:可以得到某一个数的制定区间的二进制表示的数据。

按位或( | ):二元运算符。
规则:低位对齐,进行按位或。对应的位,有1则1,全0则0

*如果两个操作数 对应的位上没有全1 的,那么进行按位或和加的效果一致

按位异或( ^ ):二元运算符。
规则:对应的位上 相异为1,相同为0

特点:一个数先后和同一个数据异或两次,结果是它自身

异或简单加密应用

按位取反( ~ ) :一元运算符。
规则:所有的二进制位0--->1 1--->0
System.out.println(~0);//-1
移位运算符
<< 左移 :高位被移走,包括符号位。低位补0

>> :带符号右移  :低位被移走,高位空出来的补符号位,正数补0 负数补1

三元运算符( 条件运算符 )

Java 中唯一的三目运算符。 需要三个操作数。可以是java 支持的任意的表达式。两个表达式的返回值的类型 需要兼容。
格式:条件表达式 ? 表达式1 : 表达式2
1)条件表达式为true,返回表达式1;
2)条件表达式为false,返回表达式2;

两值互换的几种方法:
1、定义第三方变量进行互换

2、数值直接运算   缺:数值过大超过int取值范围,出现强制转换,数据发生变化
3、异或:一个数异或同一个数两次,结果还是这个数(阅读性差)

运算符的优先级


1:乘除取余 大于 加减。
2:一元运算符 大于 二元运算符 的优先级。
3:二元运算符的优先级高于三元运算符的优先级。
4:赋值运算符优先级最低。
5:配合小括号使用。

random随机数

1、Math.random();返回值是一个随机的double 值
语句:Math.random() * (MAX-MIN) + MIN

取整:int value = (int)(Math.random() * (MAX-MIN) + MIN);

2、导入import java.util.Random产生随机数
位移运算符:一条语句产生随机数:int value = (random.nextInt()>>>1)%(MAX-MIN)+MIN;

随机数+三目运算符应用[ 求三个数的最大值 ]

 public class Test {
public static void main(String[] args) {
// 定义随机数区间
final int MIN = 1, MAX = 100;
Random random = new Random();
int num1 = (random.nextInt() >>> 1) % (MAX - MIN) + MIN;
int num2 = (random.nextInt() >>> 1) % (MAX - MIN) + MIN;
int num3 = (random.nextInt() >>> 1) % (MAX - MIN) + MIN; // int num1 = (int)(Math.random()*(MAX-MIN)+MIN);
// int num2 = (int)(Math.random()*(MAX-MIN)+MIN);
// int num3 = (int)(Math.random()*(MAX-MIN)+MIN); int max = num1 > num2 ? num1 : num2;
max = max > num3 ? max : num3;
System.out.print("num1 = " + num1 + "\tnum2 = " + num2 + "\tnum3 = " + num3 + "\tmax=>" + max); }
}

03:Java基础语法(二)的更多相关文章

  1. java基础语法(二)

    一.运算符 算数运算符 算数运算符用在数学表达式中,它们的作用和在数学中的作用一样. 操作符 描述 例子 + 两数相加 1+1=2 - 两数相减 2-1=1 * 两数相乘 1*1=1 / 两数相除 1 ...

  2. Java基础语法<二> 字符串String

    1. 代码点与代码单元 Java字符串由char序列组成.大多数的常用Unicode字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元表示. length()方法将返回采用UTF-16编码表示 ...

  3. Java基础语法(二)之流程控制语句

    流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块 .控制语句分为三类:顺序,选择和循环. “顺序结构”代表”先执行a,再执行b”的逻辑.比如,先找个女朋友, ...

  4. Java基础语法(二)<运算符>

    运算符: 下面的都是相关的练习: 1.键盘录入一个三位整数数,请分别获取该三位数上每一位的数值 import java.util.Scanner; public class Test02 { publ ...

  5. JavaSE入门学习7:Java基础语法之语句(下)

    继续接着Java基础语法来:JavaSE入门学习5:Java基础语法(一)和JavaSE入门学习6:Java基础语法(二). 语句 Java经常使用的3种循环:while.do...while,for ...

  6. 003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程

    003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程 Java程序长啥样? 首先编写一个Java程序 记事本编写程序 打开记事本 1.wi ...

  7. java基础语法(二)--单列模式

    java基础语法(二)--单列模式 /** * 功能:单列模式 * @author Administrator * */ public class SingletonTest { public sta ...

  8. 071 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 03 综合案例-数组移位-显示数组当中所有元素的的方法

    071 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 03 综合案例-数组移位-显示数组当中所有元素的的方法 本文知识点:综合案例-数组移位-显示数组当中所有元素 ...

  9. 062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用

    062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用 本文知识点:二维数组应用 二维数组的声明和创建 ? 出现空指针异常 数组的名字指向数组的第 ...

随机推荐

  1. 怎样做delphi程序连接数据库失败,单机确定就关闭窗体

    我单机确定还会显示窗体?? Application.Terminate;

  2. Linux命令集锦:ansible命令

    ansible 命令主要用于批量管理,来实现自动化管理.常用批量操作包括:主机分组管理.实时批量执行命令或脚本.实时批量分发文件或目录.定时同步文件等. 一.安装 ansible yum instal ...

  3. 搭建hadoop2.4.1

    前期准备: 1.系统基本形况: ip hostname role server loginName 192.168.1.101 h1 NameNode,ResourceManager centos7_ ...

  4. Python selenium自动化测试框架入门实战--登录测试案例

    本文为Python自动化测试框架基础入门篇,主要帮助会写基本selenium测试代码又没有规划的同仁.本文应用到POM模型.selenium.unittest框架.configparser配置文件.s ...

  5. SpringBoot消息队列之-rabbitMQ

    一.概述 1.在大多应用中,我们系统之间需要进行异步通信,即异步消息. 2.异步消息中两个重要概念:消息代理(message broker)和目的地(destination) 当消息发送者发送消息以后 ...

  6. MySQL_约束条件

    目录 八个约束条件 1.非空约束NOT NULL 2.主键约束PRIMARY KEY 3.多字段联合主键(复合主键) 4.唯一约束UNIQUE 5.默认约束DEFAULT 6.外键约束FOREIGN ...

  7. Python之Web前端Ajax

    Ajax: 对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上. 1.传统的Web应用 一个简单操 ...

  8. Min swaps to sort array

    Given an array with distinct numbers, return an integer indicating the minimum number of swap operat ...

  9. github与pycharm

    再也不要使用命令行了 OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

  10. 理解twisted中的reactor和deferred(二)

    Deferred可以添加多个回调函数,每个回调函数的结果作为下一个回调函数的参数 代码实例(可在pycharm中运行,摘自 https://twistedmatrix.com/documents/cu ...