day01复习
day01重点
jdk的下载安装
掌握常用的dos的常用命令,在dos窗口编译运行java程序
HelloWorld案例
配置环境变量的第二种方式
Java中的标识符
起名字
由英文大小写,0~9数字,_和$,并且不能以数字开头
格式化良好的重要性!Java中命名要做到见文知意
注释
思路清晰
day02
常量,进制,变量,数据类型,类型转换,运算符
常量;constant
定义:数值不变的量
表示类型
字面值常量
整数常量:123,-45
实数常量:12.345
字符常量:用''括起来的一个数据
'A','a','1'
字符串常量:用""扩起来的
”helllo“
布尔常量:true和false
空常量
自定义常量
进制:
Java语言支持3种进制表示形式(jdk7之后增加支持二进制)
何为进制:逢几进一
二进制:
八进制
十进制
十六进制
计算机中的数据传输单位
bit(音译比特)这是计算机数据传输的最小单位,但是一般不使用
1byte(字节)= 8bit这是计算机数据传输的基本单位,主要以字节为单位解释信息
K,M,G,T,P等之间是1024
进制转换
其他进制转十进制:
十进制---->十进制
12345------>12345
12345=10000+2000+300+40+5=1*10^4+2*10^3+3*10^2+4*10^1+5*10^0
=12345
总结:
系数:每一位上的数据
基数:x进制基数就是x
权:把数据从最右边开始0开始编号
结果:
把各位系数*基数^权次幂相加
测试:二进制数据
101101 =
注意:
二进制:0,1,jdk7之后新特性:以0b开头
八进制:0~7,以0开头
十进制:0~9,默认
十六进制:0~9,以0x开头
十进制转其他进制:短除法
十进制----->十进制
12345------>12345
10|12345 余数
10|1234 5
10|123 4
10|12 3
10|1 2
10|0 1
结论:除基取余,直到商为0,余数反转
快速转换:8421码
二进制数据:
1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1
其他进制相互转换:
基本做法:以十进制为桥梁
简单做法:
二转八:三位一组转十进制数,再拼接
二转十六:四位一组转十进制数,再拼接
有符号数据的表示法:原码,反码,补码
数据有正负之分的
计算机中的所有数据都以补码形式存在和处理
正数:原码,反码,补码都是一样的
负数: 原码1表示符号位
反码是原码除符号位之外的各位取反得到
补码是反码+1
注意:
运算的时候一定要记得先去通过原码得到补码
变量:定义时尽量小(整型int浮点double)
概念:
变量是内存中的一个存储区域
该区域要有自己的名字和类型
在一定范围内变化
格式:
格式1:数据类型 变量名 = 初始化值;
格式2:数据类型 变量名;
变量名 = 初始化值;
注意:
变量必须初始化
只定义变量,不定义初始化值的时候会报错
赋值的时候不要超出范围
数据类型:
Java是强类型语言,对于每一种数据都定义了明确的具体数据类型,
各类型分配空间不一样
数据类型:
基本数据类型:
数值型:4类8种(区别是表示的数据范围不一样)
整数型(默认int)
byte(1字节) -2^7 ~ 2^7-1
short(2字节) -2^15 ~ 2^15-1
int(4字节) -2^31 ~ 2^31-1
long(8字节)
想定义byte或者short类型,只要数据在相应范围即可
如果是long类型,必须加后缀L(因为默认是int,一旦范围超粗int就会报错)
浮点数:(默认double)
float(4字节)
double(8字节)
表示方法:
十进制表示:3.14,314.0
科学计数法:3.14E2相当于3.14*10^2
如果定义float类型,必须加后缀F
字符型:
char(2字节) 举例:'a','A','中'
布尔型:
boolean:就两个值:true和false
注意:建议用小类型,但是要足够表示才可以
引用数据类型
类型转换
1.boolean类型不能与其他类型进行转换
2.数据从小到大的转换:隐式转换
byte short char--int
int--long
long--float
float--double
3.数据从大到小的转换:强制类型转换
在编译期,jvm只看语法
转换注意:数据必须在小类型可以表示的范围内
转换格式:(想转成的数据类型)变量或者值;
原理解析:
面试题
byte b1 = 3;
byte b2 = 4;
byte b3 = b2 + b1;
byte b4 = 3 + 4;//跟直接byte b4 = 7;没有区别
byte b3 = b2 + b1;报错
b1+b2参与运算时会提升为int,其结果为int,int数值赋给byte会报错
先类型提升再判断范围
如果参与运算的是常量,编译器会先计算值,再判断是否在其表示的范围内,如是则不报错
在编译期,就进行了运算
ASCII码表:char--->int
记住三个字符的值:ASCII码表
'a'--97
'A'--65
'0'--48
运算符:
算数运算符
+ - * /
注意事项:
除法:整数相除结果是整数,如果想要小数,那么参与运算的必须有一个是浮点类型
除数不能为0,如果为0会报异常(运行时)
java.lang.ArithmeticException: / by zero
%模运算,左边除以右边取余数
左边大于右边 结果是余数
左边小于右边 结果是左边
左右一样 结果是0
另外符号跟左边一致
自增自减++,--
单独使用,++或者--在前或后效果一致(给变量+1或者-1)
参与运算:前后不一致
++在前:先加后用
++在后:先用后加
//int y = 3;
//int z = y++;//把y的值赋给z,然后y自增
//int z = ++y;//y先自增,再把值赋给z
加号+还可作为字符串的连接符(简化书写)
String s = "hello"+"world"+"ni"+12.5+34;//helloworldni12.534
String s = 23+12.5+"hello"+"world"+"ni"//35.5jhelloworld
赋值运算符:= += -= /= *= %=
赋值运算符
把=右边的数值赋值给左边的变量
举例:
int a = 10;
念法:把10赋值给右边的int类型的变量a
多种赋值
a += 20;//左右相加再赋值给左边
//效果等价于a = a + 20;
注意:
虽然s+=20;和效果等价,但还是有区别
+=其实隐含了强制类型转换功能
赋值运算符的左边必须是一个变量
面试题
short s = 5;
//s = s + 5;//报错
s += 2;//等价于s = (short)(s + 2)
System.out.println("s="+s);
比较运算符:== != < > <= >=
注意:
符号都是英文格式
>=不要写成≥
比较运算结果肯定是boolean类型
分隔符
分号;:表示语句结束,可以在一行上写多条语句,但是一行上只写一条语句
空格 :关键字前后必须有空格;运算符的时候,运算符两端可有可无,但是建议有
注意:千万不把用相等于号的地方,写成“=”
|