Loading

01_语言概述

学于尚硅谷开源课程 宋红康老师主讲 感谢

尚硅谷官网:http://www.atguigu.com

尚硅谷b站:https://space.bilibili.com/302417610?from=search&seid=2366509055519973440

微信搜索"艺术行者",关注并回复关键词"javase"获取视频和教程资料!

本人上传的课程在线视频(请点击观看)

第一部分 课程整体内容概述

img

第一部分:编程语言核心结构

主要知识点:变量、基本语法、分支、循环、数组······

第二部分:Java面向对象的核心逻辑

OOP、封装、继承、多态、接口······

第三部分:开发Java SE高级应用程序

主要知识点:异常、集合、I/O、多线程、反射机制、网络编程······

第四部分:实训项目

项目一:家庭收支记账软件
项目二:客户信息管理软件
项目三:开发团队人员调度软件
附加项目一:银行业务管理软件
附加项目二:单机考试管理软件

项目一:讲完流程控制时,可以做。第二章结束
项目二:讲完第四章面向对象(上),可以做
项目三:讲完第七章异常处理以后,可以做

附加项目一:讲完第七章异常处理以后,可以做
附加项目二:讲完第11章IO流以后,可以做

第二部分 基础常识

什么是软件?

软件:即一系列按照特定顺序组织的计算机数据和指令的集合。分为:系统软件应用软件

系统软件:windows , MacOS , linux ,unix,android,ios,....
应用软件:word ,ppt,画图板,...

人机交互方式:

图形化界面(Graphical User Interface GUI):这种方式简单直观,使用者易于接受,容易上手操作。
命令行方式(Command Line Interface CLI):需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦,需要记录住一些命令。

应用程序是什么?

应用程序 = 算法 + 数据结构
Pascal之父Nicklaus Wirth:“Algorithms+DataStructures=Programs

常用DOS命令:

注:此处针对的是windows系统的命令行下的命令

img

常用MacOS终端下的命令:

注:本人的电脑是Macbook Air,故列出相应的命令

ls:列出当前目录下的文件以及文件夹
mkdir:创建目录
rmdir:删除目录
cd:进入指定目录
cd ..:退回到上一级目录
cd /:进入根目录
rm:删除文件

计算机语言的发展迭代史

第一代:机器语言

机器语言是用二进制代码表示的、计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。不同种类的计算机其机器语言是不兼容的,按某种计算机的机器指令编制的程序不能在另一种计算机上执行。

                img

第二代:汇编语言

汇编语言(英语:assembly language)是任何一种用于电子计算机微处理器微控制器,或其他可编程器件的低级语言。在不同的设备中,汇编语言对应着不同的机器语言指令集。一种汇编语言专用于某种计算机系统结构,而不像许多高级语言,可以在不同系统平台之间移植。

使用汇编语言编写的源代码,然后通过相应的汇编程序将它们转换成可执行的机器代码。

             img   

第三代:高级语言

高级编程语言(High-level programming language)是高度封装了的编程语言,与低级语言相对。它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示,有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容。由于早期电脑业的发展主要在美国,因此一般的高级语言都是以英语为蓝本。在1980年代,当东亚地区开始使用电脑时,在日本台湾中国大陆都曾尝试开发用各自地方语言编写的高级语言,当中主要都是改编BASIC或专用于数据库数据访问的语言,但是随着编程者的外语能力提升,现时的有关开发很少。

> 面向过程:C,Pascal、Fortran

C是一种通用的编程语言,广泛用于系统软件应用软件的开发。于1969年至1973年间,为了移植与开发UNIX操作系统,由丹尼斯·里奇肯·汤普逊,以B语言为基础,在贝尔实验室设计、开发出来。          img

> 面向对象:Java,JS,Python,Scala,...

Java是一种广泛使用的计算机编程语言,拥有跨平台面向对象泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

任职于太阳微系统詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的编程语言,应用在电视机电话闹钟烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,太阳计算机系统Sun公司)放弃了该项计划。随着1990年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

img

Java语言版本迭代概述

- · 1991年 Green项目,开发语言最初命名为Oak (橡树)
- · 1994年,开发组意识到Oak 非常适合于互联网
- · 1996年,发布JDK 1.0,约8.3万个网页应用Java技术来制作
- · 1997年,发布JDK 1.1,JavaOne会议召开,创当时全球同类会议规模之最
- · 1998年,发布JDK 1.2,同年发布企业平台J2EE
- · 1999年,Java分成J2SE、J2EE和J2ME,JSP/Servlet技术诞生
- · 2004年,发布里程碑式版本:JDK 1.5,为突出此版本的重要性,更名为JDK 5.0
- · 2005年,J2SE -> JavaSE,J2EE -> JavaEE,J2ME -> JavaME
- · 2009年,Oracle公司收购SUN,交易价格74亿美元
- · 2011年,发布JDK 7.0
- · 2014年,发布JDK 8.0,是继JDK 5.0以来变化最大的版本
- · 2017年,发布JDK 9.0,最大限度实现模块化
- · 2018年3月,发布JDK 10.0,版本号也称为18.3
- · 2018年9月,发布JDK 11.0,版本号也称为18.9

Java语言应用的领域:

> Java Web开发:后台开发
> 大数据开发:
> Android应用程序开发:客户端开发

Java语言的特点

面向对象性:
	两个要素:类、对象
	三个特征:封装、继承、多态
健壮性:
      一:去除了C语言中的指针
      二:自动的垃圾回收机制 -->仍然会出现内存溢出、内存泄漏
      三:跨平台型:write once,run anywhere:一次编译,到处运行,这要功劳归功于:JVM

img

第三部分 开发环境搭建

1.1 开发环境的搭建(重点)

img

img

1.2 JDK的下载、安装

下载:官网,github

官网:https://www.oracle.com/java/technologies/javase-downloads.html

安装:傻瓜式安装:JDK 、JRE

注意问题:安装软件的路径中不能包含中文、空格。

1.3 path环境变量的配置

1.3.1 为什么配置path环境变量?

path环境变量:windows操作系统执行命令时所要搜寻的路径

为什么要配置path:希望java的开发工具(javac.exe,java.exe)在任何的文件路径下都可以执行成功。

1.3.2 如何配置?

img

注:MacOS的配置文件是~/.bash_profile,具体配置可以参考配置的文章:https://www.cnblogs.com/artwalker/p/12693760.html

第四部分 第一个Java程序

1. 开发体验——HelloWorld

img

1.1 编写

创建一个java源文件:HelloWorld.java

class HelloChina{
  public static void main(String[] args){
  System.out.println("Hello,World!");
  }
}

1.2 编译:

javac HelloWorld.java  

1.3 运行:

java HelloChina

2.常见问题的解决

img

img

3.总结第一个程序

1 java程序编写-编译-运行的过程

编写:我们将编写的java代码保存在以".java"结尾的源文件中
编译:使用javac.exe命令编译我们的java源文件。格式:javac 源文件名.java
运行:使用java.exe命令解释运行我们的字节码文件。 格式:java 类名

2 在一个java源文件中可以声明多个class。但是,只能最多有一个类声明为public的。而且要求声明为public的类的类名必须与源文件名相同。

3 程序的入口是main()方法。格式是固定的。public static void main(String[] args){...}

4 输出语句:

System.out.println(): 先输出数据,然后换行
System.out.print():只输出数据

5 每一行执行语句都以";"结束。

6 编译的过程:编译以后,会生成一个或多个字节码文件。字节码文件的文件名与java源文件中的类名相同。

第五部分 注视和API文档等

1 注释:Comment

分类:

单行注释://
多行注释:/*  */
文档注释:/**  */

作用:

① 对所写的程序进行解释说明,增强可读性。方便自己,方便别人
② 调试所写的代码

注释是一个程序员必须要具有的良好编程习惯。

将自己的思想通过注释先整理出来,再用代码去体现。

特点:

①单行注释和多行注释,注释了的内容不参与编译。换句话说,编译以后生成的.class结尾的字节码文件中不包含注释掉的信息
②文档注释的内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。
③多行注释不可以嵌套使用

img

img

2 Java API 文档:

API:application programming interface。习惯上:将语言提供的类库,都称为api。

API文档:针对于提供的类库如何使用,给的一个说明书。类似于《新华字典》

3 良好的编程风格

img

第六部分 EditPlust的使用

1 开发工具说明:

文本编辑工具:

记事本
UltraEdit
EditPlus
TextPad
NOtePade

Java集成开发环境(IDE):

JBuilder
NetBeans
Eclipse
MyEclipse
IntelliJ IDEA

2 EditPlus的使用:

img

img

img

img

注:此处本人学习时使用的MacOS软件是SubEthaEdit.

img

MacOS下JDK8的安装与配置:https://www.cnblogs.com/artwalker/p/12693760.html

问题及解答:

1. GC是什么? 为什么要有GC?

GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。

2. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。

posted @ 2020-07-31 08:32  Artwalker  阅读(391)  评论(0编辑  收藏  举报
Live2D