Java 基础语法

Java 基础语法




类型转换

自动类型转换

什么是自动类型转换,为什么要学习自动类型转换?

  • 类型范围小的变量,可以直接赋值类型范围大的变量。

自动类型转换的底层原理
在这里插入图片描述
自动类型转换的其他形式
在这里插入图片描述

  1. 为什么要进行类型转换?
  • 存在不同类型的变量赋值给其他类型的变量。
  1. 自动类型转换是什么样子的?
  • 类型范围小的变量,可以直接赋值类型范围大的变量。

表达式的自动类型转换

表达式的自动类型转换

  • 在表达式中,小范围类型的变量会自动转换成较大范围的类型再运算。
    在这里插入图片描述
    注意事项:
  • 表达式的最终结果类型由表达式种的最高类型决定
  • 在表达式中,byte、short、char直接转换成 int类型参与运算的。
  1. 表达式的自动类型转换是什么样的?
  • 小范围的类型会自动转换成大范围的类型运算。
  1. 表达式的最终结果类型是由谁决定的?
  • 最终类型由表达式中的最高类型决定。
  1. 表达式中有哪些类型转换是需要注意的?
  • byte short char 是直接转换成 int 类型参与运算的。

强制类型转换

场景
在这里插入图片描述
问题

  • 类型范围大的数据或者变量,不能直接赋值类型范围小的变量,会报错。

强制类型转换

  • 可以强行将类型范围打的变量、数据赋值给类型范围小的变量。
    在这里插入图片描述
    强制类型转换底层原理
    在这里插入图片描述
    注意事项
  • 强制类型转换可能造成数据(丢失)溢出;
  • 浮点型强转成整型,直接丢掉小数部分,保留整数部分返回
  1. 什么是强制类型转换?
  • 可以强行将类型范围大的变量、数据复制给类型范围小的变量。
  • 数据类型 变量 = (数据类型)变量、数据
  1. 强制类型转换有哪些需要注意的?
  • 可能出现数据丢失。
  • 小数强制转换成整数是直接截断小数保留整数。

运算符

基本算数运算符

运算符

  • 运算符:对字面量或者变量进行操作的符号

算数运算符
在这里插入图片描述

  1. 算数运算符有哪些?
  • +、-、*、/、%
  1. ==/==需要注意什么,为什么?
  • 如果两个整数做除法,其结果一定是整数,因为最高类型是整数。

案例:数值拆分
在这里插入图片描述

+ 符号做连接符

“+” 做连接符

  • “+” 符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串。

独门秘籍

  • 能算则算,不能算就在一起。(计算机很聪明)
// 目标:+ 符号做连接符的识别
int a = 5;
System.out.println("abc" + 'a');    // abca
System.out.println("abc" + a);  // abc5
System.out.println(5 + a);  // 10
System.out.println("abc" + 5 + 'a');    // abc5a
System.out.println(15 + "abc" + 15);    // 15abc15
System.out.println(a + 'a');    // 102,'a'的底层是二进制存储,是97,所以结果是102
System.out.println(a + "" + 'a');   // 5a
System.out.println(a + 'a' + " itheima ");  // 102 itheima
System.out.println("itheima" + a + 'a');    // itheima5a
System.out.println("itheima" + (a + 'a'));  // itheima102
  1. + 除了做基本数学运算,还有哪些功能?
  • 与字符串做 + 运算时会被当成连接符,其结果还是字符串。
  • 能算则算,不能算就在一起。

自增自减运算符

自增自减运算符
在这里插入图片描述
注意:

  • ++ 和 – 既可以放在变量的后边,也可以放在变量的前边。
  • ++、–只能操作变量,不能操作字面量。

自增自减的使用注意事项

  • ++、–如果不是单独使用(如在表达式中、或者同时有其它操作),放在变量前后会存在明显区别
    • 放在变量的前面,先对变量进行 +1、-1,再拿变量的值进行运算。
      在这里插入图片描述
    • 放在变量的后面,先拿变量的值进行运算,再对变量的值进行 +1、-1
      在这里插入图片描述
  1. 自增、自减运算符是什么,有什么作用?
  • ++、–。对当前变量 +1、-1
  1. 自增、自减运算符在变量前后有区别吗?
  • 如果单独使用放前后是没有区别的。
  • 非单独使用:在变量前,先进行变量自增 / 自减,再使用变量。
  • 非单独使用:在变量后,先使用变量,再进行变量自增 / 自减。

案例:自增、自减拓展案例(有些面试题会出现)

int c = 10;
int d = 5;
int rs3 = c++ + ++c - --d - ++d + 1 + c--;
// c 10 11 12 11
// d 5 4 5
// rs3 = 10 + 12 - 4 - 5 + 1 + 12 = 26
System.out.println(c);	// 11
System.out.println(d);	// 5
System.out.println(rs3);	// 26

赋值运算符

基本赋值运算符

  • 就是 “=”
int a = 10; // 先看 “=” 右边,把数据10赋值给左边的变量 a 存储。

扩展赋值运算符
在这里插入图片描述
注意:扩展的赋值运算符隐含了强制的类型转换。

  1. 赋值运算符有哪些?
  • =、+=、-=、*=、/=、%=
  1. 作用是什么?
  • 基本作用是赋值。
  • += 还可以实现数据的累加,把别人的数据加给自己。

关系运算符

关系运算符

  • 是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(false,true)。
    在这里插入图片描述
    注意:在做相等判断时,千万不要把 == 误写成 =

逻辑运算符

逻辑运算符概述

  • 可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果。
    在这里插入图片描述在这里插入图片描述
    短路逻辑运算符
    在这里插入图片描述
    注意:逻辑与 “&”、逻辑或 “|”:无论左边是 false 还是 true,右边都要执行

示例:

int a = 10;
int b = 20;
// System.out.println(a > 100 & ++b > 10); // false
// System.out.println(b);  // b = 21
System.out.println(a > 100 && ++b > 10);    //false
System.out.println(b);  // b = 20

int i = 10;
int j = 20;
// System.out.println(i > 2 | ++j > 10);  // true
// System.out.println(j);  // j = 21
System.out.println(i > 2 || ++j > 10);  // true
System.out.println(j);  // 20
  1. 逻辑运算符有哪些,有什么特点?
  • 逻辑与 “&”:有一个为 false、结果是 false
  • 短路与 &&:一个为 false、结果是 false。前一个为 false,后一个条件不执行了
  • 逻辑或 “!”:有一个为 true、结果是 true
  • 短路或 “!!”:一个为 true、结果是 true。前一个为 true,后一个条件不执行了
  • 逻辑非 “!”:!false = true、!true = false
  • 逻辑异或 “^”:相同是 false、不同是 true
  • 注意:实际开发中、常用的逻辑运算符还是:&&、||、!

三元运算符

三元运算符介绍

  • 格式:条件表达式 ? 值1 : 值2;
  • 执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2
    在这里插入图片描述

案例:求三个整数的最大值
需求:定义三个整数,找出最大值并打印在控制台。
分析:

  1. 用三元运算符获取前两个整数的最大值,并用临时变量保存起来。
    • num1 > num2 ? num1 : num2;
  2. 用三元运算符,让临时最大值,和第三个整数,进行比较,并记录结果。
    • tem > num3 ? tem : num3;
  3. 输出结果
int i = 10;
int j = 30;
int k = 50;
// 1. 找出2个整数的较大值
int temp = i > j ? i : j;
// 2. 拿临时变量与第三个变量的值继续比较
int rsMax1 = temp > k ? temp : k;
System.out.println(rsMax1);

System.out.println("---------------拓展知识----------------");
int rsMax2 = i > j ? (i > k ? i : k) : (j > k ? j : k);
System.out.println(rsMax2);

运算符优先级

运算符优先级

  • 在表达式中,哪个运算符先执行后执行是要看优先级的,例如 “*、/” 的优先级高于 “+、-”。
    在这里插入图片描述
    运算符优先级
// 目标:看看 Java 是否存在优先级,大家以后需要注意优先级问题
System.out.println(10 > 3 || 10 > 3 && 10 < 3); // true
System.out.println((10 > 3 || 10 > 3) && 10 < 3);   // false

案例知识:键盘录入技术

需求:

  • 请完成 Java 程序与用户的交互,比如录入用户输入的名称、年龄,怎么办?
    在这里插入图片描述

API(Application Programming Interface,应用程序编程接口)

  • Java 写好的程序(功能代码),咱么可以直接调用。
  • Oracle 也为 Java 写好的程序提供了相应的 API 文档(技术使用说明书)

下载 API 文档
http://www.oracle.com/technetwork/java/javase/downloads/index.html

键盘录入功能实现的三个步骤:

  1. 导包:告诉程序去 JDK 的哪个包中找扫描器技术
  2. 谢依阿华功能代码代表得到键盘扫描器对象
  3. 等待接受用户输入数据
// 1. 导包操作(并不需要自己写,以后通过工具进行导入更方便)
import java.util.Scanner;
public class ScannerDemo {
	public static void main(String[] args) {
	// 目标:学会使用键盘录入技术
	// 2. 得到一个键盘扫描器对象
	Scanner sc = new Scanner(System.in);
	
	// 3. 调用 sc 对象的功能等待接受用户输入的数据
	// 这个代码会等待用户输入数据,指导用户输入完数据并按了回车键就会把数据拿到。
	System.out.println("请输入您的年龄:");
	int age = sc.nextInt();
	System.out.println("年龄是:" + age);
	
	System.out.println("请输入您的名称:");
	String name = sc.next();
	System.out.println("欢迎:" + name);
	}
}

注意:

  • System、String 在 JDK 中的 Java.lang 包下
  • lang 包不需要我们导包,是默认的包
  1. API 是什么?
  • Application Programming Interface,应用程序编程接口。
  • Java 写好的程序,咱们可以直接调用。
  1. 键盘录入的开发步骤
  • 导包:import java.util.Scanner;
  • 抄写代码得到扫描器对象:Scanner sc = new Scanner(System.in)
  • 抄写代码等待接收用户输入的数据:sc.nextInt()、sc.next()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java基础语法是指Java语言的一些基本规则和约定,包括变量的定义、数据类型、运算符、控制语句、方法和类等。下面给出一些例子进行讲解: 1. 变量的定义 变量是存储数据的容器,Java中变量的定义需要指定数据类型。例如: ```java int num = 10; // 定义一个整型变量num,并赋值为10 String str = "Hello World"; // 定义一个字符串变量str,并赋值为"Hello World" double pi = 3.14; // 定义一个双精度浮点型变量pi,并赋值为3.14 ``` 2. 数据类型 Java中有基本数据类型和引用数据类型两种。基本数据类型包括整型、浮点型、字符型和布尔型,引用数据类型包括数组、类和接口等。例如: ```java int num = 10; // 整型 double pi = 3.14; // 双精度浮点型 char ch = 'A'; // 字符型 boolean flag = true; // 布尔型 int[] array = {1, 2, 3}; // 数组 String str = "Hello World"; // 字符串 ``` 3. 运算符 Java中的运算符包括算术运算符、关系运算符、逻辑运算符等。例如: ```java int num1 = 10, num2 = 20; int sum = num1 + num2; // 算术运算符 boolean result = num1 > num2; // 关系运算符 boolean flag = true, flag2 = false; boolean result2 = flag && flag2; // 逻辑运算符 ``` 4. 控制语句 Java中的控制语句包括if语句、for语句、while语句等。例如: ```java int num = 10; if (num > 5) { // if语句 System.out.println("Num is greater than 5"); } for (int i = 0; i < 10; i++) { // for语句 System.out.println(i); } int i = 0; while (i < 10) { // while语句 System.out.println(i); i++; } ``` 5. 方法和类 Java中的方法是可重复使用的代码块,而类是用于封装数据和方法的基本单位。例如: ```java public class HelloWorld { // 定义类 public static void main(String[] args) { // 定义主方法 System.out.println("Hello World"); // 输出Hello World } public void print(String str) { // 定义方法 System.out.println(str); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值