java基础01

目录

一、课程说明

1.1课程简介

1.2课程收获

二、编程入门

2.1 计算机普及

2.2计算机鼻祖

2.2.1阿兰·图灵(Alan Turing)

2.2.2冯·诺依曼(John von Neumann)

2.3 操作系统普及

2.4 万维网普及

三、Java语言的应用场景

3.1 JavaEE

3.2大数据

3.3 Android

四、软件开发介绍

4.1 软件

4.2人机交互方式

4.2.1图形化界面(Graphical User Interface GUI)

4.2.2常用的DOS命令

五、计算机编程语言介绍

5.1什么是计算机语言

5.1.1第一代语言

5.1.2第二代语言

5.1.3第三代语言

5.2 Java为什么这么牛逼

5.2.1 应用领域广泛

 5.2.2 底层基础语言、可发展空间广泛

 5.2.3 Java风靡全球30年,始终位居编程语言之首

六、Java初体验

6.1我和Java的第一次接触

6.1.1发展历程

6.1.2Java开发语言存在的意义

6.2 Java的特性与优势

6.2.1 简单性

6.2.2 面向对象

6.2.3 可移植性(跨平台性)

6.2.4 高性能

6.2.5 分布式

6.2.6 动态性

6.2.7 多线程

6.2.8 安全性

6.2.9 健壮性

6.3 Java版本

6.3.1 JAVA SE

6.3.2 JAVA EE

七、常用的Java开发工具

7.1文本编辑工具

7.2 Java集成开发环境(IDE):

7.2.1 JBuilder

7.2.2 NetBeans

7.2.3 Eclipse

7.2.4 MyEclipse

7.2.5 IntelliJ IDEA

八、Java运行机制及运行过程

8.1跨平台性(Java特点)

8.2 Java两种核心机制

8.2.1 Java虚拟机

8.2.2 核心机制—垃圾回收

九、Java的开发环境搭建

9.1明确什么是JDK, JRE

9.2什么是JDK,JRE

9.3 Java语言的环境搭建:JDK、JRE、JVM关系

9.4下载并安装JDK

9.5配置环境变量 path

9.5.1配置原因

十、开发体验HelloWorld

10.1步骤

10.1.1步骤一:编写

10.1.2步骤二:编译

10.1.3步骤三:运行

10.2常见问题及解决办法

10.2.1源文件名不存在或者写错

10.2.2声明为public的类应与文件名一致,否知编译失败

10.2.3小总结

10.3程序执行过程

十一、注释(单行、多行、文档)

11.1什么是注释

11.2注释分类

11.2.1格式

11.2.2操作方式

11.2.3 Java API的文档

11.3良好的编程风格

11.3.1正确的注释和注释风格

11.3.2正确的缩进和空白

11.3.3块的风格

十二、关键字与标识符

12.1关键字

12.1.1 Java中的关键字解读

12.1.2 Java中的关键字一览

12.2 Java中的标识符

12.2.1什么是标识符

12.2.2标识符的命名规则

12.2.3合法标识符

12.2.4非法标识符

12.2.5标识符命名建议

十三、变量

13.1初识变量

13.1.1什么是变量

13.1.2变量存储数据的语法格式

13.1.3 实操

13.2浅谈数据类型

13.2.1 为什么要有数据类型的存在

13.2.2 常用的数据类型

13.3变量使用总结与注意事项

13.3.1变量的操作步骤(重点)

13.3.2变量的注意事项

13.4随堂练习

13.4.1 练习一

13.4.2 练习二

13.5转义序列符号

13.5.1什么是转义序列符号

13.5.2转义序列符号的使用

13.5.3转义序列符号的随堂练习

十四、运算符

14.1初识运算符

14.1.1什么是运算符

14.1.2运算符的分类

14.2算术运算符

14.2.1算术运算符的作用

14.2.3算术运算符的随堂练习

14.3赋值运算符号

14.3.1赋值运算符号的作用

14.3.2赋值运算符号的分类

14.3.3赋值运算符的随堂练习

14.4关系运算符号

14.4.1关系运算符的作用

14.4.2关系运算符的分类

14.4.3关系运算符的随堂练习

14.5逻辑运算符号

14.5.1逻辑运算符的作用

14.5.2逻辑运算符的分类

14.5.3随堂练习

14.6三目运算符号

14.6.1 什么是三目运算符

14.6.2 三目运算符的执行流程

14.6.3 三目运算符的结论

14.6.4 什么时候使用三目运算符

14.7运算符号的优先级

14.7.1什么是运算符号的优先级别

14.7.2运算符号优先级别的顺序排布

14.7.3结论

十五、键盘接收用户输入

15.1需求

15.2拓展

15.3程序和人的交互

15.4键盘接收用户输入的操作步骤

15.5键盘接收用户输入的使用

15.6使用键盘接收用户输入的时机

15.7使用键盘接收用户输入的小数和字符串

15.8 随堂练习

15.8.1练习一

15.8.2练习二


一、课程说明

1.1课程简介

  • 编程入门(计算机普及/操作系统/万维网)
  • Java语言的应用场景
  • Java基础阶段知识结构拆解(图谱/课程概述/课程体系)
  • 软件开发介绍
  • 计算机编程语言介绍
  • Java语言概述
  • Java运行机制及运行过程
  • Java的开发环境搭建
  • 开发体验HelloWorld
  • 常见问题及解决办法
  • 注释
  • 良好的编程风格
  • 常用的Java开发工具
  • 关键字
  • 标识符
  • 变量
  • 运算符
  • 键盘接收用户输入

1.2课程收获

  • 可了解Java是什么
  • 可了解Java的特性与优势
  • 可掌握常用的DOS命令
  • 可掌握JDK的作用与安装
  • 可掌握Java程序的加载流程与执行过程
  • 可了解注释的作用
  • 可了解JDK,JRE,JVM的关系
  • 可了解环境变量path配置及其作用
  • 可了解Java程序的编写、编译、运行步骤
  • 配置环境、编译、运行各个步骤中常见的错误以及解决方法
  • 可理解关键字和标识符的作用
  • 可理解变量与运算符的作用
  • 可理解从键盘收入的过程

二、编程入门

2.1 计算机普及

2.1.1 整体概述

        计算机包括硬件(hardware)软件(software)两部分。硬件包括计算机中可以看得见的物理部分。而软件提供看不见的指令。这些指令控制硬件并且使得硬件完成特定的任务。

  • 程序设计

        定义:创建(或开发)软件。软件包含了指令,告诉计算机做什么。

        应用场景:软件遍布我们周围。除了个人计算机,飞机、汽车、手机甚至烤面包机中,同样运行着软件。

  • 程序设计语言

        软件开发人员在称为程序设计语言的强大工具的帮助下创建软件。

  • 如何选择该学习哪种程序设计语言?

        程序设计语言有很多种,每种语言都是为了实现某个特定的目的而发明的。

        你会困惑哪种语言是最好的。事实上,没有“最好”的语言。每种语言都有它的长处和短处。

        经验丰富的程序员知道各种语言擅长的应用场景,因此,会尽可能的掌握各种不同的程序设计语言。

        如果你掌握了一种编程语言,应该会更容易上手其它的编程语言。关键是学习如何使用程序设计方法来解决问题。这也是本套课程的主旨。

2.1.2计算机硬件介绍

 

                                                                                计算机工作流程

        冯·诺依曼体系结构是现代计算机的基础,现在大多计算机仍是冯·诺依曼计算机的组 织结构,只是作了一些改进而已,并没有从根本上突破冯体系结构的束缚。冯·诺依曼 也因此被人们称为“计算机之父”。

2.1.2.1 中央处理处理器

        中央处理器(Central Processing Unit,CPU)是计算机的大脑。它从内存中获取指令,然后执行这些指令。

        包括:控制单元(control unit)和算术/逻辑单元(arithmetic/login unit)。

        控制单元:用于控制和协调其他组件的动作。

        算术/逻辑单元:用于完成数值运算(+、-、*、/)和逻辑运算(比较)。

        每台计算机都有一个内部时钟,该时钟以固定速度发射电子脉冲。时钟速度越快,在给 定的时间段内执行的指令就越多。速度的计量单位是赫兹(Hz),1Hz相当于每秒1个脉 冲。随着CPU速度不断提高,目前以千兆赫(GHz)来表述。

        最初一个CPU只有一个核(core)。核是处理器中实现指令读取和执行的部分。一个多核CPU是一个具有两个或者更多独立核的组件。可提高CPU的处理能力

2.1.2.2 存储设备

        内存中的信息在断电时会丢失。那我们可以考虑将程序和数据永久的保存在存储设备上。当计算机 确实需要这些数据时,再移入内存,因为从内存中读取比从存储设备读取要快得多。

存储设备主要有以下三种:

  • 磁盘驱动器

        每台计算机至少有一个硬盘驱动器。硬盘(hard disk) 用于永久的保存数据和程序。

 

  • 光盘驱动器(CD和DVD)

CD的容量可达700MB。

DVD的容量可达4.7GB。

  • USB闪存驱动器

USB: Universal Serial Bus,通用串行总线。

可以使用USB将打印机、数码相机、鼠标、外部硬盘驱动器连接到计算机上。

USB闪存驱动器很小,可用于存储和传输数据的设备。

2.1.2.3 内存

比特(bit)和字节(byte)

在讨论内存前,先清楚数据是如何存储在计算机中的。

计算机就是一系列的电路开关。每个开关存在两种状态:关(off)和开(on)。如果电路 是开的,它的值是1。如果电路是关的,它的值是0。

一个0或者一个1存储为一个比特(bit),是计算机中最小的存储单位。

计算机中是最基本的存储单元是字节(byte) 。每个字节由8个比特构成。

计算机的存储能力是以字节和多字节来衡量的。如下:

千字节(kilobyte,KB) = 1024B

兆字节(megabyte,MB) = 1024KB

千兆字节(gigabyte,GB) = 1024MB

万亿字节(terabyte,TB) = 1024GB

        内存(也叫 Random-Access Memory,RAM):由一个有序的字节序列组成,用于存储程序及程序需要的数据。

        一个程序和它的数据在被CPU执行前必须移到计算机的内存中。

        每个字节都有一个唯一的地址。见右图。使用这个地址确定字节的位置,以便于存储和获取数据。

        一个计算机具有的RAM越多,它的运行速度越快,但是此规律是有限制的。

内存与CPU一样,也构建在表面嵌有数百万晶体管的硅半导体芯片上。但内存芯片更简单、更低速、更便宜。

 

 

        实测发现:内存存取数据的速度比硬盘的存取速度快10倍,在某些环境里,硬盘和内存之间的速度差距可能会更大。而CPU的速度比内存不知还要快多少倍。当我们把程序从硬盘放到内存以后,CPU就直接在内存运行程序,这样比CPU直接在硬盘运行程序就要快很多。

        内存解决了一部分CPU运行过快,而硬盘数据存取太慢的问题。 提高了我们的电脑的运行速度。内存就如同一条“高速车道”一般,数据由传输速度较慢的硬盘通过这条高速车道传送至CPU进行处理!

但内存是带电存储的(一旦断电数据就会消失),而且容量有限,所以要长时间储存程序或数据就需要使用硬盘。

        内存在这里起了两个作用:

1. 保存从硬盘读取的数据,提供给CPU使用

2. 保存CPU的一些临时执行结果,以便CPU下次使用或保存到硬盘

2.1.2.4 输入输出设备

        常见的输入设备:键盘(keyboard)和鼠标(mouse)

        常见的输出设备:显示器(monitor)和打印机(printer)

        显示器屏幕分辨率:是指显示设备水平和垂直方向上显示的像素(px)数。

分辨率可以手工设置。

分辨率越高,图像越锐化、越清晰。

计算公式:像素密度=√[(长度像素数)^2+(宽度像素数)^2]/屏幕尺寸

2.2计算机鼻祖

2.2.1阿兰·图灵(Alan Turing)

        最近半个世纪以来,世界计算机科学界的重大进步,离不开图灵等人的理论奠基作用和多方面的开创性研究成果。图灵是当之无愧的计算机科学和人工智能之父。甚至认为,他在技术上的贡献及对未来世界的影响几乎可与牛顿、爱因斯坦等巨人比肩。

        图灵论文中的“用有限的指令和有限的存储空间可算尽一切可算之物”理论让当时所有的科学家震惊

        美国计算机学会(ACM)的年度“图灵奖”,自从1966年设立以来, 一直是世界计算机科学领域的最高荣誉,相当于计算机科学界的诺贝尔奖。至今,中国人只有姚期智院士获该奖项。

2.2.2冯·诺依曼(John von Neumann)

        20世纪最重要的数学家之一,在现代计算机、博弈论、核武器和生化武器等诸多领域内有杰出建树的最伟大的科学全才之一,被后人称为“计算机之父”和“博弈论之父”。

        同样有着“计算机之父”称号的冯·诺依曼的助手弗兰克尔在一封信中写到:“……计算机的基本概念属于图灵。按照我的看法,冯·诺依曼的基本作用是使世界认识了由图灵引入的计算机基本概念……”

        根据冯诺依曼体系结构构成的计算机,必须具有如下功能:

  1.         把需要的程序和数据送至计算机中。

        必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。

        能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力。

        能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作。

  •         能够按照要求将处理结果输出给用户。

2.3 操作系统普及

        操作系统(Operating System)是运行在计算机上的最重要的程序,它可以管理和控制计算机的活动。

        硬件、操作系统、应用程序和用户之间的关系如右图。

        操作系统的主要任务:

  • 控制和监视系统的活动
  • 分配和调配系统资源
  • 调度操作

2.4 万维网普及

        万维网(World Wide Web,www,环球信息网)常简称为Web,发明者蒂姆·伯纳斯·李。分为Web客户端和Web服务器程序。 WWW可以让Web客户端(常用浏览器)访问浏览Web服务器上的页面。 是一个由许多互相链接的超文本组成的系统,通过互联网访问。在这个系统中,每个有用的事物,称为一样“资源”;并且由一个全局“统一资源标识符”(URI)标识;这些资源通过超文本传输协议(Hypertext Transfer Protocol)传送给用户,而后者通过点击链接来获得资源。

B/S、                  C/S

Browser Server  Client Server

万维网 因特网 互联网

        万维网是无数个网络站点和网页的集合,它们在一起构成了因特网Internet最主要的部分(因特网也包括电子邮件、Usenet以及新闻组)。它实际上是多媒体的集合,是由超级链接连接而成的。我们通常通过网络浏览器上网观看的,就是万维网的内容。

三、Java语言的应用场景

        Java基础是学习JavaEE、大数据、Android开发的基石!

3.1 JavaEE

3.2大数据

3.3 Android

        从Java的应用领域来分,Java语言的应用方向主要表现在以下几个方面:

        • 企业级应用主要指复杂的大企业的软件系统、各种类型的网站。Java的安全机制以及 它的跨平台的优势,使它在分布式系统领域开发中有广泛应用。应用领域包括金融、电 信、交通、电子商务等。

产品:京东 淘宝 支付宝

传统项目:学生 就业 OA JSP+Servlet+JavaBean

受众群体-技术很复杂(高并发,高可靠,高可用-分布式微服务)

        • Android平台应用Android应用程序使用Java语言编写。Android开发水平的高低很大程度上取决于Java语言核心能力是否扎实。

        • 大数据平台开发各类框架有Hadoop,spark,storm,flink等,就这类技术生态圈来讲,还有各种中间件如flume,kafka,sqoop等等 ,这些框架以及工具大多数是用Java编写而成,但提供诸如Java,scala,Python,R等各种语言API供编程。

        • 移动领域应用:主要表现在消费和嵌入式领域,是指在各种小型设备上的应用,包括手机、PDA、机顶盒、汽车通信设备等。

四、软件开发介绍

4.1 软件

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

4.2人机交互方式

4.2.1图形化界面(Graphical User Interface GUI)

        这种方式简单直观,使用者易于接受,容易上手操作。

        命令行方式(Command Line Interface CLI):需要有一个控制台,输 入特定的指令,让计算机完成一些操作。较为麻烦,需要记录住一些命令

4.2.2常用的DOS命令

4.2.2.1什么是命令

        为达到某种结果,上级对下级发布的指挥性或者强制性的指示。

4.2.2.2什么是DOS命令

        它是操作系统为用户实现某种功能而提供的手段,DOS的中的每一个命令实际上都是代表着一段程序。

        我们来看一个案例,打开DOS命令窗口。

4.2.2.3初识DOS命令窗口

第一种方式:Win + R,然后输入cmd,最后按回车。

 第二种方式:在地址栏中输入cmd,然后按回车,则打开当前目录所在的DOS命令窗口

dir : 列出当前目录下的文件以及文件夹

md : 创建目录

rd : 删除目录

cd : 进入指定目录

cd.. : 退回到上一级目录

cd\: 退回到根目录

del : 删除文件

exit : 退出 dos 命令行

补充 :echo javase>1.doc 

  • 常用快捷键

← →:移动光标

↑ ↓:调阅历史操作命令

Delete和Backspace:删除字符

五、计算机编程语言介绍

5.1什么是计算机语言

        语言:是人与人之间用于沟通的一种方式。例如:中国人与中国人用普通话沟通。而中国人要和英国人交流,就要学习英语。

        计算机语言:人与计算机交流的方式。

        如果人要与计算机交流,那么就要学习计算机语言。

        计算机语言有很多种。如:C ,C++ ,Java ,PHP , Kotlin,Python,Scala等。

5.1.1第一代语言

        机器语言:指令以二进制代码形式存在。 00111 01101111010

5.1.2第二代语言

        汇编语言:使用助记符表示一条机器指令。

5.1.3第三代语言

高级语言

C、Pascal、Fortran面向过程的语言

C++面向过程/面向对象

Java跨平台的纯面向对象的语言

.NET跨语言的平台

Python、Scala…

5.2 Java为什么这么牛逼

5.2.1 应用领域广泛

 5.2.2 底层基础语言、可发展空间广泛

 5.2.3 Java风靡全球30年,始终位居编程语言之首

六、Java初体验

6.1我和Java的第一次接触

Java之父James Gosling团队在开发”Green”项目时,

是SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言。

        是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行。这些Java程序被称为Java小程序(applet)。applet使用现代的图形用户界面与Web用户进行交互。 applet内嵌在HTML代码中。

        随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。后台开发:Java、PHP、Python、Go、Node.js

        发现C缺少垃圾回收系统,还有可移植的安全性、分布程序设计和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。

        Java确实是从C语言和C++语言继承了许多成份,甚至可以将Java看成是类C语言发展和衍生的产物。比如Java语言的变量声明,操作符形式,参数传递,流程控制等方面和C语言、C++语言完全相同。但同时,Java是一个纯粹的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间。JDK1.5又引入了泛型编程(GenericProgramming)、类型安全的枚举、不定长参数和自动装/拆箱

6.1.1发展历程

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

6.1.2Java开发语言存在的意义

人机交互

6.2 Java的特性与优势

6.2.1 简单性

        Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。

6.2.2 面向对象

        Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。

6.2.3 可移植性(跨平台性)

        这是JAVA的一个重要的优势。JAVA代码或者说字节码、二进制码可以跨平台的移植,而不用管具体的操作系统和硬件环境。

        “一次编写,随处运行“write once, run anywhere”

        JAVA在设计时就很注重移植和跨平台性。比如:JAVAInt永远都是32位。不像c++可能是1632,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。

6.2.4 高性能

        JIT(JUST IN TIME)即时编译。将一些热点字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使JAVA程序的执行效率大大提高,某些代码甚至接近c++的效率。随着这种技术的一天天完善,也许有一天会超越编译代码的效率。

6.2.5 分布式

        JAVA是为internet的分布式环境设计的,因为他能够处理tcp/ip协议。事实上,通过url访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,remote method Invocation),使程序能够通过网络调用方法。

6.2.6 动态性

        就是在需要时将某些代码添加到正在运行的程序中。反射机制。当需要把某些代码添加到正在运行的程序中时,动态性是一个非常重要的特性。Java的动态特性是其面向对象设计方法的扩展。它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的

6.2.7 多线程

        多线程的使用可以带来更好的交互响应和实时行为。多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。

6.2.8 安全性

        Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以构建防病毒,防篡改的系统。

6.2.9 健壮性

        Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。Java系统仔细检测对内存的每次访问,确认它是合法的,而且不致引起任何问题。不过,即使Java程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该例外抛弃。再通过异常处理机制,程序就会发现这类例外,并加以处理。

        Java风云变幻27年,足以证明它是一门成功的语言,而它的成功就是源于它有着丰富的特性。

6.3 Java版本

6.3.1 JAVA SE

JAVA的标准版,是整个JAVA的基础和核心,这是我们主要学习的一个部分,也是JAVAEE技术的基础,主要用于开发桌面应用程序。会后可以做一些简单的桌面应用。如:扫雷,连连看等。

6.3.2 JAVA EE

JAVA的企业版,它提 供了企业级应用开发的完整解决方案,比如开发网站,还有企业的一些应用系统,是JAVA技术应用最广泛的领域。主要还是偏向于WEB的开发,而JAVA EE的基础就是JAVA SE

所以我们在学习JAVA SE的时候,基础一定要打好,因为这是最基本的,也是最核心的。

        经过这么多的介绍,相信大家已经很明白,学习Java的顺序就是先学好JAVASE,然后学习JAVA EE。学习编程的捷径就是在于多思考,多练习,多出错。

        出错是好事,这样可以了解更多的异常情况和突发情况,可以为日后工作中出现问题时及时解决积累足够的经验。

七、常用的Java开发工具

7.1文本编辑工具

记事本

UltraEdit

EditPlus

TextPad

NotePad

7.2 Java集成开发环境(IDE):

7.2.1 JBuilder

JBuilder是Borland公司开发的针对java的开发工具,使用JBuilder将可以快速,有效的开发各类java应用。 Jbuilder支持各种应用服务器。Jbuilder与Inprise Application Server紧密集成,同时支持WebLogicServer,支持EJB 1.1和EJB 2.0, 可以快速开发J2EE的电子商务应用。支持远程调试和多线程调试,调试器支持各种JDK版本

7.2.2 NetBeans

NetBeans是一款用Java编写的开源IDE。既可用于Java开发,也支持其他语言,特别是PHP、C/C ++,和HTML5。 NetBeans开发环境提供了丰富的产品文档和培训资源以及

大量的第三方插件。

7.2.3 Eclipse

Eclipse应该是大多数Java程序员使用的第一个IDE。众所周知的、最流行、也最受欢迎的Java开发工具。优点很多:免费、更新快、代码智能化、 ANT构建等,拥有众多插件,完全免费、有中文版、上手比较快。缺点也非常明显,安装插件麻烦、插件对版本要求比较严格。

The Community for Open Innovation and Collaboration | The Eclipse Foundation

7.2.4 MyEclipse

MyEclipse也是一款功能强大的J2EE集成开发环境,由Genuitec公司发布,提供免费版和收费版。但免费版,只能满足基本开发需求

http://www.myeclipsecn.com/

7.2.5 IntelliJ IDEA

IntelliJ IDEA被认为是目前Java开发效率最快的IDE工具。是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格。 它整合了开发过程中实用的众多功能,智能提示错误,强大的调试工具,Ant,JavaEE支持,CVS整合, 最大程度的加快开发的速度。简单而又功能强大。与其他的一些繁冗而复杂的IDE工具有鲜明的对比。

八、Java运行机制及运行过程

8.1跨平台性(Java特点)

        跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write once , Run Anywhere

        原理:只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (JVM Java Virtual Machine) 即可。由JVM来负责Java程序在该系统中的运行。

        因为有了JVM,同一个Java 程序在三个不同的操作系统中都可以执行。这样就实现了Java 程序的跨平台性。

8.2 Java两种核心机制

Java虚拟机 (Java Virtal Machine)

垃圾收集机制 (Garbage Collection)

8.2.1 Java虚拟机

        JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器

        对于不同的平台,有不同的虚拟机。

        只有某平台提供了对应的java虚拟机,java程序才可在此平台运行

        Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行

 

8.2.2 核心机制—垃圾回收

        不再使用的内存空间应回收—— 垃圾回收。

        在C/C++等语言中,由程序员负责回收无用内存。

        Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。

        垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预。

Java程序还会出现内存泄漏和内存溢出问题吗?Yes!言的环

九、Java的开发环境搭建

9.1明确什么是JDK, JRE

下载 JDK

安装 JDK

配置环境变量

path:windows系统执行命令时要搜寻的路径。

验证是否成功:javac java

选择合适的文本编辑器或 IDE 开发

9.2什么是JDK,JRE

JDK(Java Development Kit Java开发工具包)

JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。

        其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等

JRE(Java Runtime Environment Java运行环境)

包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

简单而言,使用JDK的开发工具完成的java程序,交给JRE去运行。

9.3 Java语言的环境搭建:JDK、JRE、JVM关系

 

• JDK = JRE + 开发工具集(例如Javac编译工具等)

• JRE = JVM + Java SE标准类库

9.4下载并安装JDK

官方网址:

www.oracle.com

java.sun.com

安装JDK

傻瓜式安装,下一步即可。

建议:安装路径不要有中文或者空格等特殊符号。

如果操作系统是64位的,软件尽量选择支持64位的(除非软件本身不区分)。

当提示安装 JRE 时,正常在JDK安装时已经装过了,但是为了后续使用Eclipse等开发工具不报错,建议也根据提示安装JRE。

9.5配置环境变量 path

9.5.1配置原因

在dos命令行中敲入javac,出现错误提示:

        错误原因:当前执行的程序在当前目录下如果不存在,windows系统会在系统中已有的一个名为path的环境变量指定的目录中查找。如果仍未找到,会出现以上的错误提示。所以进入到 jdk安装路径\bin目录下,执行javac,会看到javac参数提示信息。

每次执行 java 的工具都要进入到bin目录下,是非常麻烦的。可不可以在任何目录下都可以执行java的工具呢?

        根据windows系统在查找可执行程序的原理,可以将java工具所在路径定义到path 环境变量中,让系统帮我们去找运行执行的程序。

9.5.2配置方法

我的电脑--属性--高级系统设置--环境变量

编辑 path 环境变量,在变量值开始处加上java工具所在目录,后面用 “ ; ”和其他值分隔开即可。

打开DOS命令行,任意目录下敲入javac。如果出现javac 的参数信息,配置成功。

9.5.3配置完path环境变量以后的验证

 

十、开发体验HelloWorld

10.1步骤

1. 将 Java 代码编写到扩展名为 .java 的文件中。

2. 通过 javac 命令对该 java 文件进行编译

3. 通过 java 命令对生成的 class 文件进行

10.1.1步骤一:编写

选择最简单的编辑器:记事本。

敲入代码

class Test{ }

将文件保存成Test.java,这个文件是存放java代码的文件,称为源文件。

• 第一个Java程序

public class Test{

        public static void main(String[] args) {

                System.out.println(“Hello World!”);

        }

}

10.1.2步骤二:编译

        有了java源文件,通过编译器将其编译成JVM可以识别的字节码文件。

        在该源文件目录下,通过javac编译工具对Test.java文件进行编译。

        如果程序没有错误,没有任何提示,但在当前目录下会出现一个Test.class文件,该文件称为字节码文件,也是可以执行的java的程序。

10.1.3步骤三:运行

        有了可执行的java程序(Test.class字节码文件)

        通过运行工具java.exe对字节码文件进行执行。

        出现提示:缺少一个名称为main的方法。

        因为一个程序的执行需要一个起始点或者入口,所以在Test类中的加入

         public static void main(String[] args){ }

        对修改后的Test.java源文件需要重新编译,生成新的class文件后,再进行执行。

        发现没有编译失败,但也没有任何效果,因为并没有告诉JVM要帮我们做什么事情,也就是没有可以具体执行的语句。

        想要和JVM来个互动,只要在main方法中加入一句System.out.println(“Hello World");因为程序进行改动,所以再重新编译,运行即可。

10.2常见问题及解决办法

10.2.1源文件名不存在或者写错

当前路径错误

后缀名隐藏问题

类文件名写错,尤其文件名与类名不一致时,要小心

10.2.2声明为public的类应与文件名一致,否知编译失败

        编译失败,注意错误出现的行数,再到源代码中指定位置改错

public class与class区别(重点、难点)

        1.一个Java源文件中,类中前面的public修饰符是可有可无的。

        2.当一个类前面编写public修饰符,则文件名必须与类名一致,否则就出现编译错误。

        3.当一个类前面没有编写public修饰符,则文件名可以与类名不一致,编译成功,并且会自动生成对应类名的字节码文件(可以运行字节码文件,只要有入口)

        4.在一个Java源文件中可以编写任意多个类,当编译成功后,会自动生成对应类名的个数的字节码文件,并且可以运行字节码文件(必须保证有入口)

  • 注意:大多数情况下,一个Java源文件中只编写一个类。

        5.一个Java源文件中最多只能有一个类前面编写public修饰符

10.2.3小总结

        学习编程最容易犯的错是语法错误。Java要求你必须按照语法规则编写代码。

        如果你的程序违反了语法规则,例如:忘记了分号、大括号、引号,或者拼错了单词,java编译器都会报语法错误。尝试着去看懂编译器会报告的错误信息。

        Java源文件以“java”为扩展名。源文件的基本组成部分是类(class),如本例中的HelloWorld类。

        Java应用程序的执行入口是main()方法。它有固定的书写格式:

        public static void main(String[] args) {...}

        Java语言严格区分大小写。

        Java方法由一条条语句构成,每个语句以“;”结束。

        大括号都是成对出现的,缺一不可。

        一个源文件中最多只能有一个public类。其它类的个数不限,如果源文件包含一个public类,则文件名必须按该类名命名。

10.3程序执行过程

十一、注释(单行、多行、文档)

11.1什么是注释

类似于现实生活中说明书,用于解释说明程序的。

//说明:这是一个非常简单的程序,只是用来向外输出“欢迎大家来学习Java”
class Notes {
    //这是一个main方法,是程序执行的唯一入口,没有main方法程序就无法执行
  public static void main(String args[]){
      //输出语句,用来对外输出指定内容的
      System.out.println("欢迎大家来学习Java");
  }
}

        被注释的内容,在程序中不运行,只是增加程序的可读性。

        平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到一个注释了,注释就类似于我们上学时候写的笔记,我们看着笔记就知道自己写的什么东西了!在程序中也是如此。

11.2注释分类

  • 单行注释
    •  //
    • 表示对正斜杠之后的当前这行内容进行注释
  • 多行注释
    • 以/*开头,以*/结尾,中间编写注释内容

class Notes_02 {
    /*
    这是一个main方法,是程序执行的唯一入口,没有main方法程序就无法执行
    必须要写
    一定要记住
     */
            public static void main(String args[]){
                //输出语句,用来对外输出指定内容的
               System.out.println("欢迎大家来学习Java");    

        }
}

  • 文档注释
    • 以/**开头,以*/结尾,中间编写注释内容
class Notes_03 {
    /**
    这是一个main方法,是程序执行的唯一入口,没有main方法程序就无法执行
    必须要写
    一定要记住
     */
   public static void main(String args[]){
        //输出语句,用来对外输出指定内容的
        System.out.println("欢迎大家来学习Java");
    }
}
 

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

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

11.2.1格式

/**

@author 指定java程序的作者

@version 指定源文件的版本

*/

        注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。

11.2.2操作方式

 

11.2.3 Java API的文档

        API (Application Programming Interface,应用程序编程接口)是 Java 提供的基本编程接口。

        Java语言提供了大量的基础类,因此 Oracle 也为这些基础类提供了相应的API文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法。

        下载API:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

        Additional Resources-Java SE 8 Documentation下载。

 

11.3良好的编程风格

11.3.1正确的注释和注释风格

        使用文档注释来注释整个类或整个方法。

        如果注释方法中的某一个步骤,使用单行或多行注释。

11.3.2正确的缩进和空白

        使用一次tab操作,实现缩进

        运算符两边习惯性各加一个空格。比如:2 + 4 * 5。

11.3.3块的风格

        Java API 源代码选择了行尾风格

十二、关键字与标识符

12.1关键字

12.1.1 Java中的关键字解读

  • 在Java中,具有一定特殊含义的,并且全部小写的称之为关键字。
//说明:这是一个非常简单的程序,只是用来向外输出“欢迎大家来学习Java”
class Notes {
    //这是一个main方法,是程序执行的唯一入口,没有main方法程序就无法执行
  public static void main(String args[]){
      //输出语句,用来对外输出指定内容的
      System.out.println("欢迎大家来学习Java");
  }
}

在Java中,具有一定特殊含义的,并且全部小写的称之为关键字。

12.1.2 Java中的关键字一览

这些看起来非常的多,但是随着我们以后的学习我们都会用到,所以完全不用担心自己看不懂。

  • 常用的关键字,比如:
    • public  class  static  void ........

12.2 Java中的标识符

12.2.1什么是标识符

每个人从出生开始就有一个名字,我门生活中的所有事物也都有名字,这名字是谁规定呢?回答是:造物主,谁生产出来的谁规定名字,在我们的程序中也不例外。

我门自己编写一个程序时,也要给这个程序起一个名字,比如我们的HelloWorld程序。

这个Hello就是这个程序的名字,其实是一个类的名字,会发现这个名字是我们写程序时自己命名的。

class Hello{

        public static void main(String[] args){

                System.out.println("Hello,World!");

        }

}

  • 在Java中,凡是自己可以起名字的地方,都称之为标识符。
    • 比如:对类名、变量名、方法名、参数名等的修饰。

12.2.2标识符的命名规则

由26个英文字母大小写,0-9 ,_或 $ 组成

数字不可以开头。

不可以使用关键字和保留字,但能包含关键字和保留字。

Java中严格区分大小写,长度无限制。

标识符不能包含空格。

12.2.3合法标识符

  • 比如:aa     Abc   _abc     $xyz     abc     a123      ab_cd       Hello$World     abc       ABC

12.2.4非法标识符

12.2.5标识符命名建议

  • 建议
  1. 标识符要见名知意,也就是:编写单词
    1. 比如:phone     age     year        email   .......
  2. 建议:类名每个单词首字母大写
    1. 比如:Hello     Homework        Student     .......
  3. 3.建议:长度不要超过15个字符
    1. 比如:HelloWorld       arguments----- >args       
  4. 建议:变量名、方法名、参数名等采用驼峰命名法
    1. 比如:name      firstName   print       getAge

十三、变量

13.1初识变量

13.1.1什么是变量

  • 在Java中,利用声明的方式将某个数据保存下来供程序使用,并且这个数据是可以根据自己需求发生改变的。
    • 18  3.14    北京市    Java软件工程师  3楼1教室  ........

现在初步了解了变量的作用,那接下来就利用变量完成数据的存储。但是这个里面牵连出另外一个问题,就是如何用变量存储数据呢?有没有规定的语法格式?

13.1.2变量存储数据的语法格式

  • 第一步:声明变量
    • 声明变量的语法格式:数据类型 变量名称;​​​​​​​
      • 比如:int a;
  • 第二步:赋值
    • 注意事项:
      • 1.在Java中,赋值使用等号完成,并且将等号右侧的值赋给等号左侧的变量名称。 
      • 2.赋值语法格式:变量名称 = 值;
      • 3.比如:a = 18;

13.1.3 实操

  • 把18用变量保存起来,放在程序中使用

接下来去给大家解释变量存储数据的语法格式中的数据类型……

13.2浅谈数据类型

13.2.1 为什么要有数据类型的存在

  • 因为数据是有明确的类型划分的,为了确保变量保留的数据其类型的唯一性,要使用数据类型进行变量的修饰。​​​​​​​
    • 比如:18(整型)、3.14(小数点型)

​​​​​​​ 

  •  其实通过这样的已经验证过正确的程序可以知道。在程序中使用变量保留数据时,必须要在变量名称之前指定其变量的数据类型,以此来表示当前变量存储的是什么样类型的数据,只有这样在程序中才能合法使用变量去保留数据。
  • 这也就解释清楚了一点,就是为什么在变量存储数据的语法格式中,声明变量的语法格式:数据类型 变量名称;因为要为变量指定其数据类型,以此来表示当前变量存储的是什么样类型的数据。

在上述的操作中,整型的数据可以用int来修饰,那么小数点型的数据用什么样的数据类型来修饰呢?

13.2.2 常用的数据类型

  • 注意:数据类型是Java基础中非常重要的一块内容之一,现在讲的数据类型只是用来辅助理解变量的,变量才是重点,数据类型在变量之后还会重点展开来讲的。
  • 整数类型int​​​​​​​
    • 比如:100       123456      -1              9999999        0

 

  • 浮点类型(小数点型)double​​​​​​​
    • 比如:0.001     89.17       -5.2359164      7983125.0316   

  • 字符串类型String​​​​​​​
    • 可以存放0个、1个或多个值,但是必须使用英文双引号引起来​​​​​​​
      • 比如:"" 、"张" 、"张三"、"HelloWorld" 、"192.168.1.136" 、"0.1"

友情提示:

13.3变量使用总结与注意事项

13.3.1变量的操作步骤(重点)

第一步:声明变量

  • 声明变量的语法格式:数据类型 变量名称;
    • ​​​​​​​比如:int a;

第二步:赋值

  • 注意事项:​​​​​​​
    • Java中,赋值使用=完成,并且将等号右侧的值赋给等号左侧的变量名称。
    • 赋值语法格式:变量名称 = 值;
    • 比如:a = 18;

第三步:使用

  • 注意事项:​​​​​​​
    • 暂时使用是输出变量名称中的值

13.3.2变量的注意事项

  • 变量必须先声明再使用

13.4随堂练习

13.4.1 练习一

题目需求

  • 将以下数据存放在变量中,并输出变量中的值​​​​​​​
    • 张三
    • 男的 
    • 19
    • 打篮球
    • 1.98 
    • 210

 

  • 拓展:让程序输出以下效果

 ​​​​​​​

  结论

  • 变量的声明和赋值可分开进行
  • 变量声明的同时也可赋值
  • 英文""的作用是原样输出
  • +是连接符,用于变量的连接

13.4.2 练习二

题目需求

  • 将以下数据存放在变量中,并输出变量中的值​​​​​​​
    • 北京市海淀区 
    • Java语言  
    • 6楼2教室 
    • 2021.11 

拓展

  • 在Java中可以一次声明多个相同类型的变量,之间使用英文逗号隔开。​​​​​​​
    • 语法格式:数据类型 变量名1,变量名2,变量名3,……

  • 还可以一次声明个相同类型的变量,并且同时完成赋值。​​​​​​​
    • 语法格式: 数据类型 变量名1 = 值1,变量名2 = 值2,变量名3 = 值3,……

  • 只编写一个输出语句,来输出4个变量的值,并且运行后依然显示4行输出。

\n,换行,类似于敲一次回车键。

  • 对程序进行改造,在只编写一个输出语句,来输出4个变量的值,并且运行后依然显示4行输出的基础上。要求程序的运行达到以下效果。

说明

  • 变量声明的说明

        通常使用“声明的同时并赋值”的这种方式。

结论

  • 变量的声明和赋值可分开进行
  • 变量声明的同时也可赋值
  • 英文""的作用是原样输出
  • +是连接符(),用于变量的连接

13.5转义序列符号

13.5.1什么是转义序列符号

  • \

对字母进行转义,赋予新的功能。

13.5.2转义序列符号的使用

  • \n ​​​​​​​
    • 表示换一行,类似于按一次回车键。

  • \t​​​​​​​
    • 表示水平制表符,类似于按一次Tab键。

  • \"​​​​​​​
    • 表示输出一个双引号。

  • \'​​​​​​​
    • 表示输出一个单引号。

  • \\​​​​​​​
    • 表示输出一个反斜杠。

  • 拓展

转义序列字符的使用有很多种,上面的操作只是最常见的几种。

13.5.3转义序列符号的随堂练习

题目需求

  • 使用目前所学知识点完成如下效果

  • 改进

十四、运算符

14.1初识运算符

14.1.1什么是运算符

  • 变量进行运算时,所用到的符号就是运算符。

14.1.2运算符的分类

  • 算术运算符​​​​​​​
    • +   -   *   /   %(求余数,取模)   ++  --
  • 赋值运算符​​​​​​​
    • =   +=  -=  *=  /=
  • 关系运算符​​​​​​​
    • >   >=  <   <=  ==  !=
  • 逻辑运算符​​​​​​​
    • &&  ||  !
  • 三目运算符​​​​​​​
    • ?  :

14.2算术运算符

14.2.1算术运算符的作用

  • 用于完成变量的加、减、乘、除、取余、运算的。

14.2.2算术运算符分类

  • +   -   *   /   %(求余数,取模)   ++  --​​​​​​​
    • +(加号)

  • 操作数是指运算符号两边的数据
  • 结论:由实操案例可以知道,运算符就是用于变量运算的,相反如果在程序中涉及到变量的运算,那么必须要使用运算符号,比如说计算两个数的和,就要用到算术运算符中的+
  • ​​​​​​​算术运算符的作用就是用于完成变量的加、减、乘、除、取余、运算的。
  • 拓展​​​​​​​
    • 作用:除了可以求和还可以连接(拼接)。   

  • 结论:当是字符串进行拼接时,变量值的位置不同,则结果不同。
  • -(减号)

  • *(乘法)

  •  /(除法)

  •  %(取余)

​​​​​​​

  • ++(自增运算符)
    • 表示自身加1

                int a = 5;

                int b = ++a + 1;// a = 6, b = 7

++又分为 “前置++”,和“后置++”

前置++:将++编写在变量名称前面;先自身加1,然后再做其他运算

        int a = 5;

        int b = ++a * 2; //a = 6 b = 12

后置++:将++编写在变量名称后面;先做其他运算,然后再自身加1

        int x = 10;

        int y = x++ * 3; //x = 11  y = 30

​​​​​​​

  • --(自减运算符)
    • 表示自减1

                int a = 5;

                int b = --a + 1;// a = 4, b = 5

--又分为 “前置--”,和“后置--”

前置--:将--编写在变量名称前面;先自身减1,然后再做其他运算

        int a = 5;

        int b = --a * 2; //a = 4 b = 8

后置--:将--编写在变量名称后面;先做其他运算,然后再自身减1

        int x = 10;

        int y = x-- * 3; //x = 9  y = 30

14.2.3算术运算符的随堂练习

  • 计算123这个整型数字的各个位之和。

 

 

 

结论

        此题比较综合涉及到一定的逻辑运算,并且还用了算术运算符中的% 、/、+运算符,通过此题进一步说明了,在程序开发中如果想要进行变量的运算,必须要使用运算符号,比如上面的算术运算符的使用。

14.3赋值运算符号

14.3.1赋值运算符号的作用

  • 用于完成变量赋值的。

14.3.2赋值运算符号的分类

  • =​​​​​​​
    • 将等号右侧的值赋给等号左侧的变量名称
    • 比如:int a = 18;
  • 扩展赋值运算符​​​​​​​
    • +=          -=          *=          /=          %=
    • 在Java中,使用扩展赋值运算符时,右侧的值不会改变左侧的数据类型,并且不会进行四舍五入。

14.3.3赋值运算符的随堂练习

结论

  • 赋值运算符号就是用于完成变量赋值的。

14.4关系运算符号

14.4.1关系运算符的作用

  •  用于变量(表达式)之间进行关系比较的。
  • //true

14.4.2关系运算符的分类

  • >   >=  <   <=  ==  !=
  1. 当条件成立时(满足条件时),则结果为true,否则为false
  2. true表示真的、正确的,成立的
  3. false表示假的、错误的,不成立的

14.4.3关系运算符的随堂练习

结论

  • 用于变量(表达式)之间进行关系比较的。

14.5逻辑运算符号

14.5.1逻辑运算符的作用

  • 用于连接关系表达式的。

14.5.2逻辑运算符的分类

  • 逻辑与&     逻辑或|         逻辑非!     短路与&&    短路或||​​​​​​​
    • 逻辑与&​​​​​​​
      • 当两个条件都为true,则结果为true,否则为false
      • 表示并且、同时

  • ​​​​​​​逻辑或|​​​​​​​
    • 当有一个条件为true,则结果为true,否则为false
    • 表示或者

  • 逻辑非!​​​​​​​
    • 其实也就是:只对true或者false值进行取反

​​​​​​​​​​​​​​

  1. 短路与&&
    1. 类似于逻辑与,都表示并且、同时​​​​​​​
    2. 通过运行得到结论:
      1. 使用短路与和逻辑与的执行结果都一样
      2. 短路与和逻辑与都表示并且、同时,也就是左右两边的条件都满足(成立)时,结果为true,否则为false
      3. 当使用短路与时,执行过程可能不同
        • 原因:左边也就是第一个条件为false,则结果直接为false
      4. 因此得到:当使用短路与时,执行速度相对更快或者执行效率更高
      5. 建议:使用短路与&&

​​​​​​​

  1. ​​​​​​​短路或||​​​​​​​
    1. 类似于逻辑或,都表示或者
    2. 结论:
      1. 使用短路或和逻辑或的执行结果都一样
      2. 都表示或者
      3. 当使用短路或时,执行过程可能不同
        1. 当左边的条件也就是第一个条件为true,则结果直接为true
      4. 因此得到:当使用短路或时,执行速度相对更快或者执行效率更高
      5. 建议:使用短路或

14.5.3随堂练习

14.6三目运算符号

14.6.1 什么是三目运算符

 

14.6.2 三目运算符的执行流程

  • 先判断条件,如果条件为true,则执行结果1,否则执行结果2

14.6.3 三目运算符的结论

  • 三目运算符也叫做条件运算符,用于完成条件判断的。
  • 三目运算符的执行流程:先判断条件,如果条件为true,则执行?后的结果1,否则执行:后面的结果2。

14.6.4 什么时候使用三目运算符

  • 当是二选一时,则就可以直接使用三目运算符

  • 当使用多选一时,则就使用三目嵌套完成

14.7运算符号的优先级

14.7.1什么是运算符号的优先级别

  • 先加减,后乘除,按照运算符号的先后,使用小括号组织运算符进行运算的方式就可以称之为运算符号的优先级别。
    1. 当多个运算符出现在一个表达式中,谁先谁后呢?这就涉及到运算符号的优先级别的问题,在一个由多个运算符组成的表达式中,运算符优先级的不同会导致最后得出的结果差别甚大。

14.7.2运算符号优先级别的顺序排布

  • 下表中具有最高优先级的运算符在表的最上面,最低优先级在表的底部。

14.7.3结论

  • 当多个运算符出现在一个表达式中,需按照运算符号的优先级别并使用小括号来进行组织运算。

十五、键盘接收用户输入

15.1需求

  • 判断12是奇数还是偶数
    • 分析得到当该数(12)除以2余数为0,则表示能够整除,为偶数,否则为奇数12 % 2 ==
    • 语法格式:条件 ? 结果1 : 结果2

15.2拓展

  • 键盘上输入任意一个整数判断其是奇数还是偶数
    • 判断12是奇数还是偶数
  • 如何解决从键盘上输入的问题
    • 键盘输入的问题解决了,直接拿输入的值做判断即可

15.3程序和人的交互

  • 之前学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户从键盘的输入。
  • java.util.Scanner 是 Java1.5 的新特征,我们可以通过 Scanner 类来获取用户的输入。

15.4键盘接收用户输入的操作步骤

  • 第一步:导入包,必须位于当前Java源文件所有类的最前面​​​​​​​
    • import java.util.Scanner;
    • 还可以编写为import java.util.*;
    • 注意:在一个Java源文件中只需要编写一次导入包
  • 第二步:创建Scanner对象​​​​​​​
    • Scanner input = new Scanner(System.in);
    • 注意:一个方法中只需要编写一次创建Scanner对象
  • 第三步:友好提示(可有可无,但是建议编写上)​​​​​​​
    • System.out.print("请输入:");
  • 第四步:接收键盘输入​​​​​​​
    • int a = input.nextInt(); //注意:当按回车键,则表示键盘输入完毕,并且将输入的值赋给左侧的变量名称a
    • double d = input.nextDouble();
    • String a = input.next();  //注意:在Java中,键盘接收字符串类型时,没有nextString(),而是编写为next()

15.5键盘接收用户输入的使用

  • 键盘上输入任意一个整数判断其是奇数还是偶数

15.6使用键盘接收用户输入的时机

  • 需求中如果有未知的数,则就可以编写为键盘接收用户输入,也就是在使用时,值相对更灵活。

15.7使用键盘接收用户输入的小数和字符串

15.8 随堂练习

15.8.1练习一

  • 计算两个整数的和​​​​​​​
    • ​​​​​​​分析得到:
      • 该题实现求和功能,也就是计算两个整型数相加的结
      • 该题中有两个未知数,则就可以编写为"键盘接收用户输入"完成

 

结论1:键盘接收用户的输入操作步骤

  • 第一步:导入包,必须位于当前Java源文件所有类的最前面​​​​​​​
    • import java.util.Scanner;
    • 还可以编写为import java.util.*;
    • 注意:在一个Java源文件中只需要编写一次导入包
  • 第二步:创建Scanner对象​​​​​​​
    • Scanner input = new Scanner(System.in);
    • 注意:一个方法中只需要编写一次创建Scanner对象
  • 第三步:友好提示(可有可无,但是建议编写上)​​​​​​​
    • System.out.print("请输入:");
  • 第四步:接收键盘输入​​​​​​​
    • int a = input.nextInt(); //注意:当按回车键,则表示键盘输入完毕,并且将输入的值赋给左侧的变量名称a。

结论2:键盘接收用户的输入使用时机

  • 需求中如果有未知的数,则就可以编写为键盘接收用户输入,也就是在使用时,值相对更灵活。

键盘接收用户输入的注意点

  • 输入的数据类型一定要与程序中所规定的类型匹配

  • 结论:​​​​​​​
    • 输入的数据类型一定要与程序中所规定的类型匹配,否则就会出现输入不匹配的现象。

15.8.2练习二

 题目需求

  • 输入某个学生的信息(姓名、性别、年龄、身高、体重、存款金额),并将所有的信息打印输出。
    • 分析得到:
      • 该题中学生的信息都是未知的,所以可用"键盘接收用户输入"完成信息的录入。

  • 再一次巩固了,键盘用户输入的操作步骤和键盘用户输入的使用时机及键盘用户输入小数和字符串的使用。
  • 值得注意的是在Java中,键盘接收字符串类型时,没有nextString(),而是编写为next()。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JMU Java 03面向对象基础-01-构造函数和toString方法。 构造函数是一种特殊的方法,在创建对象时自动调用,用于初始化对象的状态。 toString方法是Java中的一个方法,它可以返回对象的字符串表示形式,方便调试和打印输出。 ### 回答2: 构造函数和toString()是Java语言中的两个重要概念,它们是面向对象编程中的基础知识。本文将从以下几个方面来回答该问题: 一、构造函数 构造函数是一种特殊的方法,用于创建对象并初始化该对象的属性。一个类可以有多个构造函数,每个构造函数可以接受不同的参数,从而实现不同的对象初始化方式。在Java中,构造函数的名称与类名称相同,它没有任何返回值,包括void。 有两种类型的构造函数,即默认构造函数和带参数构造函数。默认构造函数没有任何参数,Java会自动为每个类提供一个默认的构造函数,它会执行以下操作: 1、初始化类的属性。 2、如果类继承自其他类,则会自动调用父类的构造函数。 如果一个类定义了带参数构造函数,则默认构造函数就不再自动提供。带参数构造函数可以自定义对象的初始化方式,提供不同的参数初始化对象的属性。带参数构造函数的声明格式为: public 类名(参数列表){ } 二、ToString()方法 toString()是对象类中的一个方法,它返回一个表示该对象的字符串。通常情况下,该字符串包括了对象的类名和属性值,以便于在需要时打印对象信息。 在Java中,如果没有显式地定义toString()方法,则默认使用Object类中的默认方法,该方法返回一个格式为“类名@哈希值”的字符串。但通常情况下,我们需要重新定义toString()方法,以便获取对象的更详细的信息,比如对象的属性。 对象类中重写toString()方法的格式如下: public String toString(){ } 值得注意的是,toString()方法可以被覆盖或者重新定义,但它必须返回一个字符串对象,否则将会出现编译错误。 结论: 构造函数和toString()是Java面向对象编程中的两个基本概念,这两者的作用分别是为对象初始化和展示对象信息。在实际工作中,我们需要充分理解这两个概念的含义和用途,从而更好的利用Java的面向对象编程方式。 ### 回答3: Java是一门面向对象的语言,构造函数和toString是面向对象编程中常用的两种方法之一。构造函数是用于创建对象的特殊方法,它可以在创建新对象时执行必要的初始化操作。而toString方法则是将对象转化为指定格式的字符串。在Java开发中,学习和熟练使用构造函数和toString方法对于编写高效,易于维护且易于阅读的代码非常重要。 首先,构造函数是一个类的特殊方法,它与类同名,并且不需要显式调用。当我们创建一个新对象时,构造函数被自动调用。在构造函数中,通常会执行一些初始化操作,如为对象的属性赋初始值。构造函数可以根据参数列表的不同,有多个重载版本。这样,我们可以根据需要以不同的方式创建对象,并且可以灵活地控制对象的初始化过程。 其次,toString方法是将对象转化为字符串的常用方法之一。它通常在输出对象时调用,将对象的属性转化为字符串并输出。在自定义类中,我们可以自己实现toString方法来控制对象转换成字符串的格式。对于调试和日志记录等任务,toString方法非常有用。它可以方便地将对象的状态输出到控制台或日志文件中,便于我们了解程序的运行状态和调试程序。 在使用构造函数和toString方法时,我们需要注意一些问题。首先,构造函数应该执行必要的初始化操作,但不应该执行过多的计算或IO操作。因为构造函数执行的时间可能很长,这会导致性能问题。其次,toString方法应该返回一个稳定的字符串。这样,我们在不同的场景下输出这个对象时,可以获得相同的输出。最后,我们需要为自己的类实现好构造函数和toString方法,以方便其他人阅读、使用和理解我们的代码。 总的来说,构造函数和toString方法是Java面向对象编程中重要的基础知识。它们是我们创建和操作对象不可或缺的工具。通过熟练掌握这两个方法,我们可以写出更加健壮和易于维护的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值