小闫陪你入门 Java (三)

简介: 小闫陪你入门 Java (三)

Java 基础

7.Java 运算符

7.1算术运算符

加减乘除与 Python 中一致,分别为 +-*/。取余为 %。不同的有以下两种,分别为自增和自减。

自增为 ++,自减为 --。即一个数字加1或者减1。

public class HelloDemo {
    public static void main(String[] args) {
        // 运算符
        int i1 = 10;
        int i2 = 22;
        int i3 = 25;
        int i4 = 66;
        System.out.println("i1 + i2 = " + (i1 + i2));
        System.out.println("i3 - i2 = " + (i3 - i2));
        System.out.println("i4 * i1 = " + (i4 - i1));
        System.out.println("i2 / i1 = " + (i2 / i1));
        // 自增自减
        ++i1;
        System.out.println(i1);
        --i1;
        System.out.println(i1);
    }
}

详解自增/自减:

  1. int b =++a;

上述过程其实为两步,第一步为加 1 后重新赋值,第二步为将新值 a 赋值给 b。

  1. int b = a++

此过程与之前不同,它是先将 a 赋值给 b,然后 a 自增操作。

自减同理

7.2 关系运算符

关系运算符即比较两个数值之间的关系,如大小等。与 Python 中相同的为 == 表示相等; != 表示不相等; > 表示大于; < 表示小于; >= 表示大于等于; <= 表示小于等于。

public class HelloDemo {
    public static void main(String[] args) {
        int s = 10;
        int n = 20;
        System.out.println("s == n = " + (s == n) );
        System.out.println("s != n = " + (s != n) );
        System.out.println("s > n = " + (s > n) );
        System.out.println("s < n = " + (s < n) );
        System.out.println("n >= s = " + (n >= s) );
        System.out.println("n <= s = " + (n <= s) );
    }
}

7.3 位运算符

位运算符即将十进制等数字转换为二进制数字后,对每一个位置上字符进行操作。如下示例,大家可以理解一下:

A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011
操作符 描述
如果相对应位都是1,则结果为1,否则为0
| 如果相对应位都是 0,则结果为 0,否则为 1
^ 如果相对应位值相同,则结果为0,否则为1
按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
<< 按位左移运算符。左操作数按位左移右操作数指定的位数。
>> 按位右移运算符。左操作数按位右移右操作数指定的位数。
>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

7.4 逻辑运算符

逻辑运算符即与或非关系。与 Python 不同, && 表示与关系; || 表示或关系; ! 表示非关系。

7.5 赋值运算符

下面列出 Java 中的赋值运算符:

操作符 描述
= 简单的赋值运算符,将右操作数的值赋给左侧操作数
+ = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数
- = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数
* = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数
/ = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数
(%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数
<< = 左移位赋值运算符
>> = 右移位赋值运算符
&= 按位与赋值运算符
^ = 按位异或赋值操作符
| = 按位或赋值操作符

7.6 三元运算符

Java 中三元运算符与 Python 中大不一样,其表示为:

  1. 类型变量=表达式?如果条件为真时的操作:条件为假时的操作

关键在于符号 ?:

7.7 instanceof 运算符

它是用来判断某个变量是否为某类型或者某个对象是否为某类或者接口的一个对象。如果是为真。例如:

String name = "Ethan";
boolean result = name instanceof String;
class Vehicle {}
public class Car extends Vehicle {
   public static void main(String[] args){
      Vehicle a = new Car();
      boolean result =  a instanceof Car;
      System.out.println( result);
   }
}

7.8 运算符优先级

运算符优先级是如果代码中包含多种运算符,那么优先执行谁的问题。其如数学,有括号先括号(小括号优先于中括号),乘除优先于加减等等。

下面附网上一个表格,具有最高优先级的运算符在表的最上面,最低优先级的在表的底部,以供大家忘记时进行查看:

类别 操作符 关联性
后缀 () [] . (点操作符) 左到右
一元 + + - !〜 从右到左
乘性 * /% 左到右
加性 + - 左到右
移位 >> >>>  << 左到右
关系 >> = << = 左到右
相等 ==  != 左到右
按位与 左到右
按位异或 ^ 左到右
按位或 | 左到右
逻辑与 && 左到右
逻辑或 | | 左到右
条件 ?: 从右到左
赋值 = + = - = * = / =%= >> = << =&= ^ = | = 从右到左
逗号 左到右

8.循环

循环即将相同的逻辑多次执行。与 Python 相同,它也有 while 循环和 for 循环,但是其比 Python 多了一种 do...while 循环。下面即详细看看。

8.1 while 循环

先来看其基本语法,即布尔表达式为 True 时循环一直执行。

while( 布尔表达式 ) {
    // 循环执行逻辑
}

示例如下:

public class Test {
    public static void main(String args[]) {
        // while 循环
        int int1 = 10;
        while (int1 > 0) {
            System.out.println(int1);
            int1--;
        }
    }
}

8.2 for 循环

for 循环如同 Python 中的 for 循环一样,生来就是简化代码操作的。

for(初始化; 布尔表达式; 更新) {
    // 代码语句
}

大家看到上述语法也许有些懵逼,我们类比 Python 中的 for 循环进行解读。Python 中:

for i in range(3):
    print(i)

要想达到同样的效果,Java 中代码如下:

public class Test{
    public static void main(String args[]) {
        // for 循环
        for (int x = 0; x < 3; x = x + 1){
            System.out.println(x);
        }
    }
}

即在 for 后的括号中,先填写一个控制循环的变量,再填写一个判断条件,最后更新变量值已达到控制循环的目的。

从上述代码可以看出 Java 确实代码量比 Python 多一点。

增强 for 循环:

大家想起 Python 中有如下操作:

namelist = ['Ethan', 'yan', 'liang']
for name in list:
    print(name, end=",")

可以循环遍历姓名列表并且打印输出,那么 Java 中呢?Java 从 Java5 的时候引入了一种方式,称为增强操作,写为如下:

public class Test {
    public static void main(String args[]){
        // 增强for循环
        String [] namelist = {"Ethan", "yan", "liang"};
        for (String name: namelist) {
            System.out.print(name);
            System.out.print(",");
        }
    }
}

注意:其中列表并不是中括号,而是大括号。 print() 函数打印输出后不会执行换行操作。

8.3 do... while 循环

此循环与 while 循环类似,不同点在于 do...while 循环至少执行一次。(如判断条件不满足,while 循环不会执行,但是 do...while 循环会执行一次)先来看起语法:

do {
    // 代码语句
}while( 布尔表达式 )

其实从代码中即可分析出原因,因为代码块先执行,条件表达式后执行。

public class Test {
    public static void main(String args[]) {
        int a = 10;
        do {
            System.out.println(a);
            a--;
        }while (a<0);
    }
}

上例中 while 的判断条件不满足,如果是 while 循环的话则不会执行;而上述例子大家可以进行验证,会返回 10。

8.4 终止循环

与 Python 中相同,Java 中也有两个关键字用来终止循环,一个为 break,一个为 continue。

break:终止当前循环。

continue:终止本次循环。(比如循环输出1到10,在7的时候遇到了语句 continue,那么7不会输出,而8、9等正常输出)

9.条件语句

9.1 if

我们来看一下最简单的 if 语句如何书写:

if( 布尔表达式 ) {
    // 布尔表达式为true时执行的语句
}

示例如下:

public class Test{
    public static void main(String args[]){
        // if
        int i = 1;
        if(i==1){
            System.out.println("值为1");
        }
    }
}

Java 中字符串用双引号包裹。

9.2 if...else

语法为:

if(布尔表达式){
   //如果布尔表达式的值为true
}else{
   //如果布尔表达式的值为false
}

过于简单,不再示例。

9.3 if...else if...else

此为多条件判断情况,语法如下:

if(布尔表达式 1){
   //如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
   //如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
   //如果布尔表达式 3的值为true执行代码
}else {
   //如果以上布尔表达式都不为true执行代码
}

类比于 Python 中的语法:

if 条件1:
    条件为真时执行
elif 条件2:
    条件为真时执行
else:
    条件都不满足时执行

其实 elif 就是 elseif 的缩写。

当然,Java 中的条件语句也支持嵌套操作

相关文章
|
23天前
|
Java
java入门代码示例
本文介绍Java入门基础,包含Hello World、变量类型、条件判断、循环及方法定义等核心语法示例,帮助初学者快速掌握Java编程基本结构与逻辑。
231 0
|
1月前
|
前端开发 Java 数据库连接
帮助新手快速上手的 JAVA 学习路线最详细版涵盖从入门到进阶的 JAVA 学习路线
本Java学习路线涵盖从基础语法、面向对象、异常处理到高级框架、微服务、JVM调优等内容,适合新手入门到进阶,助力掌握企业级开发技能,快速成为合格Java开发者。
335 3
|
2月前
|
NoSQL Java 关系型数据库
Java 从入门到进阶完整学习路线图规划与实战开发最佳实践指南
本文为Java开发者提供从入门到进阶的完整学习路线图,涵盖基础语法、面向对象、数据结构与算法、并发编程、JVM调优、主流框架(如Spring Boot)、数据库操作(MySQL、Redis)、微服务架构及云原生开发等内容,并结合实战案例与最佳实践,助力高效掌握Java核心技术。
255 1
|
2月前
|
Java 测试技术 API
Java IO流(二):文件操作与NIO入门
本文详解Java NIO与传统IO的区别与优势,涵盖Path、Files类、Channel、Buffer、Selector等核心概念,深入讲解文件操作、目录遍历、NIO实战及性能优化技巧,适合处理大文件与高并发场景,助力高效IO编程与面试准备。
|
2月前
|
Java 编译器 API
Java Lambda表达式与函数式编程入门
Lambda表达式是Java 8引入的重要特性,简化了函数式编程的实现方式。它通过简洁的语法替代传统的匿名内部类,使代码更清晰、易读。本文深入讲解Lambda表达式的基本语法、函数式接口、方法引用等核心概念,并结合集合操作、线程处理、事件回调等实战案例,帮助开发者掌握现代Java编程技巧。同时,还解析了面试中高频出现的相关问题,助你深入理解其原理与应用场景。
|
1月前
|
Java API 数据库
2025 年最新 Java 实操学习路线,从入门到高级应用详细指南
2025年Java最新实操学习路线,涵盖从环境搭建到微服务、容器化部署的全流程实战内容,助你掌握Java 21核心特性、Spring Boot 3.2开发、云原生与微服务架构,提升企业级项目开发能力,适合从入门到高级应用的学习需求。
387 0
|
1月前
|
监控 Java API
2025 年全新出炉的 Java 学习路线:从入门起步到实操精通的详细指南
2025年Java学习路线与实操指南,涵盖Java 21核心特性、虚拟线程、Spring Boot 3、微服务、Spring Security、容器化部署等前沿技术,助你从入门到企业级开发进阶。
322 0
|
安全 Java
从零开始学习 Java:简单易懂的入门指南之不可变集合、方法引用(二十六)
从零开始学习 Java:简单易懂的入门指南之不可变集合、方法引用(二十六)
|
存储 Java API
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
317 0

热门文章

最新文章

下一篇
oss教程