Java基础
01 课程总体介绍
1、关于Java语言基础知识需要学会什么?
类型转换知识
运算符的使用
怎么调用Java提供的程序
02 类型转换:自动类型转换
1、为什么要进行类型转换?
存在不同类型的变量赋值给其他类型的变量
2、自动类型转换是什么样的?
类型范围小的变量,可以直接赋值给类型范围大的变量
03 类型转换:表达式的自动类型提升
1、表达式的自动类型转换是什么样的?
小范围的类型会自动转换成大范围的类型运算
2、表达式的最终结果类型是由谁决定的?
最终类型由表达式中的最高类型决定
3、表达式的有哪些类型转换是需要注意的?
byte short char 是直接转换成 int 类型参与运算的
byte a = 10;
byte b = 20;
// byte c = a + b; //错误
int c = a + b; //正确
04 类型转换:强制类型转换
1、什么是强制类型转换?
可以强行将类型范围大的变量、数据赋值给类型范围小的变量
2、强制类型转换有哪些需要注意的?
可能出现数据丢失
小数强制转换成整数是直接截断小数保留整数
int i = 1500;
byte j = (byte) i;
System.out.println(j); //-36
double score = 99.5;
int it = (int) score;
System.out.println(it); //99
05 运算符:基本的算术运算符
1、算数运算符有哪些?
+、-、 *、 /、 %
2、需要注意什么,为什么?
如果两个整数做除法,其结果一定是整数,因为最高类型是整数
int a = 10;
int b = 3;
System.out.println(a + b); //13
System.out.println(a - b); //7
System.out.println(a * b); //30
System.out.println(a / b); //3
System.out.println(a * 1.0 / b); //3.3333333333333335
System.out.println(a % b); //1
06 运算符:数据拆分案例
//需求:拆分3位数,把个位、十位、百位分别输出
int data = 589;
int ge = data % 10;
System.out.println(ge); //个位 9
int shi = data / 10 % 10;
System.out.println(shi); //十位 8
int bai = data / 100;
System.out.println(bai); //百位 5
07 运算符:加符号做连接符
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
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
08 运算符:自增、自减
1、自增、自减运算符是什么,有什么作用?
++、-- 对当前变量值+1、-1
2、自增、自减运算符在变量前后有区别吗?
如果单独使用放前后是没有区别的
非单独使用:在变量前 ,先进行变量自增/自减,再使用变量
非单独使用:在变量后 ,先使用变量,再进行变量自增/自
int a = 10;
a++;
System.out.println(a);//11
++a;
System.out.println(a);//12
int b = 10;
--b;
System.out.println(b);//9
b--;
System.out.println(b);//8
int i = 10;
int j = ++i;
System.out.println(i); //11
System.out.println(j); //11
int m = 10;
int n = m++;
System.out.println(m); //11
System.out.println(n); //10
09 运算符:自增、自减扩展案例(面试常考)
int c = 3;
int d = 5;
// int rs3 = c++ + ++c - --d - ++d + 1 + c--;
// rs3 3 + 5 - 4 - 5 + 1 + 5
// c 3 4 5 4
// d 5 4 5
// System.out.println(rs3); // 5
// System.out.println(c); // 4
// System.out.println(d); //5
int rs4 = c++ + ++c - --d + d-- - c-- + ++d + 2;
// rs3 3 + 5 - 4 + 4 - 5 + 4 + 2
// c 3 4 5 4
// d 5 4 3 4
System.out.println(rs4); // 9
System.out.println(c); // 4
System.out.println(d); //4
10 运算符:赋值运算符
1、赋值运算符有哪些?
=、+=、-=、*=、/=、%=
2、作用是什么?
基本作用是赋值
+=还可以实现数据的累加,把别人的数据加给自己
int a = 10;
int b = 200;
//a = a +b;
a += b;
System.out.println(a); //210
byte i = 10;
byte j = 20;
i += j; // i = (byte) (i + j)
System.out.println(i); //30
int m = 10;
int n = 5;
// m +=n; // 等价于:m = (int) (m + n) = 15
// m -=n; // 等价于:m = (int) (m - n) = 5
// m *=n; // 等价于:m = (int) (m * n) = 50
// m /=n; // 等价于:m = (int) (m / n) = 2
m %=n; // 等价于:m = (int) (m % n) = 0
System.out.println(m);
11 运算符:关系运算符
int a = 10;
int b = 10;
boolean rs = a == b;
System.out.println(rs); //true
System.out.println(a == b); //true
System.out.println(a != b); //false
System.out.println(a >= b); //true
System.out.println(a > b); //false
System.out.println(a <= b); //true
System.out.println(a < b); //false
int i = 10;
int j = 5;
System.out.println(i == j); //false
System.out.println(i != j); //true
System.out.println(i > j); //true
System.out.println(i >= j); //true
System.out.println(i < j); //false
System.out.println(i <= j); //false
System.out.println(i = j); //5
12 运算符:逻辑运算符
1、逻辑运算符有哪些,有什么特点?
逻辑与“&” :有一个为false、结果是false
短路与&&: 一个为false、结果是false。前一个为false,后一个条件不执行
逻辑或“|”:有一个为true、结果是true
短路或||:一个为true、结果是true。前一个为true,后一个条件不执行
逻辑非“!”:!false=true、 !true=false
逻辑异或“^” :相同是false、不同是true。
注意:实际开发中、常用的逻辑运算符还是:&& 、 || 、 !
double size = 9.8;
double storage = 6;
//全true才true
System.out.println(size >= 6.95 & storage >= 8); //false
//有true为true
System.out.println(size >= 6.95 | storage >= 8); //true
//与原相反
System.out.println(!true); //false
System.out.println(!!true); //true
//异true同false
System.out.println(false ^ true); //true
System.out.println(false ^ false); //false
System.out.println(true ^ true); //false
System.out.println(true ^ false); //true
int a = 10;
int b = 20;
System.out.println(a > 100 && ++b > 10); //false
System.out.println(b); //20
System.out.println(a > 100 & ++b > 10); //false
System.out.println(b); //21
int i = 10;
int j = 20;
System.out.println(i > 2 || ++j > 10); //true
System.out.println(j); //20
System.out.println(i > 2 | ++j > 10); //true
System.out.println(j); //21
13 运算符:三元运算符
//double score = 98;
double score = 18;
String rs = score >= 60 ? "考试通过":"挂科";
System.out.println(rs); //挂科
//int a = 10; //max = 2000
int a = 10000; //max = 10000
int b = 2000;
int max = a > b ? a : b;
System.out.println(max);
14 运算符:三元运算符练习题
//求三个整数的最大值
int i = 10;
int j = 30;
int k = 50;
int temp = i > j ? i : j;
int rsMax = temp > k ? temp : k;
System.out.println(rsMax); //50
int rsMax1 = i > j ? (i > k ? i : k) : (j > k ? j : k);
System.out.println(rsMax1); //50
15 运算符优先级
System.out.println(10 > 3 || 10 > 3 && 10 < 3); // true
System.out.println( (10 > 3 || 10 > 3 ) && 10 < 3); // false
16 API介绍、案例技术:键盘录入
1、API是什么?
Application Programming Interface,应用程序编程接口
Java写好的程序,咱们可以直接调用
2、键盘录入的开发步骤
导包:import java.util.Scanner
抄写代码得到扫描器对象: Scanner sc = new Scanner(System.in)
抄写代码等待接收用户输入的数据: sc.nextInt() 、sc.next()
package com.itheima.type;
//1、导包操作(并不需要自己写,以后通过工具进行导入更方便)
import java.util.Scanner;
public class TypeDemo1 {
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);
}
}