首页 > 编程语言 >Java学习笔记2

Java学习笔记2

时间:2022-12-21 00:33:05浏览次数:48  
标签:运算符 Java 运算 System 笔记 学习 println 表达式 赋值

1. 运算符和表达式

运算符

​ 就是对常量或者变量进行操作的符号。

​ 如:+ - * /

表达式

​ 用运算符把常量或者变量连接起来的,符合Java语法的式子就是表达式。

​ 如:a + b

​ 其中,+是算术运算符的一种,所以这个表达式也称为算术表达式。

2. 算术运算符

+、-、*、/、%

运算特点:

+ - * :跟小学数学中的加减乘一模一样,没有任何区别。
/ :
    1. 整数相除结果只能得到整数(小数取整数部分),如果结果想要是小数,必须要有小数参数。
    2. 小数直接参与运算,得到的结果有可能是不精确的。
案例:
    System.out.println(10 / 3);//3
	System.out.println(10.0 / 3)//3.3333333333333335
% :取模、取余,也是进行除法运算,只不过获取的是余数。
案例:
    System.out.println(10 % 2);//0
	System.out.println(10 % 3);//1

3. 隐式转换

概念

​ 也叫自动类型转换。就是把一个取值范围小的数据或者变量,赋值给另一个取值范围大的变量时,不需要我们额外写代码单独实现,程序自动帮我们完成的功能。

转换规则

  • 取值范围小的和取值范围大的进行运算,先把小的转换为大的,再进行运算。
  • byteshortchar三种类型的数据在运算时,都会直接先转换为int,然后再进行运算。

取值范围大小关系:byte < short < int < long < float < double

4. 强制转换

概念

​ 如果要把一个取值范围大的数据或者变量赋值给另一个取值范围小的变量,Java中是不允许直接操作的,如果一定要这样干,就需要加入强制转换。

书写格式

目标数据类型 变量名 = (目标数据类型) 被强制转换的数据或变量名

注意:强制转换可能会导致数据的精度丢失。

5. 字符串的+操作

规则

  • 当+操作中出现字符串时,+就是字符串的连接符,会将前后的数据进行拼接,并产生一个新的字符串。
  • 当连续进行+操作时,执行顺序时从左到右逐个执行。

案例

案例1:

1 + "abc" + 1

​ 结果:"1abc1"

案例2:

1 + 2 + "abc" + 2 +1

​ 结果:"3abc21"

6. 字符的+操作

规则

​ 当+操作中出现了字符,会转换为计算机内置的ASCII码表中对应的数字,然后再进行运算。

案例

char c = 'a';
int result = c + 0;
System.out.println(result);//97

7. 自增/自减运算符

++ 自增运算符,就是把变量里面的值+1
-- 自减运算符,就是把变量里面的值-1

​ 自增/自减运算符可以放在变量的前面和后面,如:++aa++

8. 赋值运算符

= 赋值运算符

​ 运算过程:就是把等号右边的结果赋值给左边的变量。

注意:

  • 在赋值运算中,当自增/自减运算符出现在变量前时,先对变量进行自增/自减运算,再赋值。

  • 在赋值运算中,当自增/自减运算符出现在变量后时,先赋值,再对变量进行自增/自减运算。

案例:

int a = 10;
int b = ++a;
System.out.println(a);//11
System.out.println(b);//11
int c = 10;
int d = c++;
System.out.println(c);//11
System.out.println(d);//10
//自减运算符同理

9. 扩展赋值运算符

+=、-=、*=、/=、%=

规则

​ 把左边跟右边进行运算,最终结果赋值给左边,对右边无任何影响。

案例

int a = 10;
int b = 20;
a += b;//相当于a = a + b
System.out.println(a);//30
System.out.println(b);//20

注意:

扩展赋值运算符中隐层还包含了一个强制转换。

+=为例:a += b实际上相当于a = (byte)(a + b)

10. 关系运算符

​ 又称为比较运算符。

符号 解释
== 就是判断左边跟右边是否相等,如果成立就是true,如果不成立就是false
!= 就是判断左边跟右边是否不相等,如果成立就是true,如果不成立就是false
> 就是判断左边是否大于右边,如果成立就是true,如果不成立就是false
>= 就是判断左边是否大于等于右边,如果成立就是true,如果不成立就是false
< 就是判断左边是否小于右边,如果成立就是true,如果不成立就是false
<= 就是判断左边是否小于等于右边,如果成立就是true,如果不成立就是false

注意:

  • 关系运算符的运算结果一定是布尔类型(boolean)。
  • ==是判断左右两边是否相等的关系运算符,而=是赋值运算符

11. 逻辑运算符

&:逻辑与(而且)

​ 两边都为真,结果才是真,只要有一个为假,结果就是假。

|:逻辑或(或者)

​ 两边都为假,结果才是假,只要有一边为真,结果就是真。

^:异或

​ 如果两边相同,结果为false;如果两边不相同,结果为true

!:取反

false取反就是truetrue取反就是false

注意:取反最多只用一个。

12. 短路逻辑运算符

&&

​ 运算规则与&是一致的,具有短路效果。

||

​ 运算规则与|是一致的,具有短路效果。

短路效果

​ 当左边不能确定整个表达式的结果时,右边才会执行。反之,当左边能确定整个表达式的结果时,右边不会执行。这样做可以提高代码的运行效率。

注意:&&&|||的运行结果是一致的,但是短路逻辑运算符可以提高程序的运行效率,所以更推荐使用短路逻辑运算符。

13. 三元运算符

格式

关系表达式 ? 表达式1 : 表达式2;

运算规则

  • 计算关系表达式的值
  • 如果关系表达式的值为true,执行表达式1
  • 如果关系表达式的值为false,执行表达式2

注意:三元运算符的最终结果一定要被使用,要么赋值给一个变量,要么打印输出。

标签:运算符,Java,运算,System,笔记,学习,println,表达式,赋值
From: https://www.cnblogs.com/kuaicode/p/16995417.html

相关文章

  • Java 如何将输入的一组数,加某一符号后输出?如何以某一字符隔开的形式输入?
    以逗号进行举例以逗号分开输出:Stringstr=“zxc”;ArrayList<String> list=new Arraylist<>();for(inti=0;i<str.length;i++)list.add(str.CharAt(i)+"");String ......
  • JAVA常见算法
    packagecom.example.cesium.utils;publicclassdemo{/***二查分算法*半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中......
  • 吃透JAVA的Stream流操作,多年实践总结
    在JAVA中,涉及到对数组、Collection等集合类中的元素进行操作的时候,通常会通过循环的方式进行逐个处理,或者使用Stream的方式进行处理。例如,现在有这么一个需求:从给定句子......
  • java oop
    1.类与对象类是一个模板:抽象,对象是一个具体的实例2.方法定义,调用:3.对象的引用引用类型:基本类型(8)对象是通过引用来操作的:栈-->堆4.属性:字段Field成员变量默认初始......
  • Java多线程批量操作,居然有人不做事务控制?
    前言公司业务中遇到一个需求,需要同时修改最多约5万条数据,而且还不支持批量或异步修改操作。于是只能写个for循环操作,但操作耗时太长,只能一步一步寻找其他解决方案。具体......
  • 手把手教你如何通过Java给图片添加文字和图片水印
    我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第3篇文章,点击查看活动详情本文首发于个人网站前言最近工作上有个需求,动态生成一张图片,具体来说就是基于模版图片动......
  • 第一百一十六篇: JavaScript理解对象
    好家伙,本篇为《JS高级程序设计》第八章“对象、类与面向对象编程”学习笔记 1.关于对象ECMA-262将对象定义为一组属性的无序集合。严格来说,这意味着对象就是一组没有特......
  • 推荐几个机器学习的干货公众号!
    当今互联网和AI社会快速发展,技术层出不穷,学习资料繁多且无用,如何从中筛选有用的资料并能高效的转化为自己的知识是非常关键的。汽车人推荐几个​​原创度高​​的​​技术方......
  • 【《硬件架构的艺术》读书笔记】07 处理字节顺序
    7.1介绍 本章主要介绍字节顺序的的基本规则。(感觉偏软件了,不知道为啥那么会放进《硬件架构的艺术》这本书)。7.2定义 字节顺序定义数据在计算机系统中的存储格式,描述......
  • java.lang.ClassNotFoundException: javax.servlet.Filter
    java.lang.ClassNotFoundException:javax.servlet.Filter:有两个原因:(1)在maven中的作用域,不能是provided,需要是compile就是默认的scope(2)spring-boot-starter-tomcat的版本bu......