第一章 数据类型转换
1.1 自动转换(隐式)
- 规则:数据范围从小到大
- 如int->long,float->double
1.2 强制转换(显式)
- 格式:范围小的类型 范围小的变量 = (范围小的类型)原本范围大的数据
- 如:int num = (int)100L;
-
char chars = 'a'; int num = chars; //小转大,值为97
- 注:强制类型转换不推荐使用——>有可能发生精度亏损(int num = (int)3.999),数据溢出(int num = (int)600000000L)
- 注:byte/short/++char++三种类型都可以发生++数学运算++,如“+”
- char a = ‘A’ + 1; //结果66
- 注:byte/short/++char++三种类型在运算过程中,默认提升成int型,在计算
-
byte num1 = 40; byte num2 = 50; byte sum = num1 + num2; //错因为byte + byte——>int + int 所以要用int类型 int sum = num1 + num2;
-
- 注:byte/short/++char++三种类型在运算,真实大小++不能超过本身范围++,否则溢出
- 注:boolean类型不能发生数据类型转换
1.3 ASCLL编码表
- 计算机底层数据都是二进制(数字)
- 必背:32——space,48——‘0’, 65——‘A’, 97——‘a’, 0——0
- 数字和字符对照关系表(编码表):
- ASCLL——美国标准
- Unicode——万国码
第二章 运算符
2.1 四则和取模
-
运算符:进行特定操作的符号:例+
-
表达式:用运算符连起来的式子:例2 + 5
- 注:不同数据类型时候,谁大听谁的
- 注:'+'三种用法
- 1对数值就是加法
- 2对char计算前先提升成int
- 3对字符串String(首字母大写,并++不是关键字++),表示++字符串连接操作++
- ++任何数据类型和字符串连接时候,都会变成字符串++
2.2算数运算符:+,-,*,/,%,++,–
- % 取模(正负关系只看左边值)
- 9 % 4 = 1
- -9 % 4 = -1
- 9 % -4 = 1
- ++, – 自增运算符(只能变量)
- ++num 先计算后赋值
- num++ 先赋值再计算
- 单独使用时候前后都一样
- for(int i = 0; i < 3; i++)
- for(int i = 0; i < 3; ++i)
2.3赋值运算符(只能变量):+=, -=, *=, /=, %=, =
- = 将右侧数据交给左侧变量
- 隐含了一个强制类型转换
byte num = 5; num += 5; //其中byte + int——>int + int——>(byte)int;
2.4比较运算符:==,<, >, <=, >=, !=, instanceof
- 结果一定是boolean类型
- 不可以连写
- instanceof判断左侧对象是不是右侧特定类的一个实例
2.5逻辑运算符:与&&, 或||, 非!
- && 都为真——>true
- || 一个为真——>true
- &&和||有短路效果:左边可以判断结果时候,右边代码将不执行
- 结果一定是boolean类型
- 注:1<x<3时——>分开写1 < x && x < 3
2.6三元运算符(三目运算符):数据类型 变量名称 = 判断条件 ? 表达式1 : 表达式2
- 成立——>表达式1
- 不成立——>表达式2
- 注:两个表达式都要符合左侧数据类型(输出时不需要:sys(a < b ? a : b))
- 三目运算符结果必须要使用(1.左侧数据类型2.或直接输出)
第三章 方法入门
3.1 概述
1.++方法++:将一个++功能++抽取出来
3.2 定义
- 格式:
public static void 方法名称(){ 方法体; }
- 注:静态方法只能访问静态成员(用static修饰的)
- 注:方法的定义不能产生嵌套包含的关系
- 注:方法定义好了不会执行,想执行需要++调用++
3.2 调用(执行方法的动作)
- 格式:
方法名称();
3.3 JDK9中的JShell使用(简单轻量的小工具)
- 类似脚本编程——>一行一行执行
- 不用写主函数等等,只需要写运行逻辑和输出就行
int a = 5; Sysout.out.println(a);
- 启动jshell
- 结束/exit
3.4 编译器的优点
- byte,short, char三种类型,如果右侧赋值的数值没有超过范围,那么编译器为我们隐含的补上了强转类型。超过就报错。
- 当给变量赋值时—>右侧全为常量时候:编译器会直接将常量计算结果赋值。
- 不超过自身范围,所以正确
- 这里称之为:++“编译器的常量优化”++
- 右侧不能有变量,有了不再优化
byte a = 5; byte b = 8; byte c = a + b; //错的,原因看1.2-1 byte c = 5 + 8; //可以
更多推荐
01_02_Java语言入门||01_Java基础语法||day02_数据类型转换,运算符,方法入门
发布评论