基本语法
注释:在Java代码中用于解释和说明的文字
格式
//注释内容--单行注释(可以嵌套单行注释)
/*注释内容--多行注释*/(可以嵌套单行注释不能嵌套多行注释)
文档注释
/***/----文档注释( 通过javadoc命令把注释内容生成一个文档)
常量
在程序执行过程中值不发生改变的量
分类
字面值常量
整数常量----1, 123 567
小数常量----3.4
字符常量----‘a’ ‘5’
字符串常量----:“wwwwww”
布尔常量----true false
空常量----null
自定义常量
整数不同表现形式
二进制
由0和1组成 0b1010 以0b开头的数据是二进制的数据
八进制
由0~7组成 0156 以0开头的数据
十进制
由0~9组成 默认为十进制
十六进制
数字0到9和字母A到F(或a~f)表示(不区分大小写) 以0x开头
进制–进位的一种方式
数据都是通过底层计算机硬件状态来表示的
通过上述的8个状态来表示数据就能表示更多的数据
为了更加方便和快捷去表示数据状态,通过0和1来表示状态,底层是由0和1来组成的一堆数字----二进制数据
表现进制的四种形式
/*
表现进制的4种形式
*/
class JavaDemo{
public static void main(String[] args) {
//操作二进制数据
System.out.println(0b100);
//操作八进制数据
System.out.println(0100);
//操作十进制数据
System.out.println(100);
//操作十六进制数据
System.out.println(0x100);
}
}
其他进制转十进制
基数–x进制,基数就是x
位-每一位上的数
权–从右往左,由开始进行编号
规律(其他位转十进制)
位乘以基数为底的权次幂之和
十进制转其他进制
规律(十进制转其他进制)
除基取余,直到商为0,余数取反
任意进制之间的转换问题
1、先把x进制转换成10进制,再把10进制转换成y进制
2、从右往左每三位一组,如果位数不够左边补0,一次计算出每组的是十进制数
随着进制增大,数据表现形式越简单
有符号的数表示
数据转成底层的二进制数据补码形式来进行操作和储存
??????????????????????????????
源码
正数的符号位为0,附属的符号位为1
反码
正数的反码和源码保持一致,负数的反码在源码的基础上符号位不变,其他位按位取反
补码
正数的补码和反码以及源码都是一样的,负数的补码实在反码的基础上末尾加1
绝大部分小数转成二进制都是无限位数
变量
在程序执行过程中可以改变的量
可以储存单个数据的容器
控制变量变化的范围
数据类型
区分变量类型
变量名
保证变量操作之前给值
初始化
变量的定义格式
数据类型 变量名=初始化;
数据类型
基本数据类型(四类八种)
引用数据类型
数组
类
接口
编码----把文字装成底层数字的过程
转换规则----码表
ASCii(阿斯科码表 o~127 占一个字节)-----ISO8859-1(西欧码表 0~255 占1个字节)----BIG5(繁体中文)----GB2312(简体中文 占两个字节)----GBK(国标码 占2个字符)----Unicode编码体系(UTF-8 占三字符),UTF-16(占两个字符)等等)
所有的完整码表默认兼容西欧码表
转义字符
‘\t’:字表符空格
‘\r’:回车
‘\n’:换行
变量(续1)
/*
定义变量
注意:
1、当给定整数值时,默认这个数的类型就是int类型
2、当给定一个小数时,默认这个小数就是double类型
3、变量定义可以分为声明和初始化两个过程
4、变量在哪定义就在哪里使用
*/
class JavaDemo{
public static void main(String[] args) {
//定义整型变量
int i=1;
System.out.println(i);
//定义长整型变量
long l=1235987987654L; //末尾加上l或者L 长整型数
System.out.println(l);
//定义单精度数据
float f=0.12F; //末尾加上F或者f 单精度小数
System.out.println(f);
//定义双精度数据
double d=2.12;
System.out.println(d);
//定义字节类型数据
//当参与的数据都是常量是,编译会进行优化知己额计算结果值赋给变量
byte b=128-1;
System.out.println(b);
//声明
short s;
//初始化
s = 12;
System.out.println(s);
}
}
变量之间相互操作——类型提升
/*
变量之间相互操作
类型转换
1、默认类型提升(从小到大)
A.byte、short、char类型无论做任何操作都会类型提升为int类型
B.整型类型提升为浮点型可能会出现精度丢失
C.byte-short char-int-long-float-double
2、强制类型转换
目标类型 名称 = (目标类型)操作数据
*/
class DataType{
public static void main(String[] args) {
//定义变量
byte a = 3;
int b = 4;
byte c = a + b;
System.out.println(a+b);
System.out.println(c);
//
byte b = 3;
short ls = b;
//检测给定的字符值,会把字符转成对应的编码值,复制给short变量,如果编码值大于short变量 的范围就会报错
short s = '达';
//会把编码值转成对应的字符赋给char变量
char c = 48;//'0'的编码值为48
System.out.println(s);
System.out.println(c);
//没有类型提升
//除了char其他的数值类型都有负数范围,不能保证负数给值,所以就是认为赋予任何值都会报错
short s = 10;
char c = s;
//有类型提升
char c = 'a';
int i = c;
//有类型提升
int i = 1;
long l = i;
//有类型提升
long l = 13254654L;
float f = l;
System.out.println(f);
//有类型提升
float f = 0.12F;
double d = f;
//
byte b1 = 4;
byte b2 = 6;
//强转为byte类型
byte b3 = (byte)(b1 + b2);
System.out.println(b3);
//浮点型数据强转成整型会取整
float f = 2.221856F;
int i = (int)f;
System.out.println(i);
//
byte b = (byte)128;
//-128
System.out.println(b);
}
}