计算机基础知识、常量、变量、数据类型转换、运算符、流程控制语句
计算机常识
- 计算机只识别0和1。
- 所有的数据(文本文件、视频、图片、音频)在内存中存储都是0和1组成。
- 所有数据在传输过程中都是以0和1进行传输(二进制)。
- 数据的本质:二进制。
计算机语言的进化史:
机器语言(只有0和1) ---------->汇编语言--------------->高级语言
- 编码:将字符转换对应的二进制数据的过程。
- 解码:将二进制数据转换为对应的字符的过程。
字节
字节(byte)是我们常见的计算机中最小存储单元。
计算机存储任何的数据,都是以字节的形式存储。
8个bit(二进制位) 0000-0000表示为1个字节,1个字节写成1 byte或者1 B。
8 bit = 1 B
1024 B =1 KB
1024 KB =1 MB
1024 MB =1 GB
1024 GB = 1 TB
常用DOS命令
进入DOS操作窗口
按下Windows+R键盘,打开运行窗口,输入cmd回车,进入到DOS的操作窗口
常用命令
命令 | 操作符号 |
盘符切换 |
盘符名: |
查看当前文件夹内容 | dir |
进入文件夹 | cd 文件夹名 |
退出文件夹 | cd.. |
退出到刺磁盘根目录 | cd\ |
清屏 | cls |
Java虚拟机——JVM
JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的
运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在 JVM 之上。
跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系
统上,这个特性称为Java语言的跨平台特性(“一次编写,处处运行”)。该特性是由JVM实现的,我们编写的程序
运行在JVM上,而JVM运行在操作系统上。
Java语言的跨平台实现原理:Java程序运行在Java虚拟机上,Java的虚拟机本身不具备跨平台功能的,每个操作系
统下都有不同版本的虚拟机。
JRE 和 JDK
JRE (Java Runtime Environment) :是Java程序的运行时环境,包含 JVM 和运行时所需要的 核心类库 。
JDK (Java Development Kit):是Java程序开发工具包,包含 JRE 和开发人员使用的工具。
我们想要运行一个已有的Java程序,那么只需安装 JRE 即可。
我们想要开发一个全新的Java程序,那么必须安装 JDK 。
三者关系: JDK > JRE > JVM
添加注释comment
Java中有单行注释和多行注释
单行注释以 //开头 换行结束
多行注释以 /*开头 以*/结束
标识符
命名规则:
- 标识符可以包含 英文字母26个(区分大小写) 、 0-9数字 、 $(美元符号) 和 _(下划线) 。
- 标识符不能以数字开头。
- 标识符不能是关键字。(若大小写不同,则可以)
- 区分大小写。
命名规范:
- 类名规范:每个单词首字母大写(大驼峰式)。
- 方法名和变量名规范: 第一个单词全小写,后面每个单词首字母大写(小驼峰式)。
- 包名规范:全部小写。 域名反写。例:com.baidu
- 常量规范:所有的字母大写,使用_连接
常量
常量:是指在Java程序中固定不变的数据
基本数据类型。
四类八种 | 内存占用 |
字节型:byte | 1个字节 |
短整形:short | 2个字节 |
整形:int(默认) | 4个字节 |
长整型:long | 8个字节 |
单精度浮点数:float | 4个字节 |
双精度浮点数:double(默认) | 8个字节 |
字符型:char | 2个字节 |
布尔类型:boolean | 1个字节 |
Java中的默认类型:整数类型是 int 、浮点类型是 double 。
虽然long8个字节,float4个字节,但是long与float计算:long + float ==》float + float,但可能会损失精度。
变量
变量定义的格式包括三个要素: 数据类型 、 变量名 、 数据值 。
成员变量:可以不赋初值。
局部变量:必须赋初值。
- 定义的变量,不赋值不能使用。
- 同一个方法中变量名不能重复。
- 变量只在定义时的{}中有效。
char的定义有且只有一个字符,""(里面没有空格)是不符合规定的。
数据类型转换
自动转换:将 取值范围小的类型 自动提升为 取值范围大的类型 。
范围小的类型向范围大的类型提升, byte、short、char 运算时直接提升为 int 。
byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double
强制转换:将 取值范围大的类型 强制转换成 取值范围小的类型 。
强制转换格式:
数据类型 变量名 = (数据类型)被转数据值;
强烈注意:
浮点转成整数,直接取消小数点,可能造成数据损失精度。
int 强制转成 short 砍掉2个字节,可能造成数据丢失。
char类型与int类型的运算原理:
char + int ==> int + int
char ch = 'a'; ch = (char)(ch - 32);
==>char ch = 97; ch = (char)(ch - 32);
==>输出ch = 'A';
字码表
字符 | 数值 |
“0” | 48 |
“9” | 57 |
“A” | 65 |
“Z” | 90 |
“a” | 97 |
“z” | 122 |
大写字母 = 小写字母 - 32
运算符
- java中,整数相除结果是整数。
- 取余的结果符号与被除数相同。
异或:相同为false,不相同为true。符号为: ^
&&,|| 跟 &,| 效果一样,但是双与,双或存在短路问题。
工作中常用:双与,双或。
如果需要同时满足两个条件,使用双与。
如果需要满足一个条件即可,使用双或。
==的用法:
- 基本数据类型:比较数据值是否相等。
- 引用数据类型:比较对象的地址是否相等。
三元/三目运算符
数据类型 变量名 = 布尔类型表达式?结果1:结果2;
结果1与结果2可以为任何类型,例:布尔类型,字符串,整形......
三元运算符计算方式:
布尔类型表达式结果是true,三元运算符整体结果为结果1,赋值给变量。
布尔类型表达式结果是false,三元运算符整体结果为结果2,赋值给变量。
对 =+ 这类运算符号的注意事项
short a = 3; a += 2;
==>a = (short)(a + 2);
此类型运算都会自动转换类型。
流程控制语句
自己总结的注意事项
- 不要在if,while后写分号,分号表示结束,后面语句始终都不会运行。
- 在switch中,如果对应case中没有break,那么直接执行后面全部代码至结束,或者遇到break为止。(case的穿透性)
- default:默认的,所有case都匹配不上才会走default。
- 如果case后面没有break,且default在case的前面,也一定会先走case匹配。只有case都不匹配才会执行default。
switch可以匹配的数据类型:
byte、short、char、int、枚举(jdk1.5以上)、String(jdk1.7以上)
switch与if如何使用:
- switch适合于固定值的判断。
- if适合于一定范围的判断。
for 和 while 的小区别:
- 控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
- 在已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用while。
当不知道循环次数时
- 用计数器思想,count = 0 ;count++;
- while(true){在满足条件时,break退出}
再次强调,在for里面定义的变量,在for循环结束后,就不能再被访问到了。
while循环与do while的区别:
- while会先判断条件,再运行。
- do while会先运行一次,再判断条件。
当初始条件是真的时候,while和do while等价。
当初始条件是家的时候,不等价。
break场景:
只能用于switch和循环中,其他地方不能使用。
continue使用场景:
只能用于循环中。
用cmd的时候,当遇到死循环时,可用ctrl + c 停止打印。