Day2-数据类型转换、运算符、方法入门

第一章 数据类型转换

自动类型转换(隐式)
public class Demo01DataType{
		public static void main(String[] args){
			System.out.println(1024);//默认int类型
			System.out.println(1.24);//默认double类型
		
			long num1=100L;
			System.out.println(num1);//100
			
			//num2是long类型,100默认是int型
			//等号代表赋值,将右侧的int常量,交给左侧的long变量进行存储
			//int  -->  long,符合数据类型从小到大的要求,发生自动类型转换
			long num2=100;
			System.out.println(num2);//100

			//同理(float --> double)
			double num3=2.15F;
			System.out.println(num3);//2.15

			//同理(long --> double)
			float num4=3L;
			System.out.println(num4);//3.0
		}
	}
  1. 特点:代码不需要特殊处理,自动完成。
  2. 规则:数据类型范围从小到大
    1. byte --> short --> int --> long --> float --> double
强制类型转换
public class Demo02DataType{
		public static void main(String[] args){
			int num=100;
			System.out.println(num);//100
			
			//int num2=100L;
			//System.out.println(num2);//错误

			//100L未超过int范围
			int num3=(int)100L;
			System.out.println(num3);//100

			//int最大大约21亿
			int num4=(int)6000000000L;
			System.out.println(num4);//1705032704(数据溢出);只截取60亿后面的部分

			//float --> int
			int num5=(int)3.4;
			System.out.println(num5);//3(精度损失)

			char zifu1='A';
			System.out.println(zifu1 + 1);//66(A的ASCII值为65)
			
			//40为超过byte范围,编译器会自己补上一个强制类型转换(byte)
			byte num6=40byte num7=50//javac编译器会直接计算出常量表达式的结果,在.class文件中直接替换成结果
			byte result=40+50;
			System.out.println(result);//90
			//byte result1=num6+num7;
			//System.out.println(result1);//错误(左面byte类型,右面int类型)
		}
}
  1. 特点:代码要进行特殊的格式处理,不能自动完成。
  2. 格式:范围小的类型 范围小的变量名 = (范围小的类型)范围大的数据或变量。
  3. 注意事项
    1. 强制类型一般不推荐使用,因为有可能发生精度损失数据溢出
    2. byte/short/char三种类型可以发生数学运算,如加法。
    3. byte/short/char三种类型在运算时,首先被提升为int类型,然后再计算。
    4. boolean类型不能发生任何数据类型转换
ASCII编码表

常见的ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)
0 — 30H — 48
A — 41H — 65
a — 61H — 97

其中汉字对用的是Unicode码表(万国码),0-127与ASCII一致,128及以后包含更多的字符。


第二章 运算符

运算符:进行特定操作的符号
表达式:用运算符连起来的式子

算数运算符
  • 加:+
    • 整数相加,就是加法。
    • 对于char类型来说,运算之前要提升为int。
    • 任何数据类型和字符串相加都会变成字符串。
  • 减:-
  • 乘:*
  • 除:%(取余)、/(取整)
  • 自增运算符:++
  • 自减运算符:–

若运算过程中有不同类型的数据,运算结果的数据类型为范围大的那种。
自增和自减运算符的位置不同,含义也不同,并且只有变量可以使用。

赋值运算符
  • =:直接赋值
  • +=:a = a + 1
  • -=:a = a - 1
  • /=:a = a / 1
  • %=:a = a % 1

复合赋值运算符中隐含了一个强制类型转换。

public class Demo03Operator{
		public static void main(String[] args){
			byte num=30;
			//num=num+5;
			//num+5:byte + int --> int + int = int
			//byte = (byte)int(自动添加的)
			num+=5;
			System.out.println(num);//35
		}
}
比较运算符
  • ==
  • <
  • >
  • >=
  • <=
  • !=

比较的结果为truefalse

逻辑运算符
  • &&:与(全1为1)
  • ||:或(全0为0)
  • !:非

与和或具有短路的效果,若左侧已经判得结果,右侧就不会运行。

三元运算符
  • 一元运算符:!、++、–
  • 二元运算符:+、-、%、/、&&、||、=等
  • 三元运算符:判断语句?表达式1:表达式2
    • 判断语句为true,运算结果为表达式1
    • 判断语句为false,运算结果为表达式2
    • 注意点:表达式类型要与赋值的变量类型一致,不管表达式是否会使用到

第三章 方法入门

概述

将一个功能剥离出来,让代码看起来更清晰,方便日后更新。

练习
 public class Demo04Method{
		public static void main(String[] args){
			方法名(实参);
		}
		public static 返回值类型 方法名(形参){
			方法体;
		}
	}
注意事项
  • 方法定义的顺序无所谓。
  • 方法的定义不能有嵌套包含关系。
  • 方法定义完成后需调用后才能执行。

第四章 JShell脚本工具

JShell脚本工具是JDK9的新特性

  1. 启动JShell工具,在DOS命令行直接输入jshell命令。
  2. 使用情况:代码量少,不愿编写main方法,也不愿去编译和运行
  3. 退出命令:/exit

第五章 扩展知识点

编译器的常量优化

  1. 赋值的常量为超出数据类型的范围,则编译器会自动添加一个强制类型装换
  2. 变量赋值的右端是常量表达式,没有一个变量。编译器会直接计算出常量表达式的结果并保存在字节码.class文件中。一旦有变量的出现,就不会优化。
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页