//Java的学习需要持之以恒的积累,虽然我是有基础的但是我还是选择从最基础的学起,加深自己的理解//
Day 02
一、计算机的诞生和发展(了解)
二、冯诺依曼(了解)
三、艾伦*图灵(了解)
四、计算机基础知识(了解)
4.1 计算机
- 电脑
4.2 硬件
- 电脑中的电子元件组成的硬件
4.3 软件
- 数据和指令的集合
- 按照一定的顺序执行,完成指定的功能
4.4 系统软件
- 操作系统
- Windows
- MacOS
- Linux
- Android
- IOS
- BlackBerry
- 塞班
- WPhone
4.5 应用软件
- 微信
- 抖音
- … …
4.6 软件开发
- 编写应用程序
五、常用DOS指令(熟练)
- 磁盘操作命令
- Windows系统出现之前使用的操作电脑的指令
- 必须在命令提示符窗口中运行
- 找20个DOS指令演示
- 最好不涉及删除的操作
- 不涉及操作系统文件的操作
六、Java语言概述
6.1 基本情况
- 1995年
- 詹姆斯*高斯林
- Sun ===》Oracle–甲骨文
- 最新版是jdk14
- 使用人数最多的版本jdk1.8
6.2 下载(掌握)
- 官网下载jdk
- JDK 1.8
- jdk
- java development Kit
- java开发工具包
- https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
6.3 卸载JDK
- 程序==》JDK1.8==》卸载
6.4 安装JDK(掌握)
- 双击运行
- 选择安装位置
- 不能出现中文、空格、横线的符号
- 不安装JRE
- java runtime environment
- javac.exe
- 编译我们书写的Java代码,生成,class文件–字节码文件
- java.exe
- 运行字节码文件
七、环境变量(重点掌握)
-
问什么配置环境变量
- 我想在任意位置都能运行java.exe和javac.exe
- 需要把程序所处的位置告诉系统
- 在系统设置的环境变量选项中添加程序的位置即可
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7D1GmYxt-1596071225492)(环境变量配置.png)]
八、HelloWorld(掌握)
8.1 创建java文件
- Java文件
- 以.java为后缀名的文件成为java文件
- 创建一个任意类型的文件,把文件的后缀名修改为.java
8.3 编写Hello World代码
** 掌握 **
class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
** 了解 **
class
java中的一个关键字,声明一个java中的类
HelloWorld
这个类的名字,一般要求和java文件的名字保持完全一致
public
java中的一个关键字,访问权限修饰符,第十天会讲
static
java中的一个关键字,表示这个方法是静态的方法,第十天会讲
void
java中的一个关键字,表示方法执行结束后返回的内容是空的,第七天会讲
main
不是java中的一个关键字,是一个方法的名字,是整个程序的入口,第七天会讲
(String[] args)
main方法的参数列表,main方法执行的时候可能需要操作一些数据,第七天会讲
System.out.println(“Hello World!”);
main方法中具体执行的内容
九、Hello World运行原理(掌握)
- 我们书写的代码和平时是写的文字、文章使用的是相同的字母、符号
- 计算机是不能直接识别、运行这个内容的
- 需要把我们能直接看懂的java文件中的内容进行转换,转换成计算机能看懂、能运行的文件
- 计算机能识别并运行.class–字节码文件,可以使用JDK中提供的javac.exe执行进行操作,这种操作成为编译
- javac.exe编译java文件会生成字节码.class文件,JDK中提供java.exe就可以运行这个文件并产生结果啦
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KNwu7tXb-1596071225503)(java代码的编译和运行.png)]
十、Java编码规范(熟悉)
- 生成的字节码文件名字和类名是一样的
- 如果类名被public修饰了,那么文件名需要和类名保持一致
- 如果类名没有被public修饰,类名和文件名可以不一样
- 一个文件中能不能存在多个类
- 能
- 会编译出多个字节码文件,这个字节码文件和类名一样
- 但是只能有一个类是被public修饰的,而且还要和文件名一致
- 类名的规范
- 合法的标识符
- 不能关键字重名
- 命名符合大驼峰命名法
- 多个层级的代码之间要使用制表符(tab)键进行格式化
十一、标识符(熟悉)
- 给类、方法、变量命名的一个字符串
- 组成
- 字母
- 数字
- _
- $
- 命名规则
- 类
- 大驼峰命名法
- HelloWorld
- MyShop
- 大驼峰命名法
- 方法、变量
- 小驼峰命名法
- showInfo
- getAge
- setName
- 小驼峰命名法
- 常量
- 全部字母大写,多个单词使用下划线连接
- USERNAME
- PASSWORD
- MATH_PI
- 全部字母大写,多个单词使用下划线连接
- 包
- 字母全部小写,公司名字反过来书写
- com.qf.shop.XXX
- 字母全部小写,公司名字反过来书写
- 类
十二、注释(熟悉)
12.1 定义
- 标注、解释
12.2 注释分类
- 单行注释
- 注释一行代码
- // 单行注释的内容
- 多行注释
- /* 多行注释的内容 */
- 文档注释
- /** 文档注释的内容 */
Day03
一、变量(掌握)
1.1 定义
- 内存中开辟的一片空间,需要执行数据的类型
1.2 定义变量
数据类型 变量名称 = 变量值;
int num = 99;
============
int num;
… …
num = 99;
==============
int a=10,b=20,c;
二、数据类型(掌握)
- 整型
- 字节
- byte
- 短整型
- short
- 整型
- int
- 长整型
- long
- 字节
- 浮点型
- 单精度
- float
- 双精度
- double
- 单精度
- 字符型
- char
- 布尔型
- boolean
类型 | type | size | round |
---|---|---|---|
字节型 | byte | 1 | |
短整型 | short | 2 | |
整型 | int | 4 | |
长整型 | long | 8 | |
单精度 | float | 4 | |
双精度 | double | 8 | |
字符型 | char | 2 | |
布尔型 | boolean | 1 |
class Demo03 {
public static void main(String[] args) {
/**
*
java基本数据类型
整数
字节型 byte 1 -128--127 -2^7--2^7-1
短整型 short 2 -32768--32767 -2^15--2^15-1
整型 int 4 -2^31 -- 2^31-1
长整型 long 8 -2^63---2^63-1
小数--浮点型
单精度 float 4
双精度 double 8
字符型
char 2
布尔型
boolean 1
引用数据类型
String
System
String[]
Object
*
*/
byte b = -110;
System.out.println("byte b = " + b);
short s = 32767;
System.out.println("short s = " + s);
int i = 2147483647;
System.out.println("int i = " + i);
long l = 21474836470L;
System.out.println("long l = " + l);
double d = 3.141592353589793;
System.out.println("double d = " + d);
// java中的小数默认的类型是double,定义float类型变量的时候,需要在值的后面加上F
float f = 3.141592353589793F;
System.out.println("float f = " + f);
// char类型数据的值必须是一个字符,不能多也不能少
char c = '\'';
System.out.println("char c = " + c);
boolean bb = true;
System.out.println("boolean bb = " + bb);
}
}
三、ASCII(了解)
3.1 定义
- 美国标准信息交换码
- 定义了128个基本的字符
3.2 Unicode
- 在ASCII码表的而基础上进行了扩展,包含了各国的基本字符
- 被称为万国码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nAJzc1XL-1596071259730)(e850352ac65c103880a07b53bc119313b17e8941.png)]
四、转义字符(了解)
4.1 定义
- 转变字符原有的含义
- \字符
转义字符 | 含义 |
---|---|
\t | 制表符tab |
\n | 换行newLine |
\\ | 斜线 |
\" | 单个双引号 |
五、数据类型转换(熟悉)
5.1 自动类型转换
- 向上转型
- 范围小的转换成范围大的
class Demo06 {
public static void main(String[] args) {
// 定义变量b,赋值110
byte b = 110;
// 定义变量c,赋值变量b,执行的占用2个字节的b中的110
short c = b;
System.out.println("short c = " + c);
short cc = 7985;
byte bb = (byte)cc;
// 0000 0000
// 0000 0000 0000 0000
// 0011 0001
System.out.println("byte bb = " + bb);
}
}
5.2 强制类型转换
- 向下转型
- 范围大的转换成范围小的
class Demo07 {
public static void main(String[] args) {
// 强转无损失
int i = 110;
byte b = (byte)i;
System.out.println("byte b = " + b);
// 强转有损失
int ii = 7985;
byte bb = (byte)ii;
System.out.println("byte bb = " + bb);
// 小数转整数
double d = 3.9;
int id = (int)d;
System.out.println("int id = " + id);
// 字符和数字转换
int ic = 65;
char c = (char)ic;
System.out.println("char c = " + c);
}
}
六、算术运算符
名称 | 符号 | 案例 |
---|---|---|
加 | + | a+b |
减 | - | a-b |
乘 | × | a×b |
除 | / | a/b |
取余数 | % | a%b |
自增 | ++ | a++ |
自减 | – | a– |
class Demo08 {
public static void main(String[] args) {
int a = 15;
int b = 20;
System.out.println("Hello World!");
System.out.println("a + b = " + (a + b));
System.out.println("a - b = " + (a - b));
System.out.println("a * b = " + (a * b));
System.out.println("a / b = " + (a / b));
System.out.println("10.0 / 3 = " + (10.0 / 3));
// 比如10除以3,结果是3,余数是1,取模就是取余数
System.out.println("a % b = " + (a % b));
System.out.println("18.4 % 4 = " + (18.4 % 4));
// 字符串的拼接
System.out.println("a + b = " + a + b + true);
}
}
class Demo09 {
public static void main(String[] args) {
int a = 15;
int b = 20;
// ++ --难点
a++;
System.out.println("a = " + a);
++b;
System.out.println("b = " + b);
int c = 15;
int d = 20;
// ++在后,先把自己的值赋给e,再自增
int e = c++; // c++ === c = c+1
// ++在前,先自增,再把自己的值赋给e
int f = ++d;
System.out.println("c = " + c);
System.out.println("d = " + d);
System.out.println("e = " + e);
System.out.println("f = " + f);
}
}
七、赋值运算符
名称 | 符号 | 案例 |
---|---|---|
赋值 | = | |
加法赋值 | += | |
减法赋值 | -= | |
乘法赋值 | *= | |
除法赋值 | /= | |
取余赋值 | %= |
class Demo10 {
public static void main(String[] args) {
// 赋值运算符
int a = 10;
int b = 15;
a+=b; // a = a + b
System.out.println("a += b === " + a);
a-=b; // a = a - b
System.out.println("a -= b === " + a);
a*=b; // a = a * b
System.out.println("a *= b === " + a);
a/=b; // a = a / b
System.out.println("a /= b === " + a);
a%=b; // a = a % b
System.out.println("a %= b === " + a);
}
}
八、关系运算符
名称 | 符号 | 案例 |
---|---|---|
大于 | > | |
小于 | < | |
等于 | == | |
不等于 | != | |
大于等于 | >= | |
小于等于 | <= |
class Demo11 {
public static void main(String[] args) {
// 关系运算符====比较运算符
int a = 10;
int b = 15;
System.out.println("a > b ? " + (a > b));
System.out.println("a < b ? " + (a < b));
System.out.println("a == b ? " + (a == b));
System.out.println("a != b ? " + (a != b));
System.out.println("a >= b ? " + (a >= b));
System.out.println("a <= b ? " + (a <= b));
}
}
九、逻辑运算符(重点掌握)
名称 | 符号 | 案例 |
---|---|---|
逻辑与 | & | |
短路与 | && | |
逻辑或 | | | |
短路或 | || | |
取反 | ! |
class Demo12 {
public static void main(String[] args) {
/**
性别不同
并且年龄符合条件
逻辑与 只有两边的条件都是true,结果才是true
true & true === true
true & false === false
false & true === false
false & false === fasle
遇到false结果就是false
&&,短路与,只要遇到一个false,就返回false,后面的内容将不再执行
yAge >= 22 & xAge >= 20
*/
int yAge = 22;
int xAge = 20;
boolean result = yAge >= 22 & xAge >= 20;
System.out.println("符合办证的条件吗?" + result);
// 没有车票 或者 有没有违禁物品
int ticket = 1;
boolean isSafe = false;
// 逻辑或,有一个条件是true,结果就是true
/*
true | true === true
true | false === true
false | true === true
false | fales === false
遇到true,结果就是true
|| 短路或,只要遇到一个true,后面的内容将不再执行,直接返回true
*/
result = (ticket < 1) | (isSafe == false);
System.out.println("会不会无法进站 ?" + result);
System.out.println("!true == " + (!true));
System.out.println("!false == " + (!false));
}
}
十、三元运算符(三元表达式)(掌握)
判断语句/布尔值 ? 条件成立的时候返回的结果 : 条件不成立返回的结果;
class Demo13 {
public static void main(String[] args) {
int ticket = 0;
String result = ticket >= 1 ? "检票成功,请经过安检" : "请先去购买车票";
System.out.println(result);
int a = 10;
int b = 30;
int max = a > b ? a : b;
System.out.println("比较大的数字是:" + max);
// 不引入第三个变量,交换a和b的值---作业
int a0 = 15;
int b0 = 20;
// 35
int temp = a0 + b0;
a0 = temp - a0;
b0 = temp - b0;
}
}
十一、键盘录入–人机交互(熟练)
11.1 定义
- 获取用户输入的内容
- 使用到Scanner
11.1 使用过程
1、导入Scanner
2、创建Scanner对象
3、提示输入内容
4、获取对应类型的内容
5、使用获取到的内容
// import java.util.Scanner;
import java.util.*;
class Demo15 {
public static void main(String[] args) {
/*
1、导入Scanner
2、创建Scanner的对象
3、提示用户输入name
4、获取用户输入的name
5、提示用户输入age
6、获取用户输入的age
7、输出用户输入的name和age
*/
// 2、创建Scanner的对象
Scanner sc = new Scanner(System.in);
// 3、提示用户输入name
System.out.println("请输入名字:");
// 4、获取用户输入的name
String name = sc.nextLine();
// 5、提示用户输入age
System.out.println("请输入年龄:");
// 6、获取用户输入的age
int age = sc.nextInt();
// 7、输出用户输入的name和age
System.out.println("我的名字是:" + name + ",今年:" + age);
}
}
十二、进制
- 二进制
- 0b
- 八进制
- 0
- 十进制
- 十六进制
- 0x
class Demo16 {
public static void main(String[] args) {
System.out.println("Hello World!");
/*
1Byte
0000 0000
1111 1111
0011 1100
123 为什么是一百二十三
100 + 20 + 3 为什么是这样
3 = 3 * 1 = 3 * 10^(1-1)
20 = 2 * 10 = 2 * 10^(2-1)
100 = 1 * 100 = 1 * 10^(3-1)
0011 1100
0 * 2^0 = 0 * 1 = 0
0 * 2^1 = 0 * 2 = 0
1 * 2^2 = 1 * 4 = 4
1 * 2^3 = 1 * 8 = 8
1 * 2^4 = 1 * 16 = 16
1 * 2^5 = 1 * 32 = 32
========================
4 + 8 + 16 + 32 == 60
2684 0000 0000
000 == 0
111 == 7
一个八进制位范围是0--7
00 111 100
0 7 4
0011 1100
3 C
二进制快速转换成十进制
1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1
0 0 32 0 8 0 2 0
0 0 1 0 1 0 1 0
十进制快速转换成二进制===》计算器===》除积倒取余
*/
}
}