计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。
传统电脑系统的硬体单元一般可分为输入单元、输出单元、算术逻辑单元、控制单元及记忆单元,其中算术逻辑单元和控制单元合称中央处理单元(Center Processing Unit,CPU)
硬件系统:1)、电源 2)主板 3)CPU 4)内存 5)硬盘 6)声卡 7)显卡 8)调制解调器 9)光驱 10)显示器 11)键盘 12)鼠标 13)音箱 14)打印机 15)视频设备 16)闪存盘 17)移动存储卡及读卡器
软件系统:
-
- 系统软件
- 操作系统 -- a.处理器管理、b.作业管理、c.存储器管理、d.设备管理、e.文件管理
- 语言处理程序(翻译程序):翻译方法由两种,解释、编译
- 服务程序
- 数据库管理程序
- 应用软件
二、java语言概述
创始人:James Gosling
java语言特点:简单性、解释性、面向对象、高性能、分布式处理、多线程、健壮性、动态、结构中立、安全性、开源、跨平台
java语言跨平台原理:在需要运行java应用程序的操作系统上,安装java虚拟机(JVM Java Virtual Machine)即可,由JVM负责java程序在该系统中的运行
JRE和JDK的概述:
什么是JRE:JVM + java程序所需的核心类库等。如果运行一个开发好的java程序,计算机中只需要安装JRE即可
什么是JDK:JRE+java的开发工具
JDK安装:1.官网下载对应版本 http://www.oracle.com 2.安装,过程中对路径进行选择,不要有中文或者特殊符号如空格等 3.配置JAVA_HOME,对应安装路径,在修改path,对应jdk安装目录下的bin目录。
path和classpath的区别:1.path配置的是可执行的文件.exe,配置后可以在不同盘符下访问path路径下的可执行文件 2.classpath配置的java的类文件 .class
注释概述及其分类:1.单行注释 // 多行注释/* */ 文本注释 /** */ 2.注释作用:解释说明程序,帮助调试错误
关键字的概述和使用:1.关键字是被java语言赋予特定含义的单词 2.关键字特点:组成关键字的字母全部小写 3.常见关键字:public static void class等 4.关键字的注意事项:goto和const作为保留字存在,目前并不使用
标识符的概述和组成规则:
1.标识符就是给类、接口、方法、变量等起名字时使用的字符序列
2.标识符的组成规则:英文大小写字母、数字字符、$和_
3.标识符注意事项:不能使用关键字,不能以数字开头
4.常见命名规则:见名知意
包-所有字母小写,域名倒写
类或接口-一个单词首字母大写,多个单词驼峰标识
方法或变量-一个单词全部小写,多个单词从第二单词首字母大写
常量-一个单词所有字母大写,多个单词所有字母大写,用下划线区分每个单词
常量的概述和使用:
字符串常量:用双引号标识的内容
整数常量:所有整数
小数常量:所有小数
字符常量:用单引号标识的内容,并只能存放单个数字、字母或符号
布尔常量:true、false
空常量:null
进制:
1byte=8bit 1k=1024b 1M=1024k 1G=1024M。。。
java中不同进制数据的表现形式:
二进制数:由0,1组成,前面加 0b
八进制数:由0,1...7组成,前面加 0
十进制:0...9组成,前面非零
十六进制:由0,1...9,a,b,c,d,e,f,前面加0x
任意进制转化为十进制数:
系数:每一位上的数据
基数:x进制,基数就是x
权:在右边,从0开始编号,对应位上的编号即为该位的权
结果:每一位 系数*(基数权) 的值累加
十进制到任意进制的转换:除积倒取余
原码反码补码:在计算机内部,所有的运算都是以二进制补码的形式来运算的
正数的原反补码都是一样的
负数的反码是原码的逐位取反(符号位除外)
负数的补码是反码的末位加1
变量的概述及格式:
变量定义格式:数据类型 变量名 = 变量值;
数据类型的概述及分类:
java中的数据类型分类:基本数据类型、引用数据类型
基本数据类型分类(四类八种):
整数型:
byte:占一个字节 -128~127
short:占两个字节 -2^15~2^15-1
int:占四个字节 -2^31~2^31-1
long:占八个字节 -2^63~2^63-1
浮点型
float 占两个字节 -3.403E38~3.403E38
double 占四个字节-1.798E308~1.798E308
字符型
char 占两个字节 0~65535
布尔型
boolean
boolean理论上是占八分之一个字节
定义不同数据类型的变量:
整数类型数据默认:int类型
小数类型数据默认类型:double类型
定义float类型数据后面加F:例:float f = 1.2F
定义long类型的数据后面加L:long l = 2222222222L(大写)
使用变量的注意事项:
作用域:同一个区域不能使用相同的变量名
初始化值问题:局部变量在使用前必须赋值
数据类型转换之隐式转换:
java中数据类型的转换规则:取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
例:byte类型+int类型:byte类型数据先转换成int类型数据,再做运算
案例:
int a = 10;
byte b = 20;
b = a + b;可能会损失精度,a + b的值是一个int类型而b是byte类型
强制转换的格式:
b = (byte)(a + b);
字符和字符串参与运算:
System.out.println(‘a‘); 输出字符类型数据 ‘a‘
System.out.println(‘a‘+1); 字符数据‘a‘转换成int类型97,再与1相加,结果为98
ASCII码表需要记住的三个值:
‘0‘ 48
‘A‘ 65
‘a‘ 97
字符串数据与其余数据进行相加,会直接合并到一起,组成新的字符串
System.out.println("hello"+‘a‘+1); 结果是"helloa1"
System.out.println(‘a‘+1+"hello"); 结果是"98helloa1"
char数据类型:
char型数据范围:0--65535
Java语言中的字符char可以存储一个中文汉字:每个字符占用两个字节,中文也是占的两个字节
算术运算符的基本用法:
运算符的分类:
算术运算符,赋值运算符,比较(关系或条件)运算符,逻辑运算符,位运算符,三目(元)运算符
算数运算符有哪些:* +,-,*,/,%,++,--
整数相除只能得到整数,如果想得到小数,必须把数据变化为浮点数类型
/ 获取的是除法操作的商,% 获取的是除法操作的余数
%运算符:当左边的绝对值小于右边绝对值时,结果是左边;%运算符结果的符号只和左边有关系,与右边无关
算术运算符++和--的用法:
++:自加。对原有的数据进行+1
--:自减。对原有的数据进行-1
放在操作数的前面,先自增或者自减,然后再参与运算。
放在操作数的后面,先参与运算,再自增或者自减。
赋值运算符的基本用法:
基本的赋值运算符 = :把=右边的数据赋值给左边
扩展的赋值运算符:+=,-=,*=,/=,%=
关系运算符的基本用法及其注意事项:
关系运算符(比较运算符,条件运算符):==,!=(不等于),>,>=,<,<=
结果为boolean类型
逻辑运算符的基本用法:
&&和&的区别?
&&具有短路效果。左边是false,右边不执行(结果为false)
&是无论左边是false还是true,右边都会执行
||和|的区别?
|| 具有短路效果。左边是true,右边不执行(结果为true)
| 是无论左边是false还是true,右边都会执行
位运算符的基本用法:
位异或运算符的特点及面试题
^的特点:一个数据对另一个数据位异或两次,该数本身不变
面试题:
请自己实现两个整数变量的交换
假如 a = @ b = #
a = a ^ b = @ ^ #
b = a ^ b = @ ^ # ^ # = @
a = a ^ b = @ ^ # ^ @ = #
最后结果: b = @ a = #
<<:左移 左边最高位丢弃,右边补齐0
>>:右移 最高位是0,左边补齐0;最高为是1,左边补齐1
>>>:无符号右移 无论最高位是0还是1,左边补齐0
案例:最有效率的算出2 * 8的结果
2<<3
三元运算符的基本用法:
三元运算符的格式:(关系表达式) ? 表达式1 : 表达式2;
当关系表达式为true,结果为表达式1
当关系表达式为false,结果为表达式2
键盘录入的基本格式:
格式:
a:导包
格式:import java.util.Scanner;
位置:在class上面。
b:创建键盘录入对象
格式:Scanner sc = new Scanner(System.in);
c:通过对象获取数据
格式:int x = sc.nextInt();
注意:无论我们想要键盘输入几次数据,创建键盘录入对象只要一次
选择结构if语句格式:
if语句的第一种格式:
if(比较表达式) {
语句体;
}
当比较表达式成立的时候,就运行语句体;反之,不运行
注意事项:
比较表达式无论简单还是复杂,结果必须要是boolean类型的值
if语句控制的语句体如果是一条语句,大括号可以省略(建议不省略)
一般来说:有左大括号就没有分号,有分号就没有左大括号
if语句的格式2:
if(比较表达式) {
语句体1;
}else {
语句体2;
}
当比较表达式成立的时候,就运行语句体1;反之,运行语句体2
if语句的格式2和三元的相互转换问题:
三元运算符实现的,都可以采用if语句实现。反之不成立
什么时候if语句实现不能用三元改进呢?
当if语句控制的操作是一个输出语句的时候就不能。
为什么呢?因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。
if语句的格式3:
if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}
...
else {
语句体n+1;
}
选择结构switch语句的格式及其解释:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
注意:表达式里面可以放的数据类型:
基本数据类型:byte short char int
引用数据类型:枚举 String(字符串)
执行顺序:先计算表达式的值,然后和case后面的匹配,如果有就执行对应的语句;否则执行default控制的语句
选择结构switch语句的注意事项:
A: case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
B: break最好不要省略,会出现case穿透
C: default并不是一定要放在最后,但是一定是最后才会去执行
D:遇见break或者大括号就结束了
选择结构if语句和switch语句的区别:
switch 和 if语句的使用场景区别?
switch建议判断固定值的时候用
if建议判断区间或范围的时候用
循环结构概述和for语句的格式及其使用:
A:循环结构的分类
for,while,do...while
B:循环结构for语句的格式:
for(初始化表达式;条件表达式;循环后的操作表达式) {
循环体;
}
C执行流程:
a:执行初始化语句
b:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
c:执行循环体语句;
d:执行循环后的操作表达式
e:回到B继续。
注意:for语句在循环结束后,定义的变量会被释放,接下来的语句要使用,需重新定义
循环结构while语句的格式和基本使用:
A:循环结构while语句的格式:
while循环的基本格式:
while(判断条件语句) {
循环体语句;
}
完整格式:
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
B:执行流程:
a:执行初始化语句
b:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
c:执行循环体语句;
d:执行控制条件语句
e:回到B继续。
循环结构do...while语句的格式和基本使用:
A:循环结构do...while语句的格式:
do {
循环体语句;
}while(判断条件语句);
完整格式;
初始化语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);
B:执行流程:
a:执行初始化语句
b:执行循环体语句;
c:执行控制条件语句
d:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
e:回到b继续。
循环结构三种循环语句的区别:
三种循环语句的区别:
do...while循环至少执行一次循环体。
而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
for循环和while循环的区别:
如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。
不知道用谁就用for循环。因为变量及早的从内存中消失,可以提高内存的使用效率。
循环结构注意事项之死循环:
A:一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环。
B:两种最简单的死循环格式 - for条件判断默认为true
while(true){...}
for(;;){...}
注意:
‘\x‘ x表示任意,\是转义符号,这种做法叫转移字符。
‘\t‘ tab键的位置
‘\r‘ 回车
‘\n‘ 换行
‘\"‘ 可以用转义符号打印双引号和单引号
‘\‘‘
控制跳转语句break语句:
break的使用场景:
只能在switch和循环中 (结束循环:就近原则)
控制跳转语句continue语句:
continue的使用场景
只能在循环中
控制跳转语句标号:
标号:标记某个循环对其控制
标号组成规则:其实就是合法的标识符
控制跳转语句return语句:
A:return的作用
返回
其实它的作用不是结束循环的,而是结束方法的。
B:案例演示
return和break以及continue的区别?
return是结束方法
break是跳出循环
continue是终止本次循环继续下次循环
方法概述和格式说明:
A:为什么要有方法
提高代码的复用性
B:什么是方法
完成特定功能的代码块。
C:方法的格式
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
方法体语句;
return 返回值;
}
D:方法的格式说明
修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。
返回值类型:就是功能结果的数据类型。
方法名:符合命名规则即可。方便我们的调用。
参数:
实际参数:就是实际参与运算的。
形式参数;就是方法定义上的,用于接收实际参数的。
参数类型:就是参数的数据类型
参数名:就是变量名
方法体语句:就是完成功能的代码。
return:结束方法的。
返回值:就是功能的结果,由return带给调用者。
如何写一个方法
1,明确返回值类型
2,明确参数列表
方法的注意事项:
A:方法调用(有具体返回值)
a:单独调用,一般来说没有意义,所以不推荐。
b:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。
c:赋值调用,推荐方案。
B:案例演示
a:方法不调用不执行
b:方法与方法是平级关系,不能嵌套定义
c:方法定义的时候参数之间用逗号隔开
d:方法调用的时候不用在传递数据类型
e:如果方法有明确的返回值,一定要有return带回一个值
方法重载概述和基本使用:
方法重载:
在同一个类中,方法名相同,参数列表不同。与返回值类型无关。
参数列表不同:
A:参数个数不同
B:参数类型不同
C:参数的顺序不同(算重载,但是在开发中不用)