小闫陪你入门 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 中的条件语句也支持嵌套操作

相关文章
|
10天前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
16天前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
22天前
|
存储 安全 Java
🌟Java零基础-反序列化:从入门到精通
【10月更文挑战第21天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
63 5
|
19天前
|
安全 Java 调度
Java中的多线程编程入门
【10月更文挑战第29天】在Java的世界中,多线程就像是一场精心编排的交响乐。每个线程都是乐团中的一个乐手,他们各自演奏着自己的部分,却又和谐地共同完成整场演出。本文将带你走进Java多线程的世界,让你从零基础到能够编写基本的多线程程序。
32 1
|
26天前
|
Java 数据处理 开发者
Java多线程编程的艺术:从入门到精通####
【10月更文挑战第21天】 本文将深入探讨Java多线程编程的核心概念,通过生动实例和实用技巧,引导读者从基础认知迈向高效并发编程的殿堂。我们将一起揭开线程管理的神秘面纱,掌握同步机制的精髓,并学习如何在实际项目中灵活运用这些知识,以提升应用性能与响应速度。 ####
43 3
|
27天前
|
Java
Java中的多线程编程:从入门到精通
本文将带你深入了解Java中的多线程编程。我们将从基础概念开始,逐步深入探讨线程的创建、启动、同步和通信等关键知识点。通过阅读本文,你将能够掌握Java多线程编程的基本技能,为进一步学习和应用打下坚实的基础。
|
28天前
|
Java
[Java]Socket套接字(网络编程入门)
本文介绍了基于Java Socket实现的一对一和多对多聊天模式。一对一模式通过Server和Client类实现简单的消息收发;多对多模式则通过Server类维护客户端集合,并使用多线程实现实时消息广播。文章旨在帮助读者理解Socket的基本原理和应用。
23 1
|
6月前
|
安全 Java
从零开始学习 Java:简单易懂的入门指南之不可变集合、方法引用(二十六)
从零开始学习 Java:简单易懂的入门指南之不可变集合、方法引用(二十六)
|
5月前
|
存储 Java API
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
85 0