昨日内容的回顾
注释:用来对代码进行解释说明
关键字 : 在java中提前定义好并且具有特殊功能的单词 50个 在用的48
预留关键字:const 、goto
特点:
1、所有的字母全部小写
2、不能作为标识符使用标识符:
java中的名称内容:
1、所有的大小写英文字母
2、0-9阿拉伯数字
3、特殊符号:_和$
4、其他国家的文字注意事项:
1、数字不能开头
2、不能使用关键字
3、中间不能出现空格命名规范:
总体规则:见名知意大驼峰和小驼峰的规范
常量名:全部大写,单词和单词之间使用_隔开
包:前两层使用公司域名的反写,所有包名字母
小写常量:java代码运行过程中值不会发生变化的量
分类:
表现形式:
字面值常量:比如:所有的数字符号常量:比如:PI E
数据类型:
基本数据类型常量:
整数常量:所有的整数
小数常量:所有的小数
字符常量:被单引号包裹的元素 【有且只有一个元素】
布尔常量:表示真假 值只有两个:true false
引用数据类型常量
字符串常量:被双引号包裹的多个元素【字符序列】
空常量:表示什么都没有 null
变量:java代码运行过程中值会发生变化的量
理解:在内存中存放单个常量值的空间,
定义变量: 格式:
数据类型 变量名;
数据类型 变量名 = 对应的常量值;【常用】数据类型:2种
基本数据类型:
四类八种:
整数类型:byte short int long 【1、2、4、8 字节】
浮点类型:floatdouble 【4、8字节 标准IEEE754】
字符类型:char 【2字节和short是相同的】
布尔类型:boolean【未知】
排 序 :byte<short=char<int<long<float<double 数据类型转换:
小转大:直接存放
大转小:把大类型转变成小类型
转换格式:小类型 变量名 = (小类型)大类型的值大转小会发生数据丢失问题。
每一个基本数据类型对应存放基本数据类型常量值的。
引用数据类型:类、数组、接口
运算符
概述:java中用来对数据进行操作使用的到一些符号,每个符号有自己独有的功能。
1.1 、算术运算符:
概述:java中对常量或变量进行数学运算的一些符号。就是对应我们数学中的数学运算
数学运算:加减乘除取余数
+: 1、加法 2、正数【写在数的前面一般省略】 3、字符串拼接【操作的两个元素中有一个是字符串】 ‐: 1、减法 2、负数【写在数的前面表示负数】 *:表示乘法 /:表示除法 %:表示取余数【取模】注意: 1、* / % 运算的时候有一方是浮点类型【小数】结果就是小数 2、整数类型中byte short 以及字符类型char代表的数字在运算的时候默认变为 int类型来计算的,结果也是int类型 3、除法如果是两个整数相除结果只取整数部分
代码示例
package com.ujiuye.demo; public class Demo02 { public static void main(String[] args) { int a = 10; int b = 20; System.out.println(a+b);//30 int c = +50 ; System.out.println(c);//50 String s = "武汉很不错"; System.out.println(a+s);//10武汉很不错 //减法 System.out.println(a‐b);//‐10 System.out.println(‐40);//‐40 //乘除和取余 System.out.println(a*b);//200 System.out.println(a/b);//0 System.out.println(a%3);//1 //小数的乘除取余 System.out.println(b*2.1);//42.0 System.out.println(a/20.0);//0.5 System.out.println(a%3.3);//0.1 0.10000000000000053 //byte short 的数运算后的结果默认是int byte bb = 12; short ss = 13; byte newb = (byte)(bb+ss) ;//验证byte 、 short类型的数运算后结果是int } }
1.1.2自增自减运算符:
概述:java中是用来对变量进行增加一或减去一操作的运算符。
所以自增自减只能使用于变量 符号:
自增:++ 自 减 :-- 使用:
写在变量名称的前面或后面分情况:
1、变量的自增和自减只是单独使用:
符号写在变量前后对结果没有任何影响。
2、变量的自增自减和其他的操作结合的使用:
符号写在变量名的前面:
自增自减的优先级大于其他操作优先级【先自增自减再去做其他操作】
符号写在变量名的后面:
自增自减的优先级小于其他操作优先级【先做其他操作再做自增自减】
代码示例
package com.ujiuye.demo; public class Demo03 { public static void main(String[] args) {
int a = 10; int b = 20; //单独使用 /*++a; ‐‐b;*/ /*a++; b‐‐; System.out.println(a);//11 System.out.println(b);//19 */ //和输出语句结合使用 //System.out.println(++a);//11 System.out.println(a++);//10 System.out.println(a);//11 } }
1.2 、比较运算符
概述:用来比较两个元素的大小关系,结果是boolean类型。符号和数学比较运算符号是一样 小于:
等于 :
大于等于小于等于不等于
注意:在数学中支持 1<3<5 这样的写法,但是java中不支持。到逻辑运算符的时候给大家讲
代码示例
package com.ujiuye.demo; public class Demo04 { public static void main(String[] args) { //比较运算符System.out.println(3>5);//false System.out.println(3<5);//true System.out.println(3>=5);//false System.out.println(3<=5);//true System.out.println(3==5);//false System.out.println(3!=5);//true } }
上午知识点回顾
算术运算符: 普通数学运算: +【表示加法、字符串拼接、正数】 ‐ 【表示减法、负数】 * / %【乘除和取余数】自增自减: 自 增 :++ 自 减 :‐‐ 特点:只能被使用于变量使用: 1、单独使用的时候:符号写在变量的前和后没有影响 2、自增和自减和其他操作结合使用的时候: 符号写在变量的前面: 自增和自减的优先级大于其他操作 符号写在变量的后面: 自增和自减的优先级小于其他操作 java代码的执行顺序:自上而下自左而右的执行 比较运算符: 数学里面的比较运算符如何使用在java中就怎么使用【含义是一样的】 符号:<>,<= >= == != 数学中支持 1<3<5 这样的格式 但是Java不支持这样的格式
1.3 、赋值运算符
概述:做把一个常量值存放到对应的数据类型变量空间中普通赋值:把一个常量值存放到对应的数据类型变量
符号:= 把符号右边的值放到左边的变量中
扩展赋值:先使变量里面的值和赋值符号右边的值进行运算,把运算后的结果赋值给变量 符号:
+=:赋值符号左边的变量和右边的值进行相加,把结果赋值给左边的变量
-=:赋值符号左边的变量和右边的值进行相减,把结果赋值给左边的变量
*=:赋值符号左边的变量和右边的值进行相乘,把结果赋值给左边的变量
/=:赋值符号左边的变量和右边的值进行相除,把结果赋值给左边的变量
%=:赋值符号左边的变量和右边的值进行取余,把结果赋值给左边的变量
代码示例
package com.ujiuye.demo; public class Demo05 { public static void main(String[] args) { //普通赋值int num ; num = 100000; System.out.println(num);
int salary = 200000; //扩展赋值 salary+=5000;
//先使用变量值200000+5000=205000 System.out.println(salary);//205000
salary*=2;//salary*2=410000 410000赋值给salary
System.out.println(salary);//410000 salary/=4;
System.out.println(salary);//102500
salary‐=10000; System.out.println(salary);//92500 } }
1.4 、逻辑运算符
概述:主要是来表示两个表达式结果的逻辑关系。
与【且】:表示两个表达式的结果必须都成立结果才成立,有一个不成立结果就不成 立【有假则假,全真为真】
普通与:& 执行的时候要对&左右两边的表达式都要执行
短路与:&& 执行的时候符号左边的表达式不成立,右边的表达式就不执行了【提效了】
或:表示两个表达式的结果有一个成立最终的结果就成立【有真则真,全假为假】 普通或:| 执行的时候要对|左右两边的表达式都要执行
短路或:|| 执行的时候符号左边的表达式成立,右边的表达式就不执行了【提效
率】
非: ! 遇真则假,遇假则真
异或:^ 夫妻关系就是异或关系的生活中的典型俩个表达式的关系结果不同为真,相同则为假
代码示例
package com.ujiuye.demo; public class Demo06 { 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("=========================="); //验证普通的与和短路与的执行顺序 int a = 3; //System.out.println(false & a++>0); //System.out.println(a);//4 System.out.println(false && a++>0); System.out.println(a);//3 //验证普通或和短路或执行顺序课间练习。 // 非 : System.out.println(!true);//false //异或 System.out.println(true ^ true);//false System.out.println(true ^ false);//true System.out.println(false ^ true);//true System.out.println(false ^ false);//false } }
1.5 、三元运算符
元:表示可以操作的表达式【可以是常量,运算的式子等】
三元:三个可以操作的式子
格式:
数据类型 变量名称 = 表达式1 ? 表达式2 :表达式3 ; 执行流程:
1、判断表达式1是否成立
2、根据表达式1的结果进行赋值给变量
表达式1成立,把表达式2的结果赋值给变量表达式1不成立,把表达式3的结果赋值给变量练习
有三个int类型的变量,获取三个变量的最小值
分析:先随便比较其中的两个值,拿到最小值,然后使用最小值和第三个数比取这两者见得最小值。
代码示例
package com.ujiuye.demo; public class Demo07 { public static void main(String[] args) { int a = 10; int b = 4; int c = 38; int min = a<b ? a : b; min = min < c ? min : c ; System.out.println(min); //两个三元运算符的嵌套使用 int min1 = (a<b ? a : b)<c ? (a<b ? a : b) : c; System.out.println(min1); } }
1.6 、位移运算符
概述:一个数字通过在数制的位上进行左右移动达到数制翻倍和缩小的效果的一个运算。
计算速度要比乘法和除法快一些。符号:
<<: 左位移 数向左移动一位数字就扩大2倍
>>: 右位移 数向右移动一位数字值就缩小2倍
>>>: 无符号右位移 : 数向右移动一位数字值就缩小2倍但是他只能使用于正数
代码示例
package com.ujiuye.demo; public class Demo08 { public static void main(String[] args) { System.out.println(5<<1);//10 System.out.println(5<<2);//20 System.out.println(5<<3);//40 System.out.println(40>>1);//20 System.out.println(40>>2);//10 System.out.println(40>>>1);//20 System.out.println(‐40>>>1);//2147483628 不允许使用在负数上 } }
二、键盘录入
概述:就是java中使用键盘录入一些数据到内存变量中,该变量为我们所用。比如:取钱的时候输密码使用的就是 键盘录入
就是jdk写好的一个类(Scanner),我们可以直接找到他来使用。
相关功能:
nextInt():通过键盘录入int类型的整数到内存的变量中使用:
步骤:
1、导包【找到Scanner类】
格式:import java.util.Scanner
2、创建Scanner的对象
Scanner sc = new Scanner(System.in);
3、使用对象sc来调用功能int num = sc.nextInt();
代码的示例
package com.ujiuye.demo; import java.util.Scanner; public class Demo09 { public static void main(String[] args) { //创建Scanner对象 Scanner sc = new Scanner(System.in); System.out.println("请输入一个int的整数:"); int num = sc.nextInt(); System.out.println(num); } }
练习一:
键盘录入两个整数,计算两个整数的和
代码示例
package com.ujiuye.demo; import java.util.Scanner; public class Test01 { public static void main(String[] args) { //键盘录入两个整数,计算两个整数的和 //创建Scanner对象 Scanner sc = new Scanner(System.in); System.out.println("请输入第一个整数:"); int num1 = sc.nextInt(); System.out.println("请输入第二个整数:"); int num2 = sc.nextInt(); int sum = num1+num2; System.out.println("您录入的两个数的和是:"+sum); } }
练习二
键盘录入三个整数,输出三个整数的最大值
代码示例
package com.ujiuye.demo; import java.util.Scanner; public class Test02 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入第一个整数"); int num1 = sc.nextInt(); System.out.println("请输入第二个整数"); int num2 = sc.nextInt(); System.out.println("请输入第三个整数"); int num3 = sc.nextInt(); //求最大值 int max = num1>num2 ? num1:num2; max = max > num3 ? max : num3; System.out.println("您录入的三个数的最大值是:"+max); } }
练习三
键盘录入一个整数,判断该数字的奇偶例如,
输出:该数字是25,是一个奇数
代码示例
package com.ujiuye.demo; import java.util.Scanner; public class Test03 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int num = sc.nextInt(); String result = num % 2 ==0 ? "偶数" : "奇数"; System.out.println("您输入的数是"+result); } }
三、分支结构
概述:属于流程控制语句的一种。
属于一种把所有情形下的处理方式提前书写好,执行的时候根据实际的情形去执行该情形对应的处理方式。属于写 过个代码但是只执行其中一部分。具有固定的格式的。我们学习的时候只需要记住格式和执行流程,然后去套用就 好了。
分支结构的分类: 判断语句
选择语句
3.1、判断语句【if语句】
概述:把条件的不同结果的处理方式提前写好,执行的时候按照实际的条件结果去选择执行对应结果单额处理方 式,这样的语句叫做判断语句。
分类:
单条件判断语句多条件判断语句
单条件判断语句
两种格式:
if(条件表达式){语句体}
执行流程:
1、判断条件表达式是否成立
2、条件表达式成立,执行语句体。不成立,直接结束判断语句if(条件表达式){语句体1}else{语句体2}
执行流程:
1、判断条件表达式是否成立
2、条件表达式成立,执行语句体1。不成立,执行语句体2
代码示例
package com.ujiuye.demo; public class Demo10 { public static void main(String[] args) { //定义一个我自己的薪资 int salary = 30000; //第一种格式: /*if(salary>50000) { System.out.println("租房子"); }*/ //第二种格式 if (salary>50000) { System.out.println("租房子"); } else { System.out.println("买房子"); } } }
多条件判断语句
格式:if(条件1){语句体1}else if(条件2){语句体2}...else if(条件n){语句体n} else{语句体n+1}
执行流程:
1、判断条件1是否成立
2、条件1成立;执行语句体1;然后结束判断。条件1不成立,判断条件2是否成立
3、条件2成立,执行语句体2,然后结束判读语句
条件2不成立继续判断下一个条件依次根据结果进行执行。
4、如果所有的条件都不成立,执行语句体n+1; 代码示例
package com.ujiuye.demo; import java.util.Scanner; public class Demo11 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入您的薪资"); int salary = sc.nextInt(); if (salary<3000&&salary>1500) { System.out.println("我有对象"); }else if (salary>=3000&&salary<10000) { System.out.println("你把他的电话给我吧"); }else if (salary>10000) { System.out.println("把我的电话给他吧"); }else { System.out.println("活该你单身"); } } }