Java基础语法- 进制转换、计算机存储单元、关键字、标识符、常量与变量、数据类型的分类与转换
1. 进制转换
1.1 十进制转二进制
除2取余法,从下到上取数
1.2 二进制转十进制
1100=0×2^0^+0×2^1^+1×2^2^+1×2^3^ 电脑计算器HEX16进制,DEC10进制,OCT8进制,BIN2进制
2. 计算机存储单元
位(bit):一个数字0或者1,代表一位
字节(Byte):每逢8位一个字节,数据存储的最小单元。
(1 Byte = 8 bit 1 KB = 1024 Byte)
8 bit = 1 B
1024 B =1 KB
1024 KB =1 MB
1024 MB =1 GB
1024 GB = 1 TB
3. DOS命令
命令 | 操作符号 |
---|---|
盘符切换命令 | 盘符名: |
查看当前文件夹 dir | 即directory文件夹 |
进入文件夹命令 | cd 文件夹名 |
退出文件夹命令 | cd… |
退出到磁盘根目录 | cd\ |
清屏 | cls 即clear screen |
退出 | exit |
4. 单行及多行注释
//单行注释 /*多行注释 */ public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello,World!"); } }
5. 关键字
关键字:是指在程序中,Java已经定义好的单词,具有特殊含义。 HelloWorld案例中,出现的关键字有 public 、 class 、 static 、 void 等,这些单词已经被 Java定义好,全部都是小写字母,notepad++中颜色特殊。 关键字比较多,不能死记硬背,学到哪里记到哪里即可。
6. 标识符
- 标识符:是指在程序中,我们自己定义内容。比如类的名字、方法的名字和变量的名字等等,都是标识符。 HelloWorld案例中,出现的标识符有类名字 HelloWorld
- 命名规则: 硬性要求
标识符可以包含 英文字母26个(区分大小写) 、 0-9数字 、 $(美元符号) 和 _(下划线) 。
标识符不能以数字开头。
标识符不能是关键字。 - 命名规范: 软性建议
类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。
变量名规范:全部小写。
7.常量
类型 | 含义 | 数据举例 |
---|---|---|
整数常量 | 所有的整数 | 0,1, 567, -9 |
小数常量 | 所有的小数 | 0.0, -0.1, 2.55 |
字符常量 | 单引号引起来,只能写一个字符,必须有内容 | ‘a’ , ’ ', ‘好’ |
字符串常量 | 双引号引起来,可以写多个字符,也可以不写 | “A” ,“Hello” ,“你好” ,"" |
布尔常量 | 只有两个值(流程控制中讲解) | true , false |
空常量 | 只有一个值(引用数据类型中讲解) | null |
8.数据类型分类
Java的数据类型分为两大类:
- 基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔 。
- 引用数据类型:包括 类 、 数组 、 接口 。
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
字节型 | byte | 1个字节 | -128~127 |
短整型 | short | 2个字节 | -32768~32767 |
整型 | int(默认) | 4个字节 | -231~231-1 (21亿左右) |
长整型 | long | 8个字节 | -263~263-1 (9*1018) |
单精度浮点数 | float | 4个字节 | 1.4013E-45~3.4028E+38 |
双精度浮点数 | double(默认) | 8个字节 | 4.9E-324~1.7977E+308 |
字符型 | char | 2个字节 | 0-65535 |
布尔类型 | boolean | 1个字节 | true,false |
注意事项:
1.字符串不是基本类型,而是引用类型。
2.浮点型可能只是一个近似值,并非精确的值。
3.数据范围与字节数不一定相关,例如float数据范围比long更加广泛,但是float是4字节,long是8字节。
4.浮点数当中默认类型是double。如果一定要使用float类型,需要加上一个后缀F。
如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L。推荐使用大写字母后缀。
9.变量的定义与使用
变量定义的格式包括三个要素: 数据类型 、 变量名 、 数据值 。
格式:数据类型 变量名 = 数据值;
public class Variable { public static void main(String[] args){ //定义字节型变量 byte b = 100; System.out.println(b); //定义短整型变量 short s = 1000; System.out.println(s); //定义整型变量 int i = 123456; System.out.println(i); //定义长整型变量 long l = 12345678900L; System.out.println(l); //定义单精度浮点型变量 float f = 5.5F; System.out.println(f); //定义双精度浮点型变量 double d = 8.5; System.out.println(d); //定义布尔型变量 boolean bool = false; System.out.println(bool); //定义字符型变量 char c = 'A'; System.out.println(c); } }
- 变量:程序运行期间,内容可以发生改变的量。
创建一个变量并且使用的格式:
- 数据类型 变量名称;//创建了一个变量
- 变量名称 = 数据值;//赋值,将右边的数据值,赋值交给左边的变量一步到位的格式:
- 数据类型变量名称=数据值;//在创建一个变量的同时,立刻放入指定的数据值
使用变量的时候,有一些注意事项:
- 如果创建多个变量,那么变量之间的名称不可以重复。
- 对于float和long类型来说,字母后缀F和L不要丢掉。
- 如果使用byte或者short类型的变量,那么右侧的数据值不能超过左侧类型的范围。
- 没有进行赋值的变量,不能直接使用;一定要赋值之后,才能使用。
- 变量使用不能超过作用域的范围。不能在{}内定义,然后在该{}外输出打印。
【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。
10.数据类型转换
10.1 自动转换
一个 int 类型变量和一个 byte 类型变量进行加法运算, 结果会是什么数据类型?
运算结果,变量的类型将是 int 类型,这就是出现了数据类型的自动类型转换现象。
自动转换:将 取值范围小的类型 自动提升为 取值范围大的类型 。自动完成。
public static void main(String[] args) { int i = 1; byte b = 2; // byte x = b + i; // 报错 //int类型和byte类型运算,结果是int类型 int j = b + i; System.out.println(j); }
byte 类型内存占有1个字节,在和 int 类型运算时会提升为 int 类型 ,自动补充3个字节,因此计算后的结果还是 int 类 型。
同样道理,当一个 int 类型变量和一个 double 变量运算时, int 类型将会自动提升为 double 类型进行运算。
public static void main(String[] args) { int i = 1; double d = 2.5; //int类型和double类型运算,结果是double类型 //int类型会提升为double类型 double e = d+i; System.out.println(e); }
转换规则 范围小的类型向范围大的类型提升, byte、short、char 运算时直接提升为 int 。
byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double
10.2 强制转换
强制类型转换:将 取值范围大的类型 强制转换成 取值范围小的类型 。
比较而言,自动转换是Java自动执行的,而强制转换需要我们自己手动执行。
- 特点:代码需要进行特殊的格式处理,不能自动完成。
- 格式:范围小的类型 范围小的变量名=(范围小的类型)原本范围大的数据;
- double类型数据强制转成int类型,直接去掉小数点。int i = (int) 1.5;
注意事项:
- 强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出。
- byte/short/char这三种类型都可以发生数学运算,例如加法“+”.
- byte/short/char这三种类型在运算的时候,都会被首先提升成为int类型,然后再计算。
- boolean类型不能发生数据类型转换
public static void main(String[] args) { //short类型变量,内存中2个字节 short s = 1; /* 出现编译失败 s和1做运算的时候,1是int类型,s会被提升为int类型 s+1后的结果是int类型,将结果在赋值会short类型时发生错误 short内存2个字节,int类型4个字节 必须将int强制转成short才能完成赋值 */ s = s + 1;//编译失败 s = (short)(s+1);//编译成功 }
public class Demo02DataType{ public static void main(String[]args){ //左边是int类型,右边是1ong类型,不一样 //1ong-->int,不是从小到大 //不能发生自动类型转换! //格式:范围小的类型范围小的变量名=(范围小的类型)原本范围大的数据; int num =(int)100L; System.out.println(num); //1ong强制转换成为int类型 int num2 =(int)6000000000L; System.out.println(num2);//1705032704 //double-->int,强制类型转换 int num3 =(int)3.99; System.out.print1n(num3);//3,这并不是四舍五入,所有的小数位都会被舍弃掉char ziful = 'A'; //这是一个字符型变量,里面是大写字母A System.out.println(ziful+1); //66,也就是大写字母A被当做65进行处理 //计算机的底层会用一个数字(二进制)来代表字符A,就是65 //一旦char类型进行了数学运算,那么字符就会按照一定的规则翻译成为一个数字 byte num4 = 40; //注意!右侧的数值大小不能超过左侧的类型范围 byte num5 = 50; //byte+byte-->int+int-->int int result1 = num4 + num5; System.out.println(result1);//90 short num6 = 60; //byte + short-->int + int--> int //int强制转换为short:注意必须保证逻辑上真实大小本来就没有超过short范围,否则会发生数据溢出 short result2 =(short)(num4 + num6); System.out.println(result2);//100 } }
10.3 ASCII编码表
/* 数字和字符的对照关系表(编码表): ASCII码表:American Standard Code for Information Interchange,美国信息交换标准代码。 Unicode码表:万国码。也是数字和符号的对照关系,开头0-127部分和ASCII完全一样,但是从128开始包含有更多字符。 48-'0' 65-'A' 97-'a' */ public class Demoe3DataTypeChar { public static void main(String[] args){ char ziful = '1'; System.out.printin(ziful + 0);//49 char zifu2 = 'A';//其实底层保存的是65数字 char zifu3 = 'c'; //左侧是int类型,右边是char类型, //char-->int,确实是从小到大 //发生了自动类型转换 int num = zifu3; System.out.print1n(num);//99 char zifu4 = '中’;//正确写法 System.out.print1n(zifu4 + e);//20013 } }
- 2 Java基础语法(关键字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换)
- 2 Java基础语法(keyword,标识符,凝视,常量,进制转换,变量,数据类型,数据类型转换)
- Java基础语法(一)<注释,关键字,常量,变量,数据类型,标识符,数据类型转换>
- Java基础第2天+关键字、标识符、注释、常量、进制转换、变量、数据类型(基本数据类型,引用数据类型)、数据类型转换...
- Java语言基础(关键字、标识符、注释、常量与变量、进制、数据类型、类型转换、代码示例)
- JAVA基础初探(一)核心概念(JVM,JDK,JRE)、流程控制语句、基本数据类型、关键字、标识符、常量与变量、类型转换、Debug处理
- Java基础——环境变量配置、HelloWorld编写、变量与常量、关键字与标识符、数据类型及转换
- Java基础重温_01:JDK,常用DOS命令,注释,关键字,常量,数据类型,变量,标识符,类型转换。(3.18)
- Java基础复习之一篇:关健字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换
- 黑马程序员—Java语言基础(关键字、标识符、注释、常量与变量、进制、数据类型、类型转换、代码示例)
- Java基础语法(一)(标识符,关键字,注释,常量,变量,基本数据类型)
- Java基础一:关键字、标示符、变量、常量和数据类型转换
- Java基础01一些词汇的意思(标识符 常量 变量 基本数据类型之间的转换)
- python 0基础学习笔记 1:数据存储、数据类型、标识符、变量、常量、数字类型及其转换
- Java基础语法(一)—标识符、关键字、常变量、数据类型
- Java基础语法(HelloWorld、常识、常量、变量和数据类型、数据类型转换、运算符、方法、流程控制语句、数组、开发工具)
- Java基础-02总结关键字,标识符,注释,常量进制,变量数据类型
- JAVA基础-2.关键字,标识符,常量,变量,进制,数据类型
- java基础(01)注释、关键字、常量、变量、数据类型、标识符
- Java基础-02总结关键字,标识符,注释,常量进制,变量数据类型