1.0 计算机基础
1.0.1 基本知识
- 现代计算机基础:冯诺依曼体系结构
- IT定律(硬件):
- 摩尔定律:18-24个月,计算机性能提升一倍。
- 反摩尔定律:如果现在和18个月前卖掉同样多的同样的产品,营业也就会下降一半。
- 安迪-比尔定律:硬件性能的提高,很快会被软件消耗掉。
- DOS命令:
md
:创建文件夹rd
:删除文件夹del
:删除文件cd
:切换路径dir
:查看当前路径下的文件和文件夹cd
:切换路径
cd \
:切换到根路径。
tree
:指定目录下的所有文件(显示文件树)cls
:清屏exit
:退出dos
- 编码:
- ASCII:一个字节表示一个字符,共128个。
- Unicode:两个字节表示一个字符,字母和汉字都用2个字符表示,存在浪费空间问题。兼容ASCII编码
- UTF-8:大小可变编码,字母用一个字节,汉字用3个字节
- gbk:字母用1个字节,汉字用2个字节。
- gb2312:同gbk,表示范围小于gbk
- big5:繁体中文
1.0.2 整数的四种表示方式
- 二进制:0和1,以0b或0B开头。
- 八进制:0-7,以0开头。
- 十进制:0-9。
- 十六进制:0-9以及A-F(a-f),以0x或0X开头。
1.0.3 进制转换
- 其他进制转十进制:
- 二进制转十进制:
每个位上的数 * 2^indx
的和,index从右向左依次为0至n。 - 八进制转十进制:
每个位上的数 * 8^indx
的和,index从右向左依次为0至n。 - 十六进制转十进制:
每个位上的数 * 16^indx
的和,index从右向左依次为0至n。
- 十进制转其他进制:
- 十进制转二进制:该数不断除2,直到商为0,将余数倒序拼接。
- 十进制转八进制:该数不断除8,直到商为0,将余数倒序拼接。
- 十进制转十六进制:该数不断除16,直到商为0,将余数倒序拼接。
- 二进制转其他进制:
- 二进制转八进制:从右向左,3个数一组,对应的十进制数组合后即为八进制。
- 二进制转十六进制:从右向左,4个数一组,对应的十进制数组合后即为十六进制。
- 其他进制转二进制:
- 八进制转二进制:将八进制的每一个数,转成对应的3位数二进制即可。
- 十六进制转二进制:将十六进制的每一个数,转成对应的4位数二进制即可。
1.1 java简介
1.1.1 Java的常见概念及关系
- java SE、Java EE、Java ME的关系
- JDK和JRE:
- JDK: Java Development Kit,把Java源码编译成Java字节码。
- JDK=JRE+Java开发工具
- JRE: Java Runtime Environment,运行Java字节码的虚拟机。
- JRE=JVM+核心类库
- JSR和JCP:
- JSR规范:Java Specification Request
- JCP组织:Java Community Process,负责JSR。
- JDK的可执行文件:
- java:这个可执行程序其实就是JVM,运行Java程序,就是启动JVM,然后让JVM执行指定的编译后的代码;
- javac:这是Java的编译器,它用于把Java源码文件(以.java后缀结尾)编译为Java字节码文件(以.class后缀结尾);
- jar:用于把一组.class文件打包成一个.jar文件,便于发布;
- javadoc:用于从Java源码中自动提取注释并生成文档;
- jdb:Java调试器,用于开发阶段的运行调试。
- Java的特点:
- 面向对象(oop)
- 健壮性:强类型机制、异常处理、垃圾自动收集等。
- 跨平台的。
- 解释性的:
- 解释性语言编译后不能直接被机器运行,需要解释器执行。
- 编译性语言编译后的代码可以直接被机器执行,如C,C++
1.1.2 下载JDK程序
- 由于发展原因:推荐下载jdk8U201版本(最后一稳定版本、长期支持版本)https://repo.huaweicloud.com/java/jdk/8u201-b09/
- 安装jdk8时,已经带了jre,但安装程序最后还会额外安装jre8,为了避免开发工具配置出错(如Eclipse),建议安装。
- 本机的安装参考:
1.1.3 JDK环境变量配置
- 虽然安装java时,环境变量
Path
下已经有默认配置,能够在任何位置的cmd终端执行java
命令。
- 但依赖JDK环境变量的其他程序配置仍然需要重新配置
JAVA_HOME
,如Tomcat,不配置会出现执行Tomcat的开启命令会出现一闪而过的情况,Tomcat也不会运行起来。 - 配置参数:
JAVA_HOME
:CLASSPATH
:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
Path
:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
1.1.4 java命令基本使用
- 运行Java程序:
javac 文件名.java
编译代码,生成文件名.class
字节码文件。java 文件名
自动查找对应的文件.class
文件并执行。- java11后,
java 文件名.java
可以直接运行一个单文件源码,但多数情况下,无法直接这样操作,因为文件名.java
文件需要依赖其他库。
1.2 Java程序基础
1.2.1 Java程序基本结构
- Java编程的特点:
- Java源码的缩进不是必须的。
- Java代码保存为文件时,文件名和main方法外部的类名要完全一致。
- 一个源文件最多只能有一个public类,其他类的个数不限。
- 也可以没有public类。
- 编译后每一个类都对应生成一个
.class
文件。 - 每个类都可以有main方法,且都可以被执行。
- 被执行的前提是同文件内有一个public类。
- 执行方式是
java 类名
。 - main方法必须按java程序规定的入口语法编写,即
public static void main(String[] args)
- 类名必须以英文字母开头(习惯首字母大写),后接字母、数字、下划线的组合。
public static void main(String[] args)
规定的java程序入口
- main方法名必须以英文字母开头(习惯首字母小写),后接字母、数字、下划线。
- Java的每一行语句必须以分号结束。
- java注释
- 单行注释:
//
- 多行注释:
- 多行注释不能嵌套多行注释。
/*xxxx*/
- 文档注释:注释内容可以被JDK提供的javadoc所解析,生成一套以网页文件形式体现在该程序
/** xxx*/
- 拓展:javadoc命令。
- 转义字符
\t
:一个制表符,实现对齐功能。\n
:换行符\\
:\\r
:回车(光标移至本行前面)
霜冷长河\r寒冬
--------->输出后寒冬长河
- Java代码规范:
- 类、方法的注释,要以javadoc的方式书写。
- 非javadoc的注释,写给代码维护者看,为什么这样写、如何修改、注意什么问题。
- 使用tab缩进。
- 运算符“+-*/=”两边各使用一个空格增加代码的可读性。
- 源文件使用UTF-8编码。
- 每行字符不要超过80字符。
- 代码编写行尾风格(起始大括号在同一行)或次行风格(起始大括号在下一行)
1.1.2 标识符规范
- 包名:多单词组成时全部写成小写。
- 文件名、类名、接口名:使用大驼峰形式。
- 变量名、方法名:小驼峰。
- 常量名:所有字母都大写,多个单词用下划线连接。
1.1.3 键盘输入语句
- 使用步骤:
- 导入
Scanner
所在的包:import java.util.Scanner;
- 创建
Scanner
实例对象:Scanner myScanner = new Scanner(System.in);
- 使用
myScanner
的实例对象方法:
- 接收字符串:
String str = myScanner.next();
- 接收整数:
int num = myScanner.nextInt();
- 接收浮点数:
double sth = myScanner.netDouble();
- 接收字符:
char charNum = myScanner.next().charAt(0);