Java基础语法
1.注释
java文件通过javac编译生成class文件中并不会存在注释内容
工程下的out文件中可以找到编译后的class文件,可以拖到idea中反编译显示;
//普通注释 /* 多行注释 */ /** * *文档注释:内容可以自动提取到程序说明书 */
2.字面量
3.变量
3.1什么是变量?
-
变量是用来存储一个数据的内存区域,里面存储数据可变
-
变量定义格式:
-
数据类型 变量名称 = 初始值;
-
3.2变量使用注意
-
//1.变量声明后再用
-
//2.变量声明后不能存储其他类型数据
-
//3.变量有效范围从定义开始到”}“截止;同一范围不能有同名变量
-
//4.变量定义时可以没有初始化值,使用时必须赋值
4.变量在计算机中底层原理
4.1二进制
逢二进一
十进制转二进制计算方法:除二取余,从下往上倒取值;
4.2计算机中数据最小单位
-
计算机最小组成单元
-
使用8个二进制位为一组,存数据,为一个字节(byte,简称B)
-
-
每个二进制位为一位(bit,简称b)
-
1byte=8bit,1B=8b
-
4.3字符在计算机中如何存储
ASCII编码表:美国信息交换标准码
//a=97
char a = 'a';
//a+1=98
System.out.println(a+1);
字符做运算,会用编码参加,返回数字
5.进制转换
5.1二进制和十进制互相转换
5.2八进制和十六进制
-
八进制每一位扩展成三位二进制
-
93 135(八进制) 001-011-101(二进制)
-
-
十六进制,0-9 ABCDEF
-
97 61(十六进制) 0110-0001(二进制)
-
93 5D(十六) 0101-1101(二)
-
-
程序中支持书写二、八、十六进制数据
-
分别需要以0B或者0b、0、0X或者0x开头
int z = 0b01011101; System.out.println(z); int x = 0135; System.out.println(x); int c = 0x5D; System.out.println(c); ============= 93
-
5.3数据大小单位换算
大单位 | 小单位 |
---|---|
1B | 8b |
1KB | 1024B |
1MB | 1024KB |
1GB | 1024MB |
1TB | 1024GB |
6.数据类型
6.1数据类型分类
-
引用数据类型(除基本形外)
-
基本数据类型:四大类8种
-
Double采用特殊计数法,范围更大
-
随便写一个大整数需要在后面用L或l标识为Long,因为整数默认是int型
-
int p= 154646546; //Long p1 = 46546545456465; Long p2 = 136458416315635631L;
-
-
小数默认是双精度Double型,用单精度Float时,需要数字后标记F或者f
-
double q = 45.96; //float f = 45.8; float ff = 45.8F;
-
-
6.2理解float和double、单精度和双精度
1.内存占用 一个float数值占用4个字节、32位;1位4个0000 一个double数值占用8个字节、64位
因此,能用float尽量不用double。 2.范围 float -2^128 ~ 2^127 double -2^1024 ~ 2^1023
3.为什么浮点数会有精确度问题? 浮点数是用二进制数据的科学计数法表示的,因此不能精确的表示。就像十进制1/3 0.3333…一样
4.float 32位,double64位是怎么组成的? float 1位符号位 8位指数位 23位尾数 double 1位符号位 8位指数位 52位尾数
5.有效位数 float 6位。小数点后6位都是准确的,而第7位就不一定 double 15位。
6.关于单精度和双精度的命名? 为什么叫单精度,为什么叫双精度 1)是因为精确度位数的区别而命名的吗?
–不是,至少没有资料表明,它是以这个来命名的。 2)是因为二进制科学计数法存储的尾数(float尾数23,double尾数52)的单双来命名吗?–好像也不是。 所以,只要记住单精度是float,双精度是double就好了。
7.关键字和标识符
7.1关键字
不能用来作为类名或者变量名称
7.2标识符
给类,方法,变量起名的规矩
-
标识符要求
-
基本要求:由数字,字母,下划线,$组成
-
强制要求:不能以数字开头,不能是关键字,区分大小写
-
-
命名规范
-
驼峰式:
-
变量首字母小写
-
类名称,首字母大写
-
-