【JavaSE】入门概述(1~41)
1.Java视频及配套资料下载指南2.Java基础学习导读Java语言的三个层面基本语法变量、运算符、流程控制、数组面向对象把数据及对数据的操作方法放在一起作为一个相互依存的整体——对象高级应用多线程、集合、IO流、网络编程、反射、NIO深入源码String、集合、多线程…知识边界数据结构、设计模式、JWT内存结构…3.编程入门-资料文件结构14.编程入门-资料文件结构25.编程入门-入门概述概述计算机包括硬件(hardware)和软件(software)两部分。硬件包括计算机中可以看得见的物理部分。而软件提供看不见的指令。这些指令控制硬件并且使得硬件完成特定的任务。程序设计定义创建或开发软件。软件包含了指令告诉计算机做什么。应用场景软件遍布我们周围。除了个人计算机飞机、汽车、手机甚至烤面包机中同样运行着软件。程序设计语言软件开发人员在称为程序设计语言的强大工具的帮助下创建软件。如何选择该学习哪种程序设计语言程序设计语言有很多种每种语言都是为了实现某个特定的目的而发明的。你会困惑哪种语言是最好的。事实上没有“最好”的语言。每种语言都有它的长处和短处。经验丰富的程序员知道各种语言擅长的应用场景因此会尽可能的掌握各种不同的程序设计语言。如果你掌握了一种编程语言应该会更容易上手其它的编程语言。关键是学习如何使用程序设计方法来解决问题。这也是本套课程的主旨。6.编程入门-冯诺依曼体系结构7.编程入门-CPU和IT行业三大定律中央处理器中央处理器(Central Processing Unit,CPU)是计算机的大脑。它从内存中获取指令然后执行这些指令。包括控制单元(control unit)和算术/逻辑单元(arithmetic/login unit)。控制单元用于控制和协调其他组件的动作。算术/逻辑单元用于完成数值运算(、-、*、/)和逻辑运算(比较)。每台计算机都有一个内部时钟该时钟以固定速度发射电子脉冲。时钟速度越快在给定的时间段内执行的指令就越多。速度的计量单位是赫兹(Hz)1Hz相当于每秒1个脉冲。随着CPU速度不断提高目前以千兆赫(GHz)来表述。最初一个CPU只有一个核(core)。核是处理器中实现指令读取和执行的部分。一个多核CPU是一个具有两个或者更多独立核的组件。可提高CPU的处理能力。IT定律之计算机行业发展规律摩尔定律(Moore’s Law)安迪-比尔定律(Andy and Bill’s Law)反摩尔定律(Reverse Moore’s Law)8.编程入门-持久化存储设备内存中的信息在断电时会丢失。那我们可以考虑将程序和数据永久的保存在存储设备上。当计算机确实需要这些数据时再移入内存因为从内存中读取比从存储设备读取要快得多。存储设备主要有以下三种磁盘驱动器每台计算机至少有一个硬盘驱动器。硬盘(hard disk)用于永久的保存数据和程序。光盘驱动器(CD和DVD)CD的容量可达700MB。DVD的容量可达4.7GB。USB闪存驱动器USB: Universal Serial Bus通用串行总线。可以使用USB将打印机、数码相机、鼠标、外部硬盘驱动器连接到计算机上。USB闪存驱动器很小可用于存储和传输数据的设备。9.编程入门-bit与byte比特(bit)和字节(byte)在讨论内存前先清楚数据是如何存储在计算机中的。计算机就是一系列的电路开关。每个开关存在两种状态关(off)和开(on)。如果电路是开的它的值是1。如果电路是关的它的值是0。一个0或者一个1存储为一个比特(bit)是计算机中最小的存储单位。计算机中是最基本的存储单元是字节(byte) 。每个字节由8个比特构成。计算机的存储能力是以字节和多字节来衡量的。如下千字节(kilobyte,KB) 1024B兆字节(megabyte,MB) 1024KB千兆字节(gigabyte,GB) 1024MB万亿字节(terabyte,TB) 1024GB10.编程入门-内存内存(也叫Random-Access Memory,RAM)由一个有序的字节序列组成用于存储程序及程序需要的数据。一个程序和它的数据在被CPU执行前必须移到计算机的内存中。内存中的内容每个字节都有一个唯一的地址。使用这个地址确定字节的位置以便于存储和获取数据。一个计算机具有的RAM越多它的运行速度越快但是此规律是有限制的。内存与CPU一样也构建在表面嵌有数百万晶体管的硅半导体芯片上。但内存芯片更简单、更低速、更便宜。实测发现内存存取数据的速度比硬盘的存取速度快10倍在某些环境里硬盘和内存之间的速度差距可能会更大。而CPU的速度比内存不知还要快多少倍。当我们把程序从硬盘放到内存以后CPU就直接在内存运行程序这样比CPU直接在硬盘运行程序就要快很多。内存解决了一部分CPU运行过快而硬盘数据存取太慢的问题。 提高了我们的电脑的运行速度。内存就如同一条“高速车道”一般数据由传输速度较慢的硬盘通过这条高速车道传送至CPU进行处理但内存是带电存储的(一旦断电数据就会消失)而且容量有限所以要长时间储存程序或数据就需要使用硬盘。内存在这里起了两个作用保存从硬盘读取的数据提供给CPU使用保存CPU的一些临时执行结果以便CPU下次使用或保存到硬盘11.编程入门-输入输出设备和网络连接设备输入输出设备常见的输入设备键盘keyboard和鼠标mouse常见的输出设备显示器monitor和打印机printer显示器屏幕分辨率是指显示设备水平和垂直方向上显示的像素(px)数。分辨率可以手工设置。分辨率越高图像越锐化、越清晰。通信设备计算机可以通过通信设备进行联网。常见的设备有拨号调制解调器使用的是电话线传输速度可达56 000bps(bps:每秒比特)DSL数字用户线使用的也是电话线但传输速度叫上面的快20倍电缆调制解调器利用有线电视电缆进行数据传输通常速度比DSL快。网络接口卡NIC将计算机接入局域网LAN的设备。局域网通常用于大学、商业组织和政府组织。速度甚至可达1000Mbps无线网络在家庭、商业和学校中极其常见。计算机可通过无线适配器连接到局域网或internet上。12.编程入门-计算机史上的两个鼻祖根据冯诺依曼体系结构构成的计算机必须具有如下功能把需要的程序和数据送至计算机中。必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力。能够根据需要控制程序走向并能根据指令控制机器的各部件协调操作。能够按照要求将处理结果输出给用户。13.编程入门-操作系统14.编程入门-万维网与软件架构方式万维网万维网World Wide Web,www,环球信息网常简称为Web,发明者蒂姆·伯纳斯·李。分为Web客户端和Web服务器程序。 WWW可以让Web客户端常用浏览器访问浏览Web服务器上的页面。 是一个由许多互相链接的超文本组成的系统通过互联网访问。在这个系统中每个有用的事物称为一样“资源”并且由一个全局“统一资源标识符”URI标识这些资源通过超文本传输协议Hypertext Transfer Protocol传送给用户而后者通过点击链接来获得资源。15.编程入门-职业发展与提升16.编程入门-学习经验探讨学习经验探讨锻炼“双核”处理边听讲思考边做“笔记”纸上得来终觉浅绝知此事要躬行第一层次看得懂(依赖于视频、书、贴子)第二层次练的熟(每天代码必须实现2-3遍)总结三分看七分练学习经验探讨四种心态不是“没听懂”而是“记不住”要为成功找理由不为失败找借口战略上藐视”对手”战术上重视”对手”“代码虐我千百遍我视代码如初恋”17.Java语言概述-Java基础阶段目录概述18.Java语言概述-Java后续学习大纲简述19.Java语言概述-Java主要的应用场景20.Java语言概述-Java基础图谱及基础阶段项目说明21.Java语言概述-每天授课须知Java基础课程概述编程语言核心结构主要知识点变量、基本语法、分支、循环、数组、…Java面向对象的核心逻辑主要知识点OOP、封装、继承、多态、接口、…开发Java SE高级应用程序主要知识点异常、集合、I/O、多线程、反射机制、网络编程、…实训项目项目一家庭收支记账软件项目二客户信息管理软件项目三开发团队人员调度软件附加项目一银行业务管理软件附件项目二单机考试管理软件建议在完成目标学习内容之余进行回忆式整理笔记复习时整理笔记以自己对知识点的理解方式或是顺序来整理笔记整理笔记重要的是过程而不是结果22.Java语言概述-图形化界面操作与命令行操作介绍软件开发软件即一系列按照特定顺序组织的计算机数据和指令的集合。有系统软件和应用软件之分。人机交互方式图形化界面(Graphical User Interface GUI)这种方式简单直观使用者易于接受容易上手操作。命令行方式(Command Line Interface CLI)需要有一个控制台输入特定的指令让计算机完成一些操作。较为麻烦需要记录住一些命令。Pascal之父Nicklaus Wirth “AlgorithmsData StructuresPrograms”23.Java语言概述-常用的命令行指令常用的DOS命令dir : 列出当前目录下的文件以及文件夹md : 创建目录rd : 删除目录cd : 进入指定目录cd… : 退回到上一级目录cd: 退回到根目录del : 删除文件exit : 退出dos 命令行补充echo javase1.doc常用快捷键← →移动光标↑ ↓调阅历史操作命令Delete和Backspace删除字符24.Java语言概述-计算机语言的划分什么是计算机语言语言是人与人之间用于沟通的一种方式。例如中国人与中国人用普通话沟通。而中国人要和英国人交流就要学习英语。计算机语言人与计算机交流的方式。如果人要与计算机交流那么就要学习计算机语言。计算机语言有很多种。如C ,C ,Java ,PHP , KotlinPythonScala等。第一代语言机器语言。指令以二进制代码形式存在。第二代语言汇编语言。使用助记符表示一条机器指令。第三代语言高级语言C、Pascal、Fortran面向过程的语言C面向过程/面向对象Java跨平台的纯面向对象的语言.NET跨语言的平台Python、Scala…25.Java语言概述-不同编程语言的介绍26.Java语言概述-Java语言的历史及技术体系平台是SUN(Stanford University Network斯坦福大学网络公司) 1995年推出的一门高级编程语言。是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行。这些Java程序被称为Java小程序applet。applet使用现代的图形用户界面与Web用户进行交互。applet内嵌在HTML代码中。随着Java技术在web方面的不断成熟已经成为Web应用程序的首选开发语言。Java语言概述Java简史1991年Green项目开发语言最初命名为Oak橡树1994年开发组意识到Oak非常适合于互联网1996年发布JDK1.0约8.3万个网页应用Java技术来制作1997年发布JDK1.1,JavaOne会议召开创当时全球同类会议规模之最1998年发布JDK1.2同年发布企业平台J2EE1999年Java分成J2SE、J2EE和J2MEJSP/Servlet技术诞生2004年发布里程碑式版本JDK1.5为突出此版本的重要性更名为JDK5.02005年,J2SE-JavaSE,J2EE-JavaEE,J2ME-JavaME2009年Oracle公司收购SUN,交易价格74亿美元2011年发布JDK7.02014年发布JDK8.0是继JDK5.0以来变化最大的版本2017年发布JDK9.0最大限度实现模块化2018年3月发布JDK10.0版本号也称为18.32018年9月发布JDK11.0版本号也称为18.9从Java的应用领域来分Java语言的应用方向主要表现在以下几个方面• 企业级应用主要指复杂的大企业的软件系统、各种类型的网站。Java的安全机制以及它的跨平台的优势使它在分布式系统领域开发中有广泛应用。应用领域包括金融、电信、交通、电子商务等。• Android平台应用Android应用程序使用Java语言编写。Android开发水平的高低很大程度上取决于Java语言核心能力是否扎实。• 大数据平台开发各类框架有Hadoopsparkstormflink等就这类技术生态圈来讲还有各种中间件如flumekafkasqoop等等这些框架以及工具大多数是用Java编写而成但提供诸如JavascalaPythonR等各种语言API供编程。• 移动领域应用主要表现在消费和嵌入式领域是指在各种小型设备上的应用包括手机、PDA、机顶盒、汽车通信设备等。27.Java语言概述-Java语言的特点java之父James Gosling团队在开发”Green”项目时发现C缺少垃圾回收系统还有可移植的安全性、分布程序设计和多线程功能。最后他们想要一种易于移植到各种设备上的平台。Java确实是从C语言和C语言继承了许多成份甚至可以将Java看成是类C语言发展和衍生的产物。比如Java语言的变量声明操作符形式参数传递流程控制等方面和C语言、C语言完全相同。但同时Java是一个纯粹的面向对象的程序设计语言它继承了C语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的指针以引用取代、运算符重载operator overloading、多重继承以接口取代等特性增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间。JDK1.5又引入了泛型编程GenericProgramming、类型安全的枚举、不定长参数和自动装/拆箱Java语言是易学的。Java语言的语法与C语言和C语言很接近使得大多数程序员很容易学习和使用Java。Java语言是强制面向对象的。Java语言提供类、接口和继承等原语为了简单起见只支持类之间的单继承但支持接口之间的多继承并支持类与接口之间的实现机制关键字为implements。Java语言是分布式的。Java语言支持Internet应用的开发在基本的Java应用编程接口中有一个网络应用编程接口java net它提供了用于网络应用编程的类库包括URL、URLConnection、Socket、ServerSocket等。Java的RMI远程方法激活机制也是开发分布式应用的重要手段。Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java语言是安全的。Java通常被用在网络环境中为此Java提供了一个安全机制以防恶意代码的攻击。如安全防范机制类ClassLoader如分配不同的名字空间以防替代本地的同名类、字节代码检查。Java语言是体系结构中立的。Java程序后缀为java的文件在Java平台上被编译为体系结构中立的字节码格式后缀为class的文件然后可以在实现这个Java平台的任何系统中运行。Java语言是解释型的。如前所述Java程序在Java平台上被编译为字节码格式然后可以在实现这个Java平台的任何系统的解释器中运行。Java是性能略高的。与那些解释型的高级脚本语言相比Java的性能还是较优的。Java语言是原生支持多线程的。在Java语言中线程是一种特殊的对象它必须由Thread类或其子孙类来创建。Java语言的特点特点一面向对象两个基本概念类、对象三大特性封装、继承、多态特点二健壮性吸收了C/C语言的优点但去掉了其影响程序健壮性的部分如指针、内存的申请与释放等提供了一个相对安全的内存管理和访问机制特点三跨平台性跨平台性通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Writeonce , Run Anywhere”原理只要在需要运行java 应用程序的操作系统上先安装一个Java虚拟机(JVM Java Virtual Machine) 即可。由JVM来负责Java程序在该系统中的运行。28.Java语言概述-JVM与垃圾收集机制核心机制—Java虚拟机JVM是一个虚拟的计算机具有指令集并使用不同的存储区域。负责执行指令管理数据、内存、寄存器。对于不同的平台有不同的虚拟机。只有某平台提供了对应的java虚拟机java程序才可在此平台运行Java虚拟机机制屏蔽了底层运行平台的差别实现了“一次编译到处运行”核心机制—垃圾回收不再使用的内存空间应回收—— 垃圾回收。在C/C等语言中由程序员负责回收无用内存。Java 语言消除了程序员回收无用内存空间的责任它提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时检查并释放那些可被释放的存储空间。垃圾回收在Java程序运行过程中自动进行程序员无法精确控制和干预。Java程序还会出现内存泄漏和内存溢出问题吗Yes!29.Java语言概述-JDK、JRE、JVM的关系30.Java语言概述-JDK与JRE的安装官方网址www.oracle.comjava.sun.com安装JDK傻瓜式安装下一步即可。建议安装路径不要有中文或者空格等特殊符号。如果操作系统是64位的软件尽量选择支持64位的除非软件本身不区分。当提示安装JRE时正常在JDK安装时已经装过了但是为了后续使用Eclipse等开发工具不报错建议也根据提示安装JRE。31.Java语言概述-环境变量的配置32.Java语言概述-配置环境变量中几个问题的解决33.Java语言概述-第一个Java程序HelloWorld步骤将 Java Java Java Java Java 代码 编写 到扩展名为 .java .java .java .java .java 的文件中。通过 javac javacjavacjavac命令对该 java java java java 文件进行 编译 。通过 java java java java 命令对生成的 class class class class class 文件进行 运行 。34.Java语言概述-常见的几个bug解决35.Java语言概述-EditPlus的安装和配置36.Java语言概述-单行注释与多行注释用于注解说明释程序的文字就是注释Java 中的注释类型单行注释多行注释文档注释 (java (java特有 )37.Java语言概述-文档注释的使用多行注释不能嵌套使用38.Java语言概述-多行注释使用的一个注意点39.Java语言概述-API文档的说明API Application Programming Interface,应用程序编程接口是 Java 提供 的基本编程接口。Java语言提供了大量的基础类因此 Oracle 也为这些基础类提供了相应的API文档用于告诉开发者如何使用这些类以及这些类里包含的方法。下载API地址Additional Resources-Java SE 8 Documentation下载。详见JDK8的下载-安装-配置.doc40.Java语言概述-第一个Java程序的总结Java源文件以“java”为扩展名。源文件的基本组成部分是类class如本例中的HelloWorld类。Java应用程序的执行入口是main()方法。它有固定的书写格式public static void main(String[] args) {…}Java语言严格区分大小写。Java方法由一条条语句构成每个语句以“;”结束。大括号都是成对出现的缺一不可。一个源文件中最多只能有一个public类。其它类的个数不限如果源文件包含 一个public类则文件名必须按该类名命名。41.Java语言概述-Java开发工具的说明Java集成开发环境IDE)JBuilderNetBeansEclipseMyEclipseIntelliJ IDEAEclipse官网Eclipse应该是大多数Java程序员使 用的第一个IDE。众所周知的、最流 行、也最受欢迎的Java开发工具。优点很多免费、更新快、代码智能化、 ANT构建等拥有众多插件完全免 费、有中文版、上手比较快。缺点也 非常明显安装插件麻烦、插件对版 本要求比较严格。IDEA官网IntelliJ IDEA被认为是目前Java开 发效率最快的IDE工具。是 JetBrains公司的产品这家公司总部位于捷克共和国的首都布拉格。 它整合了开发过程中实用的众多功 能智能提示错误强大的调试工 具AntJavaEE支持CVS整合 最大程度的加快开发的速度。简单 而又功能强大。与其他的一些繁冗而复杂的IDE工具有鲜明的对比。