1.Java入门
本章目标
- 简介
- 计算机基础
- 计算机语言发展史
- java语言
- JDK安装
- 第一个HelloWorld
- 集成开发环境
本章内容
一、简介
1、企业用人的标准
我们在说人的能力的时候通常是有这三种说法:
- 人的专业知识能力
- 人的执行能力
- 人学习的能力。
在这三种能力当中,其实最重要的反而学习能力。你可以没有专业知识,也可以没有执行能力,但是你不能没有学习的能力,前两种的能力都是可以通过工作中的学习来拥有的,学习的能力差那就没有办法来弥补了。并且IT行业是一只在发展的,要求你终身学习,所以IT行业是很看重你有没有这个学习能力的。较好的表达能力。
2、什么PBET
PBET-Project-Based Experiential Traning基于项目的体验式训练
主线-贯穿项目-知识点
支线-重难点补充
阶段学员项目–前两阶段个人完成,三、四阶段小组完成.
3、学习方法
笔记:有精力的同学可以每天坚持写一份笔记,最好电子文档格式,不要在纸上抄代码,也可以写写博客
练习:
- 课堂练习:案例+任务-[不能照抄]
- 课后作业:指导提示,一定要认真完成
- 无论如何,请坚持不懈的动手实验!
学习Java要动手,仅仅是看和听是不能够学好编程的如果遇到,代码是敲出来的,不是看出来听出来的
暂时对于一些思路不能理解的地方,先动手写,先写代码,量变会引起质变的
沟通
- 问老师
- 问同学
- 每个同学至少个伙伴一起学习,不要一个单打独斗
总结:建议每天画思维导图,总结当天的知识点,把知识有点提升到面,从以下几个方法搞清楚
比如我们要学习变量,要思考以下几个问题:
- 为什么要用变量
- 定义变量的语法结构(怎么定义?变量语法、变量的定义规划)
- 怎么使用,及注意事项(必须先声明,怎么赋值、怎么引用,作用域等)
- 底层原理:有同学喜欢挖代码底层实现原理,现在阶段不建议,先跟着体系走,当你有一定认知之后再回头来看看源码
知识点掌握程度:熟练、掌握、理解、了解,不是所有知识点都要求熟练掌握,要把握每个知识点的要求程度
- 章节要求:首先要清楚该章节的知识要求,明白每个章节来做什么的,明白之后带着问题去学习
二、计算机基础
1、计算机发展
第一台计算机用了18000个电子管,占地170平方米,重达30吨,耗电功率约150千瓦,每秒钟可进行5000次运算,这在现在看来微不足道,但在当时却是破天荒的
目前世界上最快的计算机运算在每秒亿亿次的运算,比如中国的天河二号
最初发明计算机主要是用于科学计算,因此才有了计算机这个名称。而今天计算机的用途早已超出了数值计算这个单一的范围,计算机更主要用于文字、图象、动画和声音等多媒体数据的处理。这些数据的外在表现形式上差别是非常大的,但在计算机中他们是用统一的二进制数来表示的,这些统一的二进制数最终如何被计算机解释成不同的文字、图象、动画和声音等,则是由特定的计算机程序实现的。
1946年2月15日,第一台电子数字计算机ENIAC (埃尼阿克)问世,这标志着计算机时代的到来
1946年6月,匈牙利籍数学家冯·诺依曼又提出了“程序存储”和“二进制运算”的思想,进一步 构建了计算机由运算器、控制器、存储器、输入设备和输出设备组成 这一计算机的经典结构
2、冯·诺依曼设计方案
五大模块(控制器、运算器、存储器,输入设备、输出设备)
2.1、控制器
控制器是计算机的神经中枢,在指令的控制下工作。主要由指令寄存器、译码器、程序计数器和操作控制器等组成
控制器指令->对指令进行译码分析->生成控制信号->控制其他单元工作
2.2、运算器
运算器又称算术逻辑单元(Arithmetic Logic Unit,简称ALU),它由加法器、寄存器、累加器等逻辑电路组成,主要包括:
- 算术逻辑运算单元(简称算逻单元)
- 算术运算
- 逻辑运算
- 寄存器 :运算器中临时存放数据的部件
2.3、存储器
存储器是计算机的记忆装置,主要保存数据和程序。主要分为:
- 内存储器:CPU直接访问,用于存放正在运行的程序和数据
- 外存储器:CPU不能直接访问,用于存放一些在计算过程中不断频繁使用的数据和程序
存储容量和存取周期是度量存储器的主要技术指标
2.4、有关存储的几个术语
-
二进制位 比特(bit):是计算机的最小单位,它的值是0或1。我们计算机储存的,网络发送的数据包,本质上都是0和1的组合,多个bit组合在一起就可以表示出不同的值
-
字节(Byte:拜特,简称B)——信息表示的基本单位 8位(bit) = 1个字节(Byte), 即:8bit=1B
字节的来由:
最开始计算机只是处理数据运算,也就是0-9,加上运算符号,4bit足够了。举个例子(实际不是这样):用0000表示0,0001表示1,0010表示2,依次类推。 后来加入了字母,程序符号等,8bit也足够了,而这时诞生了ASCII编码的标准,大家就说把8bit表示出来的值叫做字节(Byte)吧,于是就有了字节这个单位。 所以1Byte等于8bit是计算机发展中的一个约定出来的规则:
常见:一个汉字占2字节 字母和数字占一个字节
-
计算机存储常用单位:
单位 换算 千字节(KB或K) 1KB=210=1024B(2的10次方) 兆字节(MB或M) 1MB=1024KB 千兆字节(GB或G) 1GB=1024MB 兆兆字节(TB或T) 1TB=1024GB …… -
字长(WORDS)——或称字,单位:位 计算机中存储一条指令或一个数据所用的二进制位的多少称为计算机的字长 如:Pentium 系列为32位计算机,字长是衡量计算机性能的一个重要标志,字长越长,性能越强,可以进行更大范围的整数运算;可以支持更大的内存
-
地址:——存储器单元的编号 ,常常是以字节为编址单位即:每个字节都有地址
-
数的进位制
分类 数码 基 表示形式 示例 二进制 0,1 2 B 1011B 八进制 0,1,…,7 8 O 100111O 十进制 0,1,…,9 10 D 1011D 十六进制 0,1,…,9,A,B,C,D,E,F 16 H 1011001BH
2.5、输入设备
计算机中常见的输入设备有:键盘(用于操作计算机设备运行的一种指令和数据输入装置)、鼠标、摄像头、扫描仪、光笔、手写输入板、游戏杆、语音输入装置等
2.6、输出设备
常见的输出设备有:显示器、影像输出系统、磁记录设备、打印机、语音输出系统、绘图仪等
3、计算机系统
计算机系统应包括两大部分:
- 硬件系统
- 软件系统
4、什么是程序
4.1、相关术语
- 程序
程序是由一系列指令组成的,它是为解决某一问题而设计的一系列排列有序的指令的集合,指令经过编译和执行才能最终完成程序设计的动作。程序设计的最终结果是软件。
- 程序的执行过程
程序的执行(或运行)就是一条一条执行这一序列当中的指令。也就是说,CPU从内存中读取一条指令到CPU内执行,该指令执行完,再从内存读取下条指令到CPU内执行。CPU不断地取指令、执行指令的过程就是程序的执行过程。
- 程序=数据结构+算法
在编写一个结构化的程序中,需要对两个方面进行描述: 对数据的描述(数据流):指定数据的类型和数据的结构。不同的语言对数据的定义不同,我们主要学习Java的数据类型和数据结构。 对操作的描述(控制流):要指定操作的步骤,即先执行什么后执行什么,这就是算法。算法具有通用性,它和具体的程序语言无关,是程序设计的灵魂。
4.2、程序分类
程序分类有很多,大类分系统软件、应用软件、Web /移动 Application等
系统软件:系统软件是为了支持电脑硬件及应用软件运行的
- 如(win7,win10,win11等);
- 驱动软件(如声卡驱动、显卡驱动)。
- *应用软件:**应用软件是用于完成某种工作的
- 杀毒软件(如金山毒霸、360卫士);
- 聊天软件(qq、微信)
Web /移动 App :以网络为中心,其概念涵盖了宽泛的应用软件产品,包括基于浏览器的 Application和安装在移动设备上的软件;
- 天猫
- 京东
三、计算机语言发展史
计算机编程语言能够实现人与机器之间的交流和沟通,而计算机编程语言主要包括低级语言、高级语言以及面向对象设计语言,具体内容如下:
1、 机器语言
机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。二进制用两个不同的符号0(代表零)和1(代表一)来表示 。现代的计算机和依赖计算机的设备里都使用二进制。早期的程序设计均使用机器语言,程序员用0、1数字编程的程序代码打在纸带或卡片上,1打孔、0不打孔,再将程序通过纸带机或卡片机输入计算机从而进行运算。机器语言,也就是第一代编程语言。
2、 汇编语言
不难看出机器语言作为一种编程语言, 灵活性较差可阅读性也很差,为了减轻机器语言带给软件工程师的不适应,人们对机器语言进行了升级和改进:用一些容易理解和记忆的字母,单词来代替一个特定的指令。通过这种方法,人们很容易去阅读 已经完成的程序或者理解程序正在执行的功能,对现有程序的bug
修复以及运营维护都变得更加简单方便,这种语言就是我们所说的汇编语言, 即第二代计算机语言。
3、 高级语言
在编程语言经历了机器语言,汇编语言等更新之后,人们发现了限制程序推广的关键因素——程序的可移植性。需要设计一个能够不依赖于计算机硬件,能够在不同机器上运行的程序。这样可以免去很多编程的重复过程,提高效率,同时这种语言又要接近于数学语言或人的自然语言。同时,因为资源的稀缺,计算机的运行效率也成为了那个年代工程师追寻的目标。为了更高效的使用计算机,人们设计出了高级编程语言,来满足人们对于高效简的编程语言的追求。用高级编程语言编写的程序需要经过翻译,翻译成机器所能识别的二进制数才能由计算机去执行。
4 、面向对象语言
随着计算机硬件的飞速发展,以及应用复杂度越来越高,软件规模越来越大,原有的程序开发方式已经越 来越不能满足需求。传统的面向过程(包括 结构化程序设计)方法已经越来越不能适应快速多变的业务需求了,软件领域迫切希望找到新的银弹来解 决软件危机,在这种背景下,面向对象的思想开始流行起来。
面向对象语言(Object-Oriented Language)是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承等成分,有识认性、多态性、类别性和继承性四个主要特点。
四、Java语言
1、什么是java
Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。
1992年Java的前身Oak
问世,Oak
最初的目的是面向家用电器的智能化。其开发团队的主要成员Bill Joy、Patrik Naughton、Mike Sheridan 和 James Gosling(Java之父)等。因为投标失败,Oak几乎无家可归,处境相当不乐观。后来在1994年该团队发现Oak非常适合于Internet,并且在得到Sun公司的支持后该团队决定进军Internet。因为Oak已被其它公司注册,这种新的语言的名字便改为Java。到1995年Java技术正式诞生,1996年第一个正式版本发布。
2、JDK的部分版本
最新已经到21了-2023年10月
3、JAVA语言现状
各大厂,甚至操作系统都在使用
4、Java技术体系构架
Java技术在发展中,分为了3个主体方向,它们构成了Java的架构,分别是:
- Java SE(Java Platform Stand Edition)标准版,是桌面开发和低端商务应用的解决方案。J2SE是Java 2平台的标准版,适用于桌面系统,提供CORBA标准的ORB技术,结合Java的RMI支持分布式互操作环境。
- Java EE(Java Platform Enterprise Edition)企业版,是以企业为环境而开发应用程序的解决方案。J2EE目前已经成为开发商创建电子商务应用的事实标准。
- Java ME(Java Platform Micro Edition)小型版,是致力于消费产品和嵌入式设备的最佳解决方案。J2ME提供了HTTP高级Internet协议,使移动电话能以Client/Server方式直接访问Internet的全部信息,不同的Client访问不同的文件,此外还能访问本地存储区,提供最高效率的无线交流。
5、Java语言特点
在Java开发开发者发表的的“白皮书”中用11个关键字来总结Java语言:简单、面向对象、分布式、解释型、稳定、安全、结构中立、易移植、高性能、多线程的动态语言……
- Java语言是易学的:Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
- Java语言是强制面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
- Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
- Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
- Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
- Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
- Java语言是可移植的。这种可移植性来源于体系结构中立性,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
- Java是性能略高的。与那些解释型的高级脚本语言相比,Java的性能还是较优的。
- Java语言是原生支持多线程的Java语言是动态的。
- Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
6、运行环境
6.1、JDK
Java SDK最早叫Java Software Develop Kit,后来改名为JDK,即Java Develop Kit。JDK作为Java开发工具包,主要用于构建在Java平台上运行的应用程序、Applet 和组件等。 包括:
- 类库
- 编译器
- 调试器
- Java 运行时环境(JRE)
JDK 提供的常用工具:
- Javac: Java编译器,将Java源代码编译成类文件(字节码)的工具
- Java: Java解释器,是用于执行类文件的命令,类文件将在Java虚拟机(JVM)中运行
6.2、JRE
Java Runtime Environment,Java运行环境,也就是Java平台。
所有的Java程序都要在JRE下才能运行。JDK的工具也是Java程序,也需要JRE才能运行。为了保持JDK的独立性和完整性,在JDK的安装过程中,JRE也是安装的一部分。所以,在JDK的安装目录下有一个名为jre的目录,用于存放JRE文件。
在$JAVA_HOME/jre/lib目录下有个叫rt.jar(runtime JAR)。rt.jar是Java基础类库,包含Java运行环境所需的基础类
rt.jar是一个类似zip的压缩文件,精确称为“Java archive”(Jar)
在哪里可以找到rt.jar中包含的类的源码呢?安装了JDK的可以在$ JAVA_HOME / src.zip文件中找到所有源码
6.3、JVM
Java Virtual Machine,Java虚拟机是JRE的一部分。
它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。
Java编译执行:
- 加载代码-由类加载器执行;
- 校验代码-由字节码校验器执行;
- 执行代码-由运行时的解释器执行。
跨平台:
Java语言最重要的特点就是跨平台运行,使用JVM就是为了支持与操作系统无关,实现跨平台
垃圾回收:
五、JDK安装
1、JDK安装前准备
JDK是Sun公司发布的Java开发平台,在安装它之前先准备:首先需要至Sun公司Java语言专属网站(https://www.oracle.com)下载最新的JDK ;
然后进行JDK的安装;最后再针对系统环境变量(environment variable)进行设定,并进行测试。
下载路径:https://www.oracle.com/java/technologies/downloads/
2、配置环境变量
- JAVA_HOME: <Java安装路径>
- path: %JAVA_HOME%;
- classpath: .;%JAVA_HOME%.jar;%JAVA_HOME%.jar (早期版本需要,1.8之后不需要了)
配置环境变量,如果没有高级系统设置,可以直接在左上角搜索框搜索“高级系统设置”
3、配置JAVA_HOME
4、配置PATH
5、测试
配置完成按win+r调出命令窗口,输入cmd,在命令窗口分别输入java,javac进行测试需要设置的环境变量包括
六、第一个HelloWorld
1、编写第一个程序
这是名称为“HelloWorld.Java”的简单程序,功能先不用去理解只是首先认识一下Java应用程序的雏形。
Java中程序代码都应当包括在“class”定义中,而且Java还规定程序从某个类的mian方法开始运行。
/**
* 我的第一个Java程序
* @author 张三
* 202X.XX.XX
*/
public class HelloWorld{
/**
* 程序运行的起点方法
*/
public static void main(String[] args) {
// 通过屏幕向用户问好
System.out.println("你好!欢迎进入Java的世界");
}
}
2、运行测试
- 运行Javac编译
- 运行java解释执行
3、Java程序基本结构
4、Java控制台输出
示例代码中有这样一条语句:
System.out.println("你好!欢迎进入Java的世界");
它运行的结果是在屏幕上输出一句话:“你好!欢迎进入Java的世界”。
- System.out 是系统提供的一个对象,可以使用它的println()方法,将一个字符串(String)输出到计算机的标准输出设备上,通常情况下就是显示器上。
- Java语句以“;”作为结束标志,虽然可以在一行内书写多条语句,但是通常应当每一条语句单独占一行。
- Java对大小写是敏感的,换句话说,如果在程序中同时存在,“args”和“Args”将会代表不同的变量定义。
- 用“”双引号包围的字符序列称为字符串,在Java中作为一种系统定义的对象来使用,有很多特别的功能,在后面的课程中会有详细的介绍。
七、集成开发环境
eclipse集成
八、Java语言相关内容
1、Java中常用类库
在Java中提供了大量的公共类库(在Java 6中提供的类和接口有3777个),方便程序员在开发过程中使用,常用的类库有以下几种:
- Java.lang: 核心语言特征(系统默认使用);
- Java.awt: Windows和GUI特性;
- Java.applet: 通用Applet特性;
- Java.net: 网络;
- Java.io: 数据输入和输出;
- Java.util: 各种使用工具特征;
- Java.math: 数学指令;
- Java.security:安全;
- Java.sql: 数据库操作;
- Java.text: 文字处理特征。
2、Java命名规则
类型 | 命名规范 | 例子 |
---|---|---|
包 | 全部小写。标识符用点号“.”分隔开来。为了使包的名字更易读,Sun公司建议包名中的标识符用点号来分隔。Sun公司的标准** java 分配包用标识符java.开头。全局包的名字用机构的Internet保留域名开头。 | package org.tsinghua.java;package com.microsoft.sql; |
类接口 | 类或接口的名字应该使用名词。每个单词第一个字母应该大写。避免使用单词的缩写,除非它的缩写已经广为人知,如HTTP。 | class Hello ;class HelloWorld ;interface Apple ; |
方法 | 第一个单词一般是动词。第一个单词的第一个字母是小写,但是后面每个单词的第一个字母都是大写如果方法返回一个成员变量的值,方法名一般为:“get+成员变量名”,如若返回的值是bool变量,一般以is作为前缀。如果方法修改一个成员变量的值,方法名一般为:“set + 成员变量名”。 | getName();setName();isFirst(); |
变量 | 第一个字母小写,中间单词的第一个字母大写。不要用“_”或“&”作为第一个字母。尽量使用短而且具有意义的单词。单字符的变量名一般只用于生命期非常短暂的变量。i,j,k,m,n一般用于integers;c,d,e一般用于characters。如果变量是集合,则变量名应用复数。命名组件采用匈牙利命名法,所有前缀均应遵循同一个组件名称缩写列表。 | String myName;int[] students;int i;int n;char c;Button btNew;(bt是Button的缩写) |
常量 | 所有常量名均全部大写,单词间以“_”隔开。 | int MAX_NUM; |
3、Java程序注释
注释是写给程序员看的
Java程序中可以使用3种形式的注释:
3.1、单行注释
从“//”开始到本行结束的所有字符均作为注释而被忽略。主要用在方法内部、对代码、变量、流程等进行说明。注释占据一行
// text
3.2、多行注释
从“/”到“/”之间所有字符被忽略。主要用来描述文件、类、方法、算法等。一般用在文档和方法的前面,也可以放在文档的任何地方。以“/”开头,“/”结尾,例如:
/*
* 注释
*/
3.3、文档注释
一般用在类、方法和变量上面,用来描述其作用。注释后,鼠标放在类和变量上面会自动显示出我们注释的内容,注释的内容被包含进javadoc程序自动生成的文档中
/**
* 这是一个文档的注释
*/
public void sum() {
}
4、Java编辑期和运行期(扩展)
Java程序在从编写到运行过程中要经历两个时期:
- 编译期
- 运行期
更多参考:https://www.163.com/dy/article/FHO2RJ9805319WXB.html
思维导图
本文来自博客园,作者:icui4cu,转载请注明原文链接:https://www.cnblogs.com/icui4cu/p/18725159