晨写
1.什么是常量
在程序的执行过程中,其值不发生改变的量
1.1 常量的分类
字面值常量
字符串常量 使用双引号括起来的内容 "helloworld"
字符常量 使用单引号括起来的内容 'A'
字符常量不参与运算的时候,代表其本身的值,参与运算的时候,参考ASCII表
整数常量 100 65
整数:默认就是十进制
进制:也属于常量的范围
二、八、十、十六进制
任意(x)进制-十进制:(位权展开法)
十进制---任意进制(使用当前数据除基取余,知道商为0,余数反转)
“8421码”:十进制和二进制的快速转换法
X进制---Y进制
方式一:分步骤
如:二进制--十进制-八进制
方式二:使用进制的概念
二进制---八进制
在二进制的基础上,从右往左美三个比特位一组,计算对应的值,直接排列
小数常量 1.1;1.3
布尔常量 ture/false
空常量 null
自定义常量
2.什么是变量
定义:在程序的执行过程中,其值发生改变的量
2.变量的三要素
1.声明限定
2.给当前变量起一个名字
3.初始化值
JAVA数据的类型划分,并且使用代码举例(引用类型先不用举例)
基本数据类型和引用数据类型
1)基本数据类型(四类八种)
整数类型 byte short int long
浮点类型
单精度类型 float float F=10000000F
双精度类型 double double d=100000000
字符类型 char char ch='我'
布尔类型 boolean(逻辑判断语句)
2)引用数据类型--面向对象中讲解
类,数据,接口
回顾重点内容
1.常量分类
进制属于常量范围
有符号位的数据表示法--计算机对数据进行运算的时候,使用这个数据的补码进行计算-反码-原码(只说整数)
正整数:原码,反码,补码都一样
负数:原码(二进制)
反码:最高符号位 不变,数值为按位取反
补码:最高符号位不变,数值位在末尾+1
2.变量三要素、分类
今日内容
1.变量中的测试(定义变量的注意事项)
1)定义Long类型必须在值的后面加上标记:L 这样就表示定义的长整型变量
2)浮点类型默认double,定义单精度float类型的时候,后面需要加入标记F、f
3)同一个变量不能被定义多次,这是因为java是一个强类型语言,语法和格式是非常严谨的
4)实际开发中,不建议同一行定义多个变量(不适合阅读)
5)方法定义中的变量:局部变量,他在使用之前必须进行初始化
在定义变量的时候就初始化
(1)数据类型 变量名 = 初始化值
要么先定义,然后再使用之前就初始化
(2)数据类型 变量名; //声明变量
变量名 = 初始化; //变量初始化
6)语句结束是都已 ;结束(英文符号)
2.java中的基本数据类型-默认类型提升(隐式转换)
定义:系统自动提升数据类型的转换
两个变量要进行求和---数据类型应保持一致
隐式提升(默认类型提升)必须通过代码计算
2.1 默认数据提升
byte,short,char,三者之间不转换,但是分别参与自己运算的时候.考虑优先提升int----long,float,double
3.JAVA中的显示数据类型提升(强制类型转换):使用基本类型和引用类型
定义:我们自己自己主动通过特殊形式让计算机进行的类型转换
当我们变量相加的时候,如果接收的类型范围小于计算结果的数据类型,需要使用java的强转类型转换--让我们的数据进行类型匹配,防止出现(jvm)提示不兼容
显式转换(强制类型转换)---不仅适用于基本类型,引用类型数据
格式
目标数据类型 变量名 = (目标数据类型)(结果;);
实际中,强制转换尽量避免,可能会造成数据进度损失
4.JAVA变量常见的面试题
5.运算符
5.1 算术运算符
基本算数运算符
扩展算术运算符 ++ --
5.1.1基本的算术运算符
算术运算符 +,-,*,/,%(模)
/:默认取整
*1.0:提升为double类型,精确到小数
%:求余数
比较运算符(关系运算符) < ,>, <=, >=, !=(不等于), ==(比较是否相等)
x>=3 &(逻辑并列)x<=5
比较运算符的表达式无论简单还是复杂---最终的结果都是boolern
5.1.2 扩展的算术运算符
扩展的算术运算符 : ++;--
场景1:单独使用
如果++或者--在数据的前面 eg:++a(递增);--b(递减);
结论:不论++还是--在数据的前面还是后面,都是对当前的数据本身进行自增1或者自减1
场景2:参与运算使用
++或者--如果在数据的前面 ++a :先自增或者自减,然后再参与运算
++或者--如果在数据的后面 --a :先参与运算,再自增或者自减
5.2 赋值运算符
赋值运算符 int a = 10 //将10赋值给Int类型的变量a
1.基本赋值运算符:= 将等号右边的数据赋值给左边的变量
x = x + 200,但是此时要注意数据类型(200是int类型,注意是否存在类型转换)
2.扩展赋值运算符:+=;-=;==
x+=200 表示价格等号右边的数据和等号左边的变量x相加然后赋值给x
特点:隐藏了强制类型转换 s+=1类似于s=(目标数据类型)(s+1)
5.3 逻辑运算符
基本逻辑运算符(重点)和扩展的逻辑运算符
5.3.1 基本的逻辑运算符
基本的逻辑运算符(重点运算符):
逻辑单与&: 并列关系 (有false则false)
逻辑单或|: 或的关系--满足一个条件即可 (有ture则ture)
逻辑异或^: (相同则为false,不同则为ture )(同错异正)
逻辑非 !: 偶数个非是他本身 (非ture则false,非false则ture)
5.3.2 扩展的逻辑运算符
扩展的逻辑运算符(逻辑双与,逻辑双或)
逻辑单与 和 逻辑双与 的区别:共同点--都是并列关系
不同点--逻辑单与--不论左边的表达式是false还是ture,都会把右边的表达式执行
逻辑双与--具有短路效果,左边的表达式的=是false,则右边的表达式就不执行了
逻辑双||:左边的表达式如果是ture,则右边的就不执行了
5.4 位运算符
基本的位运算符和位移符号
5.4.1 基本的位运算符(取值)
基本的位运算符号:
位与:& 有 0 则 0
位或:| 有 1 则 1
位异或:^ 相同则为0 ,不同则为1
反码: ~ 全部取反
5.4.2 位移符号
位运算之位移符号:
左移: << 将数据的补码进行左移动,右边不够的补0;将最高符号位丢弃掉
右移: >> 将数据的补码进行右移动,如果最高符号位是1,则左边补1,如果最高符号位是0,则左边补0
无符号右移: >>> 无论最高符号位是1还是0,左边始终补0
5.5 三元(三目)运算符
三元运算符的格式: (表达式)?1)执行ture的结果:2)执行false的结果;
例如int a = 3;
int b = 4;
int max = (a>b)?b:a
执行流程: 判断表达式是否成立,如果成立则执行ture
不成立则false
6.键盘录入数据–让程序变得更灵活
在写程序的过程中,让程序变得更加灵活,使用Scanner类;由jdk提供这个类------一个简单的文本扫描器
操作步骤
1)导包: improt java.util.Scanne; 格式必须在class上边
2)创建一个文本扫描器(键盘录入对象): Scanner 自己起的对象名 = new Scanner(System.in);
3)友情提示录入第一个数据
System.out.println("请您输入第一个值");
int 接受的变量名 = 对象名.nextInt();
4)友情提示输入第二个数据 System.out,println("请您输入第二个数据");
int 接受的第二个变量名 = 对象名.nextInt();
5)输出接受的变量名关系式 SyStem.out.println(关系式);
1)导包 import java.util.Scanner ;
class ScannerDemo{
public static void main(String[] args){ //2)创建一个文本扫描器对象 (键盘录入对象)
//Scanner 对象名(自己起名字) = new Scanner(System.in) ; //固定格式
Scanner sc = new Scanner(System.in) ;
System.out.println("请您输入一个数据") ; //3)友情提示并录入int类型数据
//int 接收的变量名 = 对象名.nextInt() ;
int a = sc.nextInt() ; //固定格式
//4)输出下a,看效果
System.out.println("a的值是:"+a) ;