1.计算机基本知识
(1)十进制和二进制的转换
1111 = 1 * 2^0 + 1 * 2^1 + 1 * 2^2 + 1 * 2^3 = 15
(2)位和字节
位(bit)
一个数字0或一个数字1代表一位。
字节(byte)
每逢8位是一个字节,这是数据存储的最小单位
1 byte = 8 bit
原码、补码和反码
计算机以二进制补码的形式保存整数
正数的补码和原码一致
负数的补码是原码先求反码,然后反码+1 (其中求反码时最高位——符号位保持不变)
2.DOS命令
启动
win+R 输入“cmd” 回车
切换盘符
盘名称+:
进入文件夹
cd + 文件夹名称
进入多级文件夹
cd 文件夹1\文件夹2\……\文件夹n
返回上一级
cd…
返回根路径
cd\
查看当前内容
dir -> directory
清屏
cls --> clear screen
退出
exit
3.Java基本概念
Java是一门特殊的高级语言,即是编译型语言,也是解释型语言。
JDK
Java程序开发工具包
JRE
Java运行环境,包含JVM和运行时所需要的核心类库
JVM
Java虚拟库
Java跨平台原理
由于计算机只能识别机器码,因此高级语言源代码想要在计算机上运行需要被编译成机器码。而同样的语义在不同的计算机平台拥有不同的机器码,因此不同的平台需要特定的编译器。不同的编译器也导致同样功能的程序在不同的平台表达需要不同的源代码,这样就会导致企业的开发成本过高。
针对这种情况,Java创造了一种字节码文件,通过一种编译器将Java源代码编译成字节码文件,然后计算机平台特定的Java虚拟机(JVM)将字节码文件解释为机器码。如此就实现了Java的跨平台特性,大大降低了企业的开发成本。
4.关键字和标识符
关键字
有特殊含义的、被保留的,不能随意使用的字库
特点:
- 完全小写
- 在增强版的记事本中显示特殊颜色
标识符
是程序中变量、类、方法命名的符号,可以包含英文字母,0~9,$, _。
要求:
- 不能以数字开头
- 不能是关键字
命名建议
- 类:大驼峰法,即各单词首字母大写
- 方法、变量:小驼峰法,即第一个单词小写,其余各单词首字母大写
5.常量和变量
常量
表示
final int R = 3;
通常大写,不同字符使用下划线
变量
指代在内存中开辟的存储空间,用于存放运算过程中需要用到的数据。即一个数据存储空间的表示
变量中存的是栈地址值
格式
-
数据类型 变量名
变量名 = 值
-
数据类型 变量名 = 值
注意:
- 右侧值不能超过左侧数据类型的取值范围
- float值后要加F,long值后要加L
- 没有赋值的变量不能直接使用
- 变量名称不能重复
- 变量使用不能超过作用域
命名规则
- 可以包含下划线、数字、字母、¥和 $
- 不能以数字开头
- 不能是关键字和保留字
- 采用驼峰命名法
- 见名知意
6.数据类型
基本数据类型(四类八种)
整型:
byte(1个字节, -128~127)
short(2个字节, -32768~32767)
int(4个字节、大概为正负21个亿,程序默认)
long(8个字节)
浮点型
float(4个字节)
double(8个字节 默认)
字符型
char(2个字节 0~65535)
把0~65535范围内的一个int整数赋给char类型变量,系统会自动把这个int整数当成char类型来处理。
char实际就是一个整数,该整数对应相应的Unicode编码
布尔型
false、true(1个字节)
注意:字节的大小与取值范围无关
引用数据类型
数组、字符串、类、接口、Lambda
强制数据类型转换(显式)
特点:代码需要进行特殊的格式处理,不能自动完成
格式: 范围小的类型 范围小的变量名 = (范围小的类型)原本类型范围大的数据
注意:
-
不推荐使用强制数据类型转换,可能发生数据精度损失、数据溢出
eg:double --> int 小数位会被舍弃
-
byte\short\char三种类型都可以发生数学运算,且在运算时会首先提升为int类型,然后再计算
-
boolean不能发生数据类型转换
自动数据类型转换(隐式)
特点:代码不需要进行特殊处理,自动完成
规则:数据范围从小到大
7.ASCII码
0:48
9:57
A:65
Z:90
a:97
z:122
8.运算符和表达式
运算符
进行特定操作的符号
四则运算符(+ - * \)
+:变量,常量,变量与常量混合
用法:
- 数值:加法
- char:在计算之前会被提升位int,然后再计算
- 字符串:连接,任何数据类型与字符串进行连接的时候,结果都会是字符串
\ :取整,整数除整数只看商
注意:一旦运算当中有不同类型的数据,那么结果将会是数据范围大的那种。
%:取余,取模运算
自增(++)、自减(–)(只有变量才可以使用)
使用方法:1.单独使用 2.混合使用
区别
-
单独使用:前++(–)和后++(–)没有任何区别
-
混合使用:
前++(–):先加(减)后用
后++(–):先用后加(减)
赋值运算符
基本赋值运算符:=
对于byte\short\char三种类型,如果右侧赋的数值没有超过左侧数据类型的范围,Javac会自动补上(byte)、(short)、(char)
复合赋值运算符(包含强制类型转换):+=、-=、*=、=、%=
比较运算符
结果一定是boolean,成立true,不成立false
== 、>= 、 <= 、> 、<、!=
逻辑运算符
&&、||、!
注意
&& 、|| 短路特性
三元运算符
格式:数据类型 变量名 = 条件判断 ?表达式A :表达式B
注意:1.必须保证表达式A和表达式B都符合左侧数据类型的要求
2.三元运算符的值必须被使用
表达式
用运算符连起来的式子
9.程序控制流程结构
顺序结构
开始 --> 步骤A --> 步骤B --> 步骤C --> 结束
分支结构
1.单if
if ( 关系表达式 ) { 语句体; }
2.if…else…
if ( 关系表达式 ) { 语句体; } else { 语句体; }
3.if…else…if…else…
4.switch
switch(表达式){
case 常量1:
语句体;
break;
case 常量2:
语句体;
break;
...
default:
语句体n+1;
break;
}
注意
- 多个case后面的数值不可以重复
- switch后面的数据类型只能是:byte\short\char\int\String\enum
- break可以省略,要注意穿透性
- if关系表达式值为boolean值
循环结构
for循环
for(初始化表达式;布尔表达式;步进表达式){
循环体;
}
while循环
标准格式
while(条件判断){
循环体
}
扩展格式
初始化语句
while(条件判断){
循环体
}
do-while循环
标准格式
do{
循环体
步进表达式
}while(条件判断);
扩展格式
初始化语句
do{
循环体
步进表达式
}while(条件判断);
三种循环的区别
- 如果条件判断从未满足,那么for循环、while循环执行0次,do-while循环至少执行1次
- for循环的变量在小括号当中定义,只在循环内部使用
- while循环和do-while循环可以在循环外面使用初始化语句
- 凡是循环次数确定多用for循环,反之多用while循环
- while先判断后执行,do-while先执行后判断
多重循环
一个循环体内又包含另一个完整的循环结构
while(循环条件1){
//循环操作1
while(循环条件2){
//循环操作2
}
}
do{
//循环操作1
do{
//循环操作2
}while(循环条件2);
}while(循环条件1);
for(循环条件1){
//循环操作1
for(循环条件2){
//循环操作2
}
}
while(循环条件1){
//循环操作1
for(循环条件2){
//循环操作2
}
}
注意事项
- 各循环可互相嵌套
- 一般不超过三层,通常是两层
- 外层循环变量变化一次,内层循环变量要变化一遍
控制循环结构
break
- switch:一旦执行,整个switch语句立刻结束
- 循环语句:一旦执行,整个循环语句立刻结束,跳出当前循环
- break通常在循环语句和switch中使用
continue
continue只能在循环中使用
一旦执行,立刻跳过当次循环剩余内容,马上开始执行下一次循环
10数组
数组是引用类型,是一个变量,存储相同数据类型的一组数据
数组就是在内存中划出一串连续的空间
使用
- 声明数组
- 分配空间
- 赋值
- 处理数据
声明数组
声明数组不规定数组长度
数据类型 数组名[ ] ;
数据类型[ ] 数组名 ; 多用这种
表示
数据类型[ ] 数组名 =new 数据类型 [大小] ;
数据类型[ ] 数组名 = { 数组元素 } ;
数组与内存
一个地址代表一个字节
注意
-
数组长度固定不变
-
下标范围为:0~length-1
-
数组初始值:
引用类型:null
基本类型:整数0 浮点数0.0 Boolean值false 字符 方框 -> 0
-
创建数组并赋值的方式只能放在一条语句中