一、介绍入门
1. 计算机的体系结构
- 计算机的概念、硬件、软件
2. java语言的概述
- 计算机语言的发展
- java语言的发展
3. 开发环境的搭建
- 开发环境:jdk
- 集成开发环境:IDEA
- 代码管理:git
3.1 jdk安装
mac 系统,安装jdk-8
-
下载:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
-
解压:
tar -zxvf jdkxxxx.tar.gz
-
环境变量配置:
vim /etc/profile
添加如下内容:
export JAVA_HOME=xxx/jdkxxxx export PATH=$JAVA_HOME/bin:$PATH
3.2 jdk 和 jre
- jdk: 包含java的开发环境
- jre: java的运行环境
jdk 包含了 jre
3.3 javac.exe 和 java.exe
- javac.exe 编译java程序
- java.exe 执行java程序
3.4 程序流程,编写 - 编译 - 执行
-
打开命令行工具,编写文件:
注意
main
方法需要写在类中cd lagou/phase01-JavaSE/module01-basic/code
vim HelloWorld.java
/* * project name: first program * project function: print out a sentence * author: Benjamin * version: V1.0 * owner: Benjamin * remarks: */ public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } }
-
编译
javac HelloWorld.java
生成
HelloWorld.class
文件 -
执行
执行时,只需要指定其类名即可
java HelloWorld
3.5 注释
-
单行注释
//
-
多行注释
/* * */
-
文档注释
/** * */
3.6 跨平台原理
-
实现跨平台:
Java程序是通过java虚拟机(JVM)在系统平台上运行的,只要该系统可以安装相应的JVM,该系统就可以运行java程序
-
实现过程:
Java源程序经过编译器编译后变成字节码(.class文件),字节码由JVM解释执行,字节码只面向虚拟机,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码(二进制码),然后在特定的机器上运行
二、变量和数据类型
1. 变量
code: VarTest.java
, VarIOTest.java
1.1 变量的基本概念
-
声明变量的本质是在内存中申请一个存储单元,其存储的数据内容可以改变
-
由于存储的数据内容可以改变,所以变量的大小也不一样
-
变量需要指定
数据类型
和变量名
1.2 变量的声明和使用
-
声明
数据类型 变量名 = 初始值;
如,
age = 18;
-
使用
变量必须先声明、初始化,再使用
-
变量不能重复声明
1.3 标识符的命名规则
-
数字、字母、下划线、$ 组成
-
不能以数字开头
-
不能使用java的关键字
-
区分大小写
-
长度没有限制
-
见名知意,英文单词
1.4 变量输入输出案例
题目:
提示用户从键盘输入自己的姓名和年龄,并打印输出
- 提示输入
- 创建Scanner,获取输入数据
- 赋值给变量
- 输入数据
优化:
-
变量使用时再声明,不用提前声明变量
如,
int age = scanner.next()
-
减少重复代码
如,
sout
语句,越少越好
官方库的使用:
JDK官方库
2. 数据类型
2.1 数据类型的分类
-
基本数据类型
byte short int long float double boolean char
-
引用数据类型
数组 类 借口 枚举 标注
2.2 常用的数学进制
-
进制的权重
如,十进制的权重是10 (
10 ^0
,10 ^1
,10 ^ 2
,10 ^ 3
)十六进制的权重是 16 (
16 ^ 0
,16 ^ 1
,16 ^ 2
,10 ^ 3
)二进制的权重是 2 (
2 ^ 0
,2 ^ 1
,2 ^ 2
,2 ^ 3
) -
二进制
其最高位用于代表符号位,0 表示非负数、 1 表示负数
2.3 进制转换
-
正十进制 转 二进制
-
除2取余法(十进制数不断除以2,取余数,倒序组合)
如,十进制45 转换位二进制:101101 (0b/0B作为二进制标识的前缀)
-
拆分法 (拆分位若干个二进制权重的和,有该权重,则为1,否为0)
如,十进制45 = 32 + 13 (N)
45 = 32 + 8 + 4 + 1 (Y)
32 16 8 4 2 1 1 0 1 1 0 1
-
-
正二进制 转 十进制
如 0010 1101 转 十进制
0*2^7 + 0*2^6 + 1*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0
-
负十进制 转 二进制
-
先拆分法,因为有负号,所以需要按位取反, 再加1
如,-45
45 二进制: 0010 1101
取反: 1101 0010
加1: 1101 0011
-
验证:
- 45 + 45 = 0
二进制运算: 1101 0011 + 0010 1101 = 1 0000 000
-