java基础第二天

###02.01_
* A:什么是常量
* 在程序执行的过程中其值不可以发生改变
* B:Java中常量的分类
* 字面值常量
* 自定义常量(面向对象部分讲)
* C:字面值常量的分类
* 字符串常量 用双引号括起来的内容
* 整数常量 所有整数
* 小数常量 所有小数
* 字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号
* 布尔常量 较为特殊,只有true和false
* 空常量     null(数组部分讲解)

* D:案例演示
* 用输出语句输出各种常量。null不演示
###02.02_
* A:什么是进制
* 进制:就是进位制,是人们规定的一种进位方法。 对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。
* 例如一周有七天,七进制,一年有十二个月,十二进制
* B:二进制的由来
* 其实二进制来源与中国,请看史料记载
* 18世纪德国数理哲学大师莱布尼兹从他的传教士朋友鲍威特寄给他的拉丁文译本《易经》中,读到了八卦的组成结构,惊奇地发现其基本素数(0)(1),即《易经》的阴爻yao- -和__阳爻,其进位制就是二进制,并认为这是世界上数学进制中最先进的。20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,其运算模式正是二进制。它不但证明了莱布尼兹的原理是正确的,同时也证明了《易经》数理学是很了不起的。
* C:八进制的由来
* 任何数据在计算机中都是以二进制的形式存在的。二进制早期由电信号开关演变而来。一个整数在内存中一样也是二进制的,但是使用一大串的1或者0组成的数值进行使用很麻烦。
* 所以就想把一大串缩短点,将二进制中的三位用一位表示。这三位可以取到的最大值就是7.超过7就进位了,这就是八进制。
* D:十六进制的由来
* 但是对于过长的二进制变成八进制还是较长,所以出现的用4个二进制位表示一位的情况,四个二进制位最大是15,这就是十六进制。
* E:不同进制表现同一个数据的形式特点
* 进制越大,表现形式越短
###02.03_
* A:二进制的数据表现形式
* 由0,1组成。以0b(b可以大写也可以小写)开头(JDK1.7版本可以表示二进制了)
* B:八进制的数据表现形式
* 由0,1,…7组成。以0开头
* C:十进制的数据表现形式
* 由0,1,…9组成。整数默认是十进制的
* D:十六进制的数据表现形式
* 由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头
* E:案例演示
* 输出不同进制表现100的数据。
* 0b100
* 0100
* 100
* 0x100
###02.04_
* A:任意进制到十进制的转换原理
* 系数:就是每一位上的数据。
* 基数:X进制,基数就是X。
* 权:在右边,从0开始编号,对应位上的编号即为该位的权。
* 结果:把系数*基数的权次幂相加即可。
* B:画图练习
* 二进制--十进制
* 八进制--十进制
* 十六进制--十进制

###02.05_
* A:十进制到任意进制的转换原理
* 除积倒取余
* B:画图练习
* 十进制--二进制
* 十进制--八进制
* 十进制--十六进制
###02.06_
* A:8421码及特点
* 8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种。在这种编码方式中每一位二值代码的1都是代表一个固定数值,把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码。
* B:通过8421码的方式进行二进制和十进制的相互转换
* C:二进制到八进制的简易方式
* D:二进制到十六进制的简易方式

###02.07_
* A:为什么要讲解有符号数据表示法
* 后面学习数据类型的时候,要学习强制类型转换,如果不知道有原反补会看不懂结果
* B:有符号数据表示法的几种方式
* 原码
* 就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
* 通过一个字节,也就是8个二进制位表示+7和-7
* 0(符号位) 0000111
* 1(符号位) 0000111
* 反码
* 正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
* 补码
* 正数的补码与其原码相同;负数的补码是在其反码的末位加1。

###02.08_
* A:已知原码求补码
* 0b10110100
* B:已知补码求原码
* 0b11101110
###02.09_
* A:什么是变量
* 在程序执行的过程中,在某个范围内其值可以发生改变的量
* B:变量的定义格式
* 数据类型 变量名 = 变量值;
* C:为什么要定义变量
* 用来不断的存放同一类型的常量,并可以重复使用

###02.10_
* A:为什么有数据类型
* Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间
* B:Java中数据类型的分类
* 基本数据类型
* 引用数据类型
* 面向对象部分讲解
* C:基本数据类型分类(4类8种)
* 整数型
* byte,short,int,long
* 浮点型
* float,double
* 字符型
* char
* 布尔型
* boolean

###02.11_
* A:案例演示
* 定义不同基本数据类型的变量,并输出
* 赋值时候注意float类型,long类型

###02.12_
* A:案例演示
* a:作用域问题
* 同一个区域不能使用相同的变量名
* b:初始化值问题
* 局部变量在使用之前必须赋值
* c:一条语句可以定义几个变量
* int a,b,c...;

###02.13_
* A:案例演示
* a:int + int
* b:byte + int 的结果分别用byte和int类型接收,看效果
* B:Java中的默认转换规则
* C:画图解释byte+int类型的问题

###02.14_
* A:强制转换问题
* int a = 10;
* byte b = 20;
* b = a + b;
* B:强制转换的格式
* b = (byte)(a + b);
* C:强制转换的注意事项
* 如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同

###02.15_
* A:案例演示
* 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
* byte b1 = 3;
* byte b2 = 4;
* byte b3 = b1 + b2;
* 从两方面去回答这个题
* b1和b2是两个变量,变量里面存储的值都是变化的,所以在程序运行中JVM是无法判断里面具体的值
* byte类型的变量在进行运算的时候,会自动类型提升为int类型
* byte b4 = 3 + 4;
* 3和4都是常量,java有常量优化机制,就是在编译的的时候直接把3和4的结果赋值给b4了
###02.16_
* 进行混合运算的时候,byte,short,char不会相互转换,都会自动类型提升为int类型,其他类型进行混合运算的是小的数据类型提升为大的
* byte,short,char -- int -- long -- float -- double
* long: 8个字节
* float:4个字节
* IEEE754
* 4个字节是32个二进制位
* 1位是符号位
* 8位是指数位
* 00000000   11111111
* 0到255
* 1到254
* -126到127
* 23位是尾数位
* 每个指数位减去127
* A:它们底层的存储结构不同。
* B:float表示的数据范围比long的范围要大
* long:2^63-1
* float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1

###02.17_
* A:案例演示
* System.out.println('a');
* System.out.println('a'+1);
* 通过看结果知道'a'的值是多少,由此引出ASCII码表
* B:ASCII码表的概述
* 记住三个值:
* '0'   48
* 'A'   65
* 'a'   97
* C:案例演示
* System.out.println("hello"+'a'+1);
* System.out.println('a'+1+"hello");
* D:+在有字符串参与中被称为字符串连接符
* System.out.println("5+5="+5+5);
* System.out.println(5+5+"=5+5");
###02.18_
* A:char c = 97;
* B:Java语言中的字符char可以存储一个中文汉字吗?为什么呢?
* 可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。
* 所以,Java中的字符可以存储一个中文汉字
###02.19_
* A:什么是运算符
* B:运算符的分类
* C:算数运算符有哪些
* D:案例演示
* 算数运算符的基本用法
* 注意事项:
* a:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
* b:/获取的是除法操作的商,%获取的是除法操作的余数

###02.20_
* A:++,--运算符的作用
* 自加(++)自减(--)运算
* ++:自加。对原有的数据进行+1
* --:自减。对原有的数据进行-1
* B:案例演示
* a:单独使用:
* 放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
* b:参与运算使用:
* 放在操作数的前面,先自增或者自减,然后再参与运算。
* 放在操作数的后面,先参与运算,再自增或者自减。

###02.21_????
* A:案例演示
* 请分别计算出a,b,c的值?
*
int a = 10;
int b = 10;
int c = 10;
a = b++; //a = 10 b = 11
c = --a; //c = 9 a = 9
b = ++a; //b = 10 a = 10
a = c--; //a = 9 c = 8
* B:案例演示
* 请分别计算出x,y的值?
int x = 4;
int y = (x++)+(++x)+(x*10);

###02.22_
* A:赋值运算符有哪些
* B:案例演示
* 赋值运算符的基本用法
* 注意事项:
* a:基本的赋值运算符:=
* 把=右边的数据赋值给左边。
* b:扩展的赋值运算符:+=,-=,*=,/=,%=
* += 把左边和右边做加法,然后赋值给左边。
###02.23_
* A:案例演示
* 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
* short s=1;s = s+1;
* short s=1;s+=1;

###02.24_
* A:关系运算符有哪些
* B:案例演示
* 关系运算符的基本用法
* 注意事项:
* 无论你的操作是简单还是复杂,结果是boolean类型。
* "=="不能写成"="。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值