目录
计算机
计算机硬件
硬件离不开软件,软件也离不开硬件
cpu、内存、硬盘、显卡、键盘、鼠标…
裸机
只有硬件没有软件的机器
计算机软件
系统软件
Windows、unix、linux、ios…
应用软件
B/S: 浏览器与服务器——前端后端均在服务器上[京东、淘宝]
C/S:客户端与服务器——客户端负责前端,服务器负责后端[QQ、腾讯会议]
计算机体系结构
从内到外:
硬件 -> 操作系统内部 -> 操作系统外部 -> 应用程序[java应用程序]
程序
程序=数据+算法
java技术体系架构
JAVAEE、JAVASE、JAVAME
编程语言
低级语言
机器语言[汇编语言]
高级语言
JAVA(不操作内存,有垃圾回收机制特性),PHP,C,C++…
JDK
JDK是java开发工具包
包含JDK(java开发工具),JRE(java运行环境),JVM(java虚拟机)
拥有JDK,程序员可编写源文件(.java)通过javac命令编译成字节码文件(.class),
再利用java命令加载、运行字节码文件;
JRE是java运行环境
它包含了JRE(java运行环境),JVM(java虚拟机)
拥有JRE,可以实现将字节码文件(.class)通过java命令进行加载、运行;
但是无法对源文件文件(.java)进行编译。
JDK是开发一个java程序最小的环境
JRE是运行一个java程序的最小环境
跨平台特性
java是一种跨平台运行的软件;
一次编译,到处执行
不同操作系统安装不同版本的JDK,即安装适合于该系统的JVM,其次运行任意字节码文件,从而实现java跨平台运行
先编译再执行(解释)
编写java源文件(.java) -> (通过javac命令编译 ) -> 字节码文件(.class)
-> java命令运行.class文件 -> JVM ->加载、运行字节码文件 (边解释边运行 解释为机械码)-> 操作系统
javac(编译过程)
检查java源文件中是否有编译错误(语法错误);
生产.class字节码文件
字节码 != 机器码
字节码只能通过JVM能解析
javac+路径
java(解释过程)
启动JVM;
加载,运行字节码文件,解释为机械码
java+类名
编译期与解释期题型
在编译时,会计算出结果——因为值都是字面量(直接量)
long k=24*60*60*1000; //在编译时,会计算出结果
在编译时,不会计算出结果——因为表达式中有变量
int a=24;
long k=a*60*60*1000;//在运行时,才会出结果
环境变量
用户环境变量高于系统环境变量
java环境变量
JAVA_HOME: JDK的安装路径(其他软件使用java时,通过JAVA_HOME找java)
PATH: JDK中bin目录的路径,为了在命令行中使用bin目录下的命令
系统环境
对所有用户起作用,公用
用户环境
只对当前用户起作用,私有
类
若类名相同,看包名是否相同,若“包名+类名”都相同,表同一个类型
背
目前涉及到的保留字
package:包,解决命名冲突,包名+类名是类的全名
import :导入 java.util.Scanner一个类型 先导入后使用
class :类 ,类型
static 静态的,静态方法只能直接调用静态方法,内部不能调用非静态方法
void:无返回的,定义方法,若没有数据返回(return),方法定义时设置返回的类型为void
main:main方法 是java程序运行的入口函数
return:在方法内部,可以使用return 返回一个数据,也是用于结束方法的运行
java.lang包中的所有类型,不需要导入就可以使用
String接收字符串的两种方法
nextLine : 接收字符串. 回车换行也属于字符串
String name = scanner.nextLine();
next: 接收字符串,但是不接回车换行
String sex = scanner.next();
关于public与文件名
public修饰的类的名字必须和文件名相同,有且仅有一个
一个文件夹自己中可以有多个class、每个类里都可以有main方法
public的class的文件没有也可以
[若类名与文件名相同,即是一个公开类]
注释
快捷键
当行(单行)注释: ctrl+/
多行注释: ctrl+shift+/
// 单行注释
/*..多行注释
..*/
/**..文档注释 ---生成文本文件[利用命令javadoc.exe]
.*/
变量
变量定义及强数据类型语言
指在内存中的一块存储空间,存储运算过程中所需要用到的数据
变量声明: 数据类型+变量名字
JVM 为变量开辟存储空间,不同变量类型决定了存储空间的结构
JAVA是强数据类型语言,不同的数据类型有不同的操作(属性不同,方法不同)
变量要求
先声明,再使用,否则“编译错误”
声明后的变量,先初始化再使用
[声明与初始化变量可放在同一行]
多个变量的类型相同,可在一条语句声明,中间用逗号分隔(一般会采用数组)
//int a=1,b;
变量命名规则
字符、数字 、_ 、$ 组成
首字符不能为数字
区分大小写
关键字不能作为变量名
不能仅一个"_"作为变量,$ 可以一个作为变量
特殊字符不能作为变量[ _ 、$ 除外]
纯数字不能作为变量名
不建议使用中文字符[但无编译错误]
变量命名规范
驼峰命名法——>除第一个单词首字母小写外,其他单词首字母大写[classStudent]
不用中文当变量
命名变量,见名知意
知识点
enum 枚举型