第一节数据类型转换
1.1自动转换:将取值范围小的类型 自动提示为取值范围大的类型
public class Demo{
public static void main(String[] args){
//System.out.println("Hello");
//
int num1 = 10;
long num2 = 20L;
double num3 = 30.0;
float num4 = 40.0F;
byte num5 = 10;
long num6 = num5;
System.out.println(num6);
int num7 = 10;
double num8 = num7;
System.out.println(num8);
int a = 10;
long b = a;
System.out.println(b);
}
}
转换图解
byte类型内存占有一个字符,在int类型运算时会提升为int类型,自动补充三个字节,因此计算后的结果会是int类型
转换规则-范围小的类型向范围大的类型提升,byte short char 直接提升为int
byte、short、char-->int-->long-->float-->double
1.2强制转换:将取值范围大的类型转换为小的类型
转换格式:数据类型 变量名 = (数据类型)被转数据值
public class Demo{
public static void main(String[] args){
//
long num = 10L;
byte num2 = (byte)num;
System.out.println(num2);
double num3 = 20.5;
byte num4 = (byte)num3;
System.out.println(num4);
int a = 50;
byte b = (byte) a;
System.out.println(b);
}
}
转换图解
注意:
浮点型转成整数,直接取消小数点,可能会有数据精度损失;
int强转为short砍掉俩个字节,可能会有数据丢失;
1.3ASCII编码表:就是将人类的文字和一个十进制进行对应起来的一张表。
*将所有的英文字母,数字,符号都和十进制进行对应,因此产生了世界上第一章编码表(American Standard Code for inFormaion interchange 美国标准信息交换码)
1.4char与int互转
将字符保存到计算机中,或者从计算机中读出字符(一个数字对应一个字符)
格式:
int 变量名 = 字符;
char 变量名 = (char)整数
public class Demo{
public static void main(String[] args){
char ch = '中'; //保存
int num = ch;
System.out.println(num);//20013
int n = 200130; //读取
char c = (char)n;
System.out.println(c);
//题
char c2 = 'a';
System.out.println(c2 + 1);//97 + 1
}
}
第二节运算符
2.1算数运算符(+ - * / %(读作模 理解 取余) ++(自增) --(自减) ):对数据(变量/常量)进行运算
前四种和数学一样
public class Demo{
public static void main(String[] args){
int a = 24;
int b = 4;
// +
System.out.println(a+b);//28
// -
System.out.println(a-b);//20
// *
System.out.println(a*b);//96
// /
System.out.println(a/b);//6
int a = 10;
int b = 3;
//10/ 3 = 3.....1
System.out.println(a/b);//3
System.out.println(a%b);//1
}
}
加号注意事项
俩个作用
对俩个数字有求和作用
public class Demo{
public static void main(String[] args){
char ch = '中'; //保存
int num = ch;
System.out.println(num);//20013
int n = 200130; //读取
char c = (char)n;
System.out.println(c);
//题
char c2 = 'a';
System.out.println(c2 + 1);//97 + 1
}
}
对字符串有想接作用(连接字符串:当+号两边只要有一边出现字符串)
System.out.println("Hello"+"World");// "HelloWorld"
System.out.println("Hello"+3);//"Hello3"
System.out.println(3+"Hello");//"3Hello"
例子
public class Demo{
public static void main(String[] args){
//1,对两个数求和:当+号两边都是数值
int a = 24;
int b = 4;
System.out.println(a+b);//28
// +
//2,连接字符串:当+号两边只要有一边出现字符串
System.out.println("Hello"+"World");// "HelloWorld"
System.out.println("Hello"+3);//"Hello3"
System.out.println(3+"Hello");//"3Hello"
//例子1:
System.out.println(5+"+"+5+"="+(5+5));//5+5=10
//例子2:
int x = 10;
int y = 20;
System.out.println(x+"+"+y+"="+x+y);//10+20=1020
//System.out.println(10+"+"+20+"="+10+20);
}
}
除号的注意事项
1,两个整数相除,无条件去掉小数部分,要整数部分
public class Demo{
public static void main(String[] args){
//1,两个整数相除,无条件去掉小数部分,要整数部分
int a = 10;
int b = 2;
int c = 4;
double d = 4.0;
int e = 0;
System.out.println(a/b);//5
System.out.println(a/c);//2.5
}
}
2,让一个浮点数参与运算符
public class Demo{
public static void main(String[] args){
int a = 10;
int b = 2;
int c = 4;
double d = 4.0;
int e = 0;
//2,让一个浮点数参与运算符
System.out.println(a/d);//2.5
}
}
3,除数不能为 0
public class Demo{
public static void main(String[] args){
//1,两个整数相除,无条件去掉小数部分,要整数部分
int a = 10;
int b = 2;
int c = 4;
double d = 4.0;
int e = 0;
//3,除数不能为 0
//System.out.println(a/e);//编译不报错,运行奔溃 Exception 不正常
}
}
%(取余/模mod)
被除数/除数 = 商.....余数
public class Demo{
public static void main(String[] args){
int a = 10;
int b = 3;
//10/ 3 = 3.....1
System.out.println(a/b);//3
System.out.println(a%b);//1
//1,倍数关系/整除关系
//例子 奇数 不能被2 整除 偶数 能被2 整除
int c = 21;
System.out.println(c%2);//0 偶数 否则 奇数
}
}
++(自增)-不适用于常量
变量名 = 变量名 + 1;
变量名++;
格式
++变量名;
先加然后变量参与计算
变量名++;
先计算后加
public class Demo{
public static void main(String[] args){
int num = 10;
//前加加,++变量名;
//++num; // num = num+1;
//后加加,变量名++;
num ++;
System.out.println(num);
}
}
混合使用++(不要使用)
int a = 10;
int b = ++a;// a = 11 新值 int b = 11;
System.out.println(a);//11
System.out.println(b);//11
建议单独使用
int a = 10;
a++;//11
int b = a;//b = 11;
System.out.println(a);
System.out.println(b);
public class Demo{
public static void main(String[] args){
int x = 10;
x++;
++x;
System.out.println(x++);
}
}
赋值运算符-简化代码( = += -= *= /= %=)
变量名 = 变量名+值;
变量名 += 值;
public class Demo{
public static void main(String[] args){
double salary = 10000.00;
// +=
salary += 1000;//相当于 salary = salary+1000;
System.out.println(salary);
// -=
salary -= 50; //相当于 salary = salary - 50;
System.out.println(salary);
// *=
salary *= 5 ;// 相当于 salary = salary * 5;
System.out.println(salary);
// /=
salary /= 10; //相当于 salary = salary/10;
System.out.println(salary);
// %=
int num =(int)salary;
num %= 100; // num = num%100;
System.out.println(num);
//隐含一个强转
short s = 10;
//s += 10;
s =(short) (s + 10); //byte short char 参与运算符自动提升int short+int ->int +int
System.out.println(s);
}
}
比较运算符-对俩个值进行比较得到一个boolean值(true/false)-> < >= <= ==是否相等!=是否不等
public class Demo{
public static void main(String[] args){
//模拟用户输入的数据
int a = 10;
int b = 20;
int c = 10;
// > 大于
System.out.println(a > b);//false
System.out.println(b > c);//true
// < 小于
System.out.println(a < b);//true
System.out.println(a < c );//false
// >= 大于或者等于
System.out.println(a >= c );//true
// <= 小于或者等于
System.out.println(a <= b );//true
// == 是否相等
System.out.println(a == c);//true
System.out.println(a == b);//false
// != 是否不等
System.out.println(a != c);//false
System.out.println(a != b);//true
}
}
逻辑运算符-对俩个boolean值进行运算, 结果也是boolean
包含
&& 双与/短路与 表示并且-
|| 双或/短路或 表示或者
! 非 表示相反
表达式1&&表达式2
表达式1||表达式2
!变量
&&--执行过程:表示表达式1执行完如果正确会执行表达式2 如果错误将不执行表达式2
&-----执行过程:表示表达式1执行完如果正确会执行表达式2 如果错误继续执行表达式2
public class Demo{
public static void main(String[] args){
//&& 双与 /短路与 表示并且
//例子
System.out.println(true&&true);//true
System.out.println(true&&false);//false
System.out.println(false&&true);//false
System.out.println(false&&false);//false
//口诀:全真为真,一假则假
System.out.println("======");
//|| 双或 /短路或 表示或者
System.out.println(true||true);//true
System.out.println(true||false);//true
System.out.println(false||true);//true
System.out.println(false||false);//false
System.out.println("======");
//口诀:有真为真,全假则假
// ! 非 表示取反
//口诀:真变假,假变真
System.out.println(!true);//false
System.out.println(!false);//true
System.out.println("======");
//短路 ||
boolean b = true;
System.out.println(true||!b);//true
System.out.println(b);//true
System.out.println("======");
//短路 &&
System.out.println(false&& !b);//false
System.out.println(b);//true
}
}
三元运算符(简化版的if else函数)
java中唯一一个需要三个表达式参与运算的运算符
格式
布尔表达式?表达式1:表达式2
注意:前后的数据类型必须一致
结果必须被使用,直接打印或赋值给一个变量
public class Demo{
public static void main(String[] args){
//模拟用户输入
int a = 20;
int b = 100;
//
int max = ( a > b ? a : b );
System.out.println(max);
System.out.println( a > b ? a : b );
boolean d = true;
/*
boolean max2 = (a > b ? a : d);
System.out.println(max2);*/
}
}
第三节方法
将相同的代码放在一起(封装),通过调用来使用,达到重复使用代码的目的
public class Demo{
public static void main(String[] args){
//
System.out.println("吃食堂午饭");
/*
System.out.println("写代码");
System.out.println("改BUG");
System.out.println("运行代码");*/
//方法的调用处
coding();
System.out.println("========================");
System.out.println("吃食堂晚饭");
/*
System.out.println("写代码");
System.out.println("改BUG");
System.out.println("运行代码");*/
//方法的调用处
coding();
}
//方法的定义
public static void coding(){
System.out.println("写代码");
System.out.println("改BUG");
System.out.println("运行代码");
}
}
方法的使用
1.先定义再用
2.定义格式
public static void 方法名(){
//一堆代码 方法体
}
特点:无参无返回值的方法
3.调用格式
方法名();-必须在main程序入口中调用
public class Demo{
//2,方法定义之后一定要调用才能执行,目前我们就在main调用
public static void main(String[] args){
printMax();//方法调用处
}
//1,定义方法,无参无返回值的方法
public static void printMax(){
//模拟整数
int a = 10;
int b = 200;
int max = ( a > b ? a : b );
System.out.println(max);
}
}
方法的注意事项
先定义在使用
1.定义
a.方法名 见名知意 小驼峰
b.定义位置,定义在类中其他方法外
c.可以定义无数个方法
d.定义的顺序与执行的顺序无关
2.调用
a.方法名必须准确
b.方法必须调用才会执行里面的内容
c.执行的顺序有调用的顺序决定
第四节JShell脚本工具(了解)
JDK9增加的一个功能
用于测试一段代码能不能执行或者执行结果是什么
执行地方类似于cmd窗口
怎么打开?
第一步打开cmd 输入JShell 回车