Java学习day02
1.进制转换
- 二进制与十进制
- 二进制与八进制
- 二进制与十六进制
- Java程序中支持书写二进制、八进制、十六进制的数据,分别需要以0B或者0b、0、0X或者0x开头。
2.数据类型
- 基本数据类型:四类八种
- 整型(默认int):
- byte:占用1个字节
- short:占用2个字节
- int:占用4个字节
- long:占用8个字节
- 浮点型(小数,默认double):
- float:占用4个字节
- double:占用8个字节
- 字符型:
- char:占用2个字节
- 布尔型
- boolean:占用1个字节
3.关键字、标识符
1.关键字
- 定义:Java语言自己用的一些词汇,有特殊作用的,称之为关键字
2.标识符
- 定义:标志符就是名字(如类名、变量名…都是标识符)。
4.方法
1.定义
- 方法是一种用于执行特定任务或操作的代码块,代表一个功能,它可以接收数据进行处理,并返回一个处理后的结果。
2.定义格式
1.基础格式
定义方法: 修饰符 返回值类型 方法名( 形参列表 ){ 方法体; } 调用方法: 方法名(数据); 例: public static int add(int a, int b){ return a + b; } add(1, 2);
- 如果方法不需要返回数据,返回值类型必须声明称void(无返回值声明),方法体内不可以使用return返回数据。
- 必须调用方法才可以执行方法。
2.方法的注意事项
- 方法重载
- 一个类中,出现多个方法的名称相同,但是它们的形参列表是不同的,那么这些方法就称为方法重载了。
- 重载的条件:形参列表不同
- 有哪些不同:
- 参数数据类型
- 参数数量
- 参数顺序
- 无返回值的方法中可以直接通过单独的return;立即结束当前方法的执行。
5.类型转换
1.自动类型转换
- 类型范围小的变量,可以直接赋值给类型范围大的变量。
2.强制类型转换
- 类型范围大的变量, 不可以直接赋值给类型范围小的变量,会报错,需要强制类型转换过去。
- 数据类型 变量2 = (数据类型) 变量1、数据;
byte b = 10; printInt(b); // 10 int c = 128; byte c1 = (byte) c; System.out.println(c1); // -128 double d = 1.5; int i = (int) d; System.out.println(i); // 1
- 强制类型转换可能造成数据(丢失)溢出;浮点型强转成整型,直接丢掉小数部分,保留整数部分返回。
3.表达式的自动类型提升
- 在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算。
- 表达式的最终结果类型由表达式中的最高类型决定。
- 在表达式中,byte、short、char 是直接转换成int类型参与运算的。
public static double add(byte a, int b, double c) { return a + b + c; } public static int add(byte a, byte b) { return a + b; } public static byte add1(byte a, byte b) { return (byte) (a + b); }
6.输入输出
1.输出
- 把程序中的数据展示出来。
System.out.println("请输入您的姓名:");
2.输入
- 程序读取用户键盘输入的数据。
- 使用Scanner接收用户键盘输入的数据,需要三个步骤:
- 导包:告诉程序去JDK的哪个包中找扫描器技术
- 代表得到键盘扫描器对象(东西)。
- 等待接收用户输入数据。
// 创建Scanner对象 扫描器对象 Scanner sc = new Scanner(System.in); System.out.println("请输入您的姓名:"); String name = sc.next(); System.out.println("请输入您的年龄:"); int age = sc.nextInt(); System.out.println("接收到姓名为:" + name); System.out.println("接收到年龄为:" + age);
7.运算符
1.算术运算符
- +的特殊作用:
- “+” 符号在有些情况下可以做连接符。
- “+”符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串。
int a = 10; int b = 20; System.out.println(a + b); // 30 System.out.println(a - b); // -10 System.out.println(a * b); // 200 System.out.println(a / b); // 0 System.out.println(a % b); // 10 System.out.println("======================="); // + 作为连接符的使用 System.out.println("程序员" + 666); System.out.println('a' + 10);
2.自增自减运算符
- ++ 、-- 只能操作变量,不能操作字面量。
- ++、-- 如果在变量前后单独使用是没有区别的。
- ++、-- 如果不是单独使用(如在表达式中、或同时有其它操作),放在变量前后会存在明显区别:
- 在变量的前面,先对变量+1、-1,再拿变量的值运算。
int age = 20; age++; System.out.println(age); // 21 ++age; System.out.println(age); // 22 age--; System.out.println(age); // 21 --age; System.out.println(age); // 20
- 在变量的后面,先拿变量的值运算,再对变量的值+1、-1
int score = 100; int result = ++score; System.out.println(score); //101 System.out.println(result); //101 int score1 = 100; int result1 = score1++; System.out.println(score1); //101 System.out.println(result1); //100 int age1 = 20; System.out.println(age1++); // 20 System.out.println(++age1); // 22
3.赋值运算符
- 基本赋值运算符:
- 就是“=”,从右边往左看。
- int a = 10; 先看“=”右边,把数据10赋值给左边的变量a存储。
- 扩展赋值运算符 :
- 扩展的赋值运算符隐含了强制类型转换。
// += 加并赋值 int a = 10; a += 5; // a = (int)a + 5; System.out.println(a); byte b1 = 2; byte b2 = 3; // byte b3 = b1 + b2; b1 += b2; // b1 = b1 + b2 System.out.println(b1);
4.关系运算符、三元运算符
- 关系运算符:
- 判断数据是否满足条件,最终会返回一个判断的结果,这个结果是布尔类型的值:true或者false。
- 三元运算符:
- 格式:条件表达式 ? 值1 : 值2;
- 执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2。
int a = 10; int b = 20; System.out.println(a > b); // false System.out.println(a >= b); // false System.out.println(a < b); // true System.out.println(a <= b); // true System.out.println(a == b); // false System.out.println(a != b); // true double score = 60; System.out.println(score >= 60 ? "及格" : "不及格");
5.逻辑运算符
// 逻辑与 逻辑或 System.out.println(2 > 1 & 2 > 3); //false System.out.println(2 > 1 | 2 > 3); // true // 取反 System.out.println(!(2 > 3)); // true // 异或 前后结果相同返回false,不同返回true System.out.println(2 > 1 ^ 2 > 3); // true System.out.println("==========================="); // 短路与 短路或 System.out.println(2 > 1 && 2 > 3); //false System.out.println(2 > 1 || 2 > 3); // true int a = 0; int b = 0; System.out.println(a < 0 && ++b > 0); System.out.println(b);