关于本周学习内容与心得体会
本人是一大四即将毕业的学生,正值人生迷茫之际不知何去何从。就在此时,我们学院恰巧迎来了软帝公司的学员招新,我也机缘巧合来到了软帝当起了学员。
软帝的老师不会区别对待任何来学习的学生,这是我的第一感受。因为他们都是从零基础(打字也教的那种)开始教起的,有些感动吧。
第一周
这是我们开课的第一周,老师首先并没有一开始就教我们关于编程之类的知识,而是教我们使用Markdown这款软件,虽然他没有明确说出来做笔记有多重要,可是从他的认真程度看来,笔记真的很重要,以下分享一些关于我学到的Markdown的知识。
MD语法
1.所有的标记后边必须加'空格'.
标题
1.使用#标识标题
2.标题一共分为6级标题,分别使用# ## ###……######来为标题分级
文本
1.斜体:*斜体*
1.1.或选中后->shift+i
2.粗体:**粗体**
2.1.或选中后->shift+b
3.粗体+斜体:***粗体+斜体***
4.删除线:~~删除线~~
5.下划线:<u> 下划线 </u>
链表
有序链表:
1.格式:1.空格(内容)
2.使用tab进行下一级
3.使用shift+tab回到上一级
** 无序列表:**
1.格式:-空格(内容)
2.使用tab进行下一级
3.使用sihft+tab回到上一级
4.可以混合使用
区域
1.格式:>进行区域的划分,每一级区域加一个>:> >> >>>
一级区域:>
二级区域:>>
三级区域:>>>
代码
1.在笔记中定义一段代码:代码
1.这个System.out.println("Hellow World!");
是一个输出语句。
2.代码块:代码块
public void main(String[] args){ System.out.println("Hellow World!"); }
链接地址
引用图片
1.语法:图片名称
流程图
flow
st=>start: 程序开始执行
op=>operation: 操作框
io=>inputoutput: 输入a=1,b=2
con=>condition: a>b
r1=>subroutine: 条件成立
r2=>subroutine: 条件失败
en=>end: 程序结束运行
st(right)->op(right)->io->con
con(yes)->r1->en
con(no)->r2->en
** 以上是老师交给我们的部分Markdown这个软件的用法**(注:本人愚钝,如果没学好,绝对不是老师的问题- -)
## Java第一天
#### 编程语言
编程语言是用于和计算机进行沟通的一个工具。让计算机能够帮助我们解决实际生活中的问题。
#### 编程语言的分类
** 机器语言 **
--汇编语言:计算机能够直接识别的代码指令,使用起来非常的麻烦,计算机能够直接执行。
**高级语言**
-- 高级语言是人能够更好的学习和识别的语言。对程序员更加友好,学习成本很低。但是计算机无法识别和直接运行。
-- 高级语言在执行之前必须通过`编译器`进行编译,把高级语言编译成机器语言,交给计算机进行运行。
> 高级语言的分类:
- 编译型语言:源代码要先进行编译,只有所有代码编译通过后生成一个二进制的可执行文件,交由计算机进行运行。例如:C、C++、C#等
- 解释型语言:解释器从源代码的第一行开始解释(编译)运行,从上向下一次运行,直到出现错误或程序运行结束。例如:JavaScript
- 编译解释型语言:Java编译器先把Java源文件(.java)编译成字节码文件(.class),再交给java虚拟机进行解释运行。Java使用Java虚拟机屏蔽了不同系统之间的差异,使得Java语言具有跨平台性。
如图:
```graph LR
A[Java源码]-->|编译| B[Java编译器]
B-->|生成| C[Java字节码]
C-->D[WinJava虚拟机]
C-->E[MacJava虚拟机]
C-->F[LiuxJava虚拟机]
D-->|运行| G[计算机]
E-->|运行| G
F-->|运行| G
**Java语言的四大特点**
·跨平台性
·面向对象
·垃圾回收机制
·多线程
## Java环境的安装
---------------------------
**JDK(Java Development Kit):**是Java语言的软件开发工具包(SDK)。主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个Java开发的核心,它包含了Java的运行环境(JVM+Java系统类库)和Java工具。
**Java(Java Virtual Machine):**Java虚拟机,简称JVM,是运行所有Java程序的假象计算机,是Java程序的运行环境,是Java最具吸引力的特性之一。我们编写的Java代码,都运行在JVM之上。
## Java分类
**JavaSE :** Java的基本版本,包含Java的基本语法,Java中的类库。可以做桌面APP开发(几乎没有使用)。
**JavaEE:** 企业级服务器框架,在JavaSE的版本上完成了扩展。使其更加是用于服务器的开发。淘宝天猫的后台,QQ微信的后台,银行的后台。
**JavaME:** Java精简版,在JavaSE的版本上进行精简,使其能够更好的适应嵌入式设备、机顶盒。(使用的比较少)
## 配置Java环境变量
** Path:** C:\Program File\Java\jdk1.8.0_201\bin
-用于声明可执行文件的位置,配置之后可以在系统的任何位置进行调用。
**CLASS_PATH:** C:\Program Files\Java\jdk1.8.0_201\lib
-Java程序引用class文件时,到哪里去查找。
**JAVA_HOME:** 提供给第三方的应用软件使用。用于让其他软件直到Java的位置,方便使用。
## Hello World
```/*
Java代码中的最小单位是:类
一个Java文件中只能包含一个公共的类,并且公共类的名称必须和文件名相同
*/
public class Test{
//代码块中的内容必须要拖进:tab
//main:固定写法, 是程序的入口方法,程序开始执行的地方
public static void main(String[] args){
//输出语句,把方法中的参数(“Hello World!”)输出到控制台
System.out.println("Hello World!");
}
}```
**javac:** 编译指令,把Java源码编译成class文件:javac Test.java
**java:** 解释执行指令,用于执行编译后的class文件:java Test
## Java基础
### 变量
程序中的变量相当于一个容器。变量就是用于存储程序执行期间所以来的数据。因为在程序执行期间存在不同数据类型,所以就需要不同的容器进行存储。
**定义语法:**
1.数据类型 变量名;
2.数据类型 变量名 = 数据;
3.变量应该先定义后使用;
4.局部变量使用前必须要先进行初始化。
### 数据类型
**基本数据类型**
1.数值
1.1.整型:用于保存整数,不带小数点的数,使用的补码的形式(二进制)进行保存。
- - byte:1个字节: -128~127
- short:2个字节:-32768~32767
- int:4个字节:-2^31~2^31-1
- long:8个字节:-2^63~2^63-1
- 除非是特大类型,否则建议使用int。Java中的整数常量默认为int类型,所以Java会把比int类型小的整形转为int进行运算。
- 补码:
- 正数直接保存其二进制的值
- 负值把其二进制的值进行`取反+1`后再保存,`取反+1`运算后得到的就是补码
- 浮点数:用于保存小数值。使用科学计数法保存。
- float:4个字节:1.4013E-45~3.4028E+38
- double:8个字节:4.9E-324~1.7977E+308
Java中的默认类型
|数据| 举例 |默认类型|
|整数|1 22 45| int |
|浮点型|22.2 | double|
|字符型|'a' 'b'|char |
|布尔型|true false| boolean|
- 字符:char
- 使用的是Unicode编码,所以可以保存任何字符。
- 使用 ‘ ’ 定义一个字符,字符要使用 ‘’ 进行包裹。
- 字符实际保存的是字符的编码,字符编码是连续的(数字和字母)
- 字符占2byte
- 布尔:Boolean
- true:真
- false:假
**引用数据类型**
- String
- 数组
- 类
#### 类型转换
在开发过程中,我们经常需要把不同数据类型之间的数据进行转换:
- 大类型转小类型时,发生强制类型转换:小类型 变量名 = (小类型) 大类型数据;
- 小类型转大类型时,发生自动类型转换(隐式转化)。
- 浮点数转整数时,可能发生精度丢失,所以也要发生强制类型转换。
- 整数转浮点数时,因为保存方式不同,浮点数的范围远远大于整数,所以不会发生错误,可以直接转换。发生自动类型转换(隐式转化)
```mermaid
graph LR
A[type]-->|自动| B[short/char]
B-->|自动| C[int]
C-->|自动| D[long]
D-->|自动| E[float]
E-->|自动| F[double]
标识符
标识符包含类名、方法名、变量名。
标识符的要求
- 标识符必须由 数字、字母、_、$ 构成。
- 标识符不能以数字开头。
- 标识符严格区分大小写,a1, A1是不同的,是两个变量。
- 标识不能是关键字。
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N8WUgjmI-1606047931196)(C:/Users/Administrator/Desktop/20201122/%E7%AC%94%E8%AE%B0/1.png)]
- 标识符要做到见名知意。标识符要具有语义化。
- 我们在定义名称的时候请使用英语,不要使用拼音!!!
- 因为定义标识符的过程中需要具有语义化,所以可能用到多个单词:String username;
- 类名(接口):大驼峰命名规则:定义类名/接口名时从第一个单词开始首字母大写:UserName
- 方法名、变量名:小驼峰命名规则:定义变量名/方法名从第二个单词开始首字母大写:userName
运算符
- 分割符:, ; {}
- 赋值运算符: =
- 算术运算符: +,―,*,/,%,++,― ―
- 关系运算符: >,<,>=,<=,==,!=
- 布尔逻辑运算符: !,& , | , ^ , &&,||
- 位运算符: &,|,,~ , >>,<<,>>>
- 扩展赋值运算符:+=,―=,*=,/=, %=
- 字符串连接运算符: +
- 造型操作符:()
- 三目运算: ?:
表达式
多个运算数参与运算就组成了一个表达式: b + c
- 在参与运算的过程中,存在不同的数据类型,最终的结果类型为其参与运算中最大的那个数据类型。
- 在表达式中使用整型时,Java会把小于int类型的数据转为int类型后再参与运算。( + - * /)