第一章 数据类型转换

1.1 自动转换(隐式)

  1. 规则:数据范围从小到大
  • 如int->long,float->double

1.2 强制转换(显式)

  1. 格式:范围小的类型 范围小的变量 = (范围小的类型)原本范围大的数据
  • 如: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编码表

  1. 计算机底层数据都是二进制(数字)
  2. 必背:32——space,48——‘0’, 65——‘A’, 97——‘a’, 0——0
  3. 数字和字符对照关系表(编码表):
  • ASCLL——美国标准
  • Unicode——万国码

第二章 运算符

2.1 四则和取模

  1. 运算符:进行特定操作的符号:例+
  2. 表达式:用运算符连起来的式子:例2 + 5
  • 注:不同数据类型时候,谁大听谁的
  • 注:'+'三种用法
  • 1对数值就是加法
  • 2对char计算前先提升成int
  • 3对字符串String(首字母大写,并++不是关键字++),表示++字符串连接操作++
  • ++任何数据类型和字符串连接时候,都会变成字符串++

2.2算数运算符:+,-,*,/,%,++,–

  1. % 取模(正负关系只看左边值)
  • 9 % 4 = 1
  • -9 % 4 = -1
  • 9 % -4 = 1
  1. ++, – 自增运算符(只能变量)
  • ++num 先计算后赋值
  • num++ 先赋值再计算
  • 单独使用时候前后都一样
  • for(int i = 0; i < 3; i++)
  • for(int i = 0; i < 3; ++i)

2.3赋值运算符(只能变量):+=, -=, *=, /=, %=, =

  1. = 将右侧数据交给左侧变量
  2. 隐含了一个强制类型转换
byte num = 5;
num += 5; //其中byte + int——>int + int——>(byte)int;

2.4比较运算符:==,<, >, <=, >=, !=, instanceof

  1. 结果一定是boolean类型
  2. 不可以连写
  3. instanceof判断左侧对象是不是右侧特定类的一个实例

2.5逻辑运算符:与&&, 或||, 非!

  1. && 都为真——>true
  2. || 一个为真——>true
  3. &&和||有短路效果:左边可以判断结果时候,右边代码将不执行
  4. 结果一定是boolean类型
  • 注:1<x<3时——>分开写1 < x && x < 3

2.6三元运算符(三目运算符):数据类型 变量名称 = 判断条件 ? 表达式1 : 表达式2

  1. 成立——>表达式1
  2. 不成立——>表达式2
  • 注:两个表达式都要符合左侧数据类型(输出时不需要:sys(a < b ? a : b))
  • 三目运算符结果必须要使用(1.左侧数据类型2.或直接输出)

第三章 方法入门

3.1 概述

1.++方法++:将一个++功能++抽取出来

3.2 定义

  1. 格式:
public static void 方法名称(){
方法体;
}
  • 注:静态方法只能访问静态成员(用static修饰的)
  • 注:方法的定义不能产生嵌套包含的关系
  • 注:方法定义好了不会执行,想执行需要++调用++

3.2 调用(执行方法的动作)

  1. 格式:
方法名称();

3.3 JDK9中的JShell使用(简单轻量的小工具)

  1. 类似脚本编程——>一行一行执行
  2. 不用写主函数等等,只需要写运行逻辑和输出就行
int a = 5;
Sysout.out.println(a);
  1. 启动jshell
  2. 结束/exit

3.4 编译器的优点

  1. byte,short, char三种类型,如果右侧赋值的数值没有超过范围,那么编译器为我们隐含的补上了强转类型。超过就报错。
  2. 当给变量赋值时—>右侧全为常量时候:编译器会直接将常量计算结果赋值。
  • 不超过自身范围,所以正确
  • 这里称之为:++“编译器的常量优化”++
  • 右侧不能有变量,有了不再优化
byte a = 5;
byte b = 8;
byte c = a + b; //错的,原因看1.2-1
byte c = 5 + 8; //可以