复习:
1、Java跨平台:基于JVM。针对每一个操作系统都有不同的JVM与之对应,jvm在这个过程中屏蔽了操作系统之间的差异性。
2、Java技术结构:JAVASE、JAVAEE、JAVAME
3、JDK、JRE、JVM:JRE包含了JVM+核心类库(Java程序运行所需要的基本的支持),为程序运行提供环境。JDK包含了 JRE+开发工具。
4、入门程序:Java程序一定写到JAVA文件(.java);程序运行需要入口---主函数;类编译完成之后会产生一个class文件。
5、javac -d 包的存放位置 要编译的Java文件
java 包名.类名
java.cn.tedu.de.Demo
6、环境变量:JAVA_HOME=JDK安装路径,Path=%JAVA_HOME%\bin
7、关键字:有特殊含义的单词 ---53个关键字 ---2个保留字 const/goto ----所有的关键字都小写
8、标识符:程序自定义的名称。由字母、数字、下划线、$组成,支持中文命名。不能以数字开头,不能使用关键字,区分大 小写,见名知意。
驼峰命名法
类名/接口名:如果由多个单词组成,那么第一个单词的首字母大写,其余单词首字母大写:HelloWorld
变量名/方法名:如果由多个单词组成,那么第一个单词的首字母小写,其余单词首字母大写:helloWorld
包名:如果由多个单词组成,每个单词用.隔开,所有字母都小写cn.tedu.de
常量名:如果有多个单词组成,那么每个单词由_隔开,所有字母都大写HELLO_WORLD
注释
用于解释说明的文字
//解释说明 单行注释
/*
* 多行注释
*/
/**注释文字*/ 文档注释 --- 里面的注释内容可以利用javadoc命令提取出来形成文档(就是程序的说明书)
字面量
在计算机中不可改变的量
整数常量:所有的整数
小数常量:所有的小数
字符常量:将一个字母、数字或者是符号用 '' 标识起来 'a' '+' '5' ' '
字符串常量:将一个或多个字符用 "" 标识起来 "abc" "+" ""
布尔常量:true false ---- 用于表示逻辑值
空常量:null
进制
计数方式
二进制:0-1 , 满2进1 1+1=10
在程序中以0b/0B开头标记一个二进制数字 0b1001
八进制:0-7, 满8进1 7+1=10 要求以0开头表示一个八进制 045 052 032
十进制:0-9, 满10进1 9+1=10
十六进制:0-9,a-f ,满16进1 以0x开头表示一个十六进制 0x9a6b
进制的转换
十进制转换为二进制:将一个十进制数不断地处以2,最后将余数倒序排列
二进制转换为十进制:从最低位开始,乘以2的当前位次次幂(从0开始),再求和
十进制转换为其他进制:十进制数向哪个进制转化就除以哪个数再将余数倒排。
其他进制转换为十进制:从这个进制的数从最低位开始,然后按位乘以进制的位次次幂(从0开始)再求和
二进制转化为八进制:从二进制数最低位开始每截取3位形成一个八进制数,前面不足补0,再顺序排列即可
八进制转化为二进制:从八进制最低位开始每一位变为三个二进制数,前面不足补0,再顺序排列即可
十六进制和二进制之间的转换类比二进制和八进制相互转换
扩展:十进制小数转二进制
绝大部分小数转二进制都是无限的(小数部分是1/2^n,则是不循环的) ----所以计算机在计算小数时总是会产生舍入误差
变量
1、数据类型 变量名=值;
2、数据类型 变量名;
变量名=值;
在程序中用于存储数据的容器。
变量不能重名
变量应先定义再调用
变量必须先给值再使用
变量在那儿定义就在那儿使用
扩展:计算机存储单位
每个二进制数字称之为1位 ---bit(简写为b)
字节 byte(简写为B) 1B=8b
千字节 -kilobyte (简写为KB) 1KB=210 B=1024B
兆字节 -MB->GB->TB->PB->EB
Mb兆位
8Mb=1MB
在通信领域是按照千进制计算
基本数据类型
数值型
整数型
byte - 字节型 -1个字节-8位二进制 (-27~27-1)(-128~127)
short- 短整型 - 2个字节 -2^15~2^15-1 -32768~32767
int - 整型 - 4个字节 - -2^31~2^31-1 (整数默认为int类型) 当表示一个较大的整数时,可以使用 _ 进行分位(JDK1.7及以上)
long - 8个字节 - -2^63~2^63-1 ->-10^18~10^18 需要以L/l 结尾
浮点型
float - 单精度 - 4个字节 -> -10^38 ~10^38 - 需要以f/F作为结尾
double - 双精度 - 8个字节 -> -10^308~10^308 - java中小数默认为double类型 小数结尾可加D/d作为标记
字符型
char - 2个字节 ->0~65535 使用UTF-16编码
转义字符
\t -制表符 table
\r -回车 return
\n-换行 next
\\ -反斜杠 \' -单引号 \" --双引号
扩展:将字符换为数字的过程称为编码 --- 编码表
ISO-8859-1 西欧码表 - 1个字节表示1个字符
gb2312 - 国标码 - gbk - 2个字节表示1个字符 -收录了常见的简体汉字以及一部分常见的繁体汉字
Unicode编码体系 - 收录了世界上常见语言的基本字符
-规定了一系列的编码规则 utf-8 ->3个字节表示一个字符 utf-16 -> 2个字节表示一个字符
注意:规定无论哪张码表都必须兼容西欧码表
布尔型 - boolean - -true/false 用于表示逻辑值
数据类型的转换
自动类型转换/隐式转换
byte b=125;
int i=b;
规律一:小的类型自动转换为大的类型
int i=300
double d=i
float f=-25 //-25是整数
规律二:整数类型可以自动转换为浮点型,可能会产生舍入误差
char a='s'
int i=a
规律三:字符可以自动提升为整数
强制类型转换/显示转换
int i=35
byte b=(byte) i
10000111 补码
10000110 反码
11111001 原码
64+32+16+8+1=121 -> -121
规律一:当把大的类型转换为小的类型时,因为补码换算的问题,所以可能会产生一些想不到的数据。
规律二:小数在转化为整数时会舍弃小数位
扩展:数据的原反补三码
如果最高位是1,则表示一个负数
计算机中存储的是数据的补码,计算也是在补码的基础上进行
如果是正数,那么原反补三码相同
如果是负数,那么反码实在原码的基础上,最高位不变,其余位取反;补码是在反码的基础上+1
直接计算出来的二进制数字是数据的原码
-18
1001 0010 原码
1110 1101 反码
1110 1110 补码
注意:用-0表示当前类型的最小值
运算符
算术运算符
+ - * / % ++ --
1、byte、short、char在运算时会自动提升为int
2、整型在运算时保持类型不变
3、小类型和大类型运算结果一定是大类型
4、任意整数/0 -ArithmeticException -算术异常
任意非0数字/0.0 任意非0小数/0 - infinity - 无穷大。
0/0.0 0.0/0.0 0.0/0 - NaN -Not a Number - 非数字
赋值运算符
关系运算符
逻辑运算符
位运算符
三元运算符
未完待续。。。。。。