day01.[环境变量,HelloWorld,常量]
今日重点:
1.会安装java环境,配置环境变量
2.知道jre和jdk以及jvm的关系
3.会如何编写一个入门程序 -> HelloWorld
4.会使用注释对代码进行解释说明
5.知道入门程序每一句话的含义
6.会使用javac和java命令编译运行一个java程序
7.会使用常量
第一章 Java概述
1.1 JavaSE课程体系介绍
JavaSE知识图解
JavaSE知识模块介绍
-
第一部分:计算机编程语言核心结构:
数据类型
、运算符
、流程控制
、数组
、…(没有为啥,按照格式定义)
-
第二部分:Java面向对象核心逻辑:
类和对象
、封装
、继承
、多态
、抽象
、接口
、…为啥要使用面向对象编程:简化代码,很多功能别人实现好了,我们直接拿过来用就完事儿了
-
第三部分:JavaSE核心高级应用:
集合
、I/O
、多线程
、网络编程
、反射机制
、… -
第四部分:Java新特性:
Lambda表达式
、函数式编程
、新Date/Time API
、接口的默认、静态和私有方法
、… -
第五部分:MySQL/JDBC核心技术:
SQL语句
、数据库连接池
、DBUtils
、事务管理
、批处理
、…
1.2 计算机语言介绍(了解)
计算机编程语言是什么
所谓计算机编程语言,就是人们使用编程语言对计算机下达的命令,让计算机完成人们需要的功能。
Java、C、PHP、JS都是计算机编程语言
计算机语言发展
-
第一代:机器语言(计算机很庞大,都是0和1组成的指令,而且需要同时按下多个键才能完成一个指令,而且用0和1组成的一个一个指令,所以工程师们就要记住0和1的各种组合以及对应的指令)
-
第二代:汇编语言(面向机器的语言,因为直接面对机器需要记一些 0 和1 的指令,很痛苦,所以就出现了很多助记词,比如:add.汇编语言现在还在使用,接近于机器语言,越接近机器语言,速度越快,而且最终还是转成0和1存储)
-
第三代:高级语言(更接近我们人类语言,常见的有很多,比如C语言,java等)
不管是啥语言,最终都逃不了二进制,因为计算机的大脑(CPU只认识0和1)
1.3 Java语言概述(了解)
Java生态圈
Java是目前应用最为广泛的软件开发平台之一。**随着Java以及Java社区的不断壮大,Java 也早已不再是简简单单的一门计算机语言了,它更是一个平台、一种文化、一个社区。
作为一个平台,Java虚拟机扮演着举足轻重的作用。除了 Java语言,任何一种能够被编译成字节码的计算机语言都属于Java这个平台。Groovy、Scala、 JRuby、Kotlin等都是Java平台的一部分,它们依赖于Java虚拟机,同时,Java平台也因为它们变得更加丰富多彩。而且Java还可以跨平台
作为一种文化,Java几乎成为了 “开源”的代名词。在Java程序中,有着数不清的开源软件和框架。如Tomcat、Struts, Hibernate, Spring,MyBatis等。就连JDK和JVM自身也有不少开源的实现,如OpenJDK、Apache Harmony。可以说,“共享”的精神在Java世界里体现得淋漓尽致。
作为一个社区,Java拥有全世界最多的技术拥护者和开源社区支持,有数不清的论坛和资料。从桌面应用软件、嵌入式开发到企业级应用、后台服务器、中间件,都可以看到Java的身影。其应用形式之复杂、参与人数之众多也令人咋舌。可以说,Java社区已经俨然成为了一个良好而庞大的生态系统。其实这才是Java最大的优势和财富。
Java语言发展历史
Java诞生于SUN(Stanford University Network),09年SUN被Oracle(甲骨文)收购。
Java之父是詹姆斯.高斯林(James Gosling)。
詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
1996年发布JDK1.0版。
目前最新的版本是Java17。我们学习的Java8。
发行版本 | 发行时间 | 备注 |
---|---|---|
Java | 1995.05.23 | Sun公司在Sun world会议上正式发布Java和HotJava浏览器 |
Java 1.0 | 1996.01.23 | Sun公司发布了Java的第一个开发工具包 |
Java 1.1 | 1997.02.19 | |
Java 1.2 | 1998.12.08 | 拆分成:J2SE(标准版)、J2EE(企业版)、J2ME(小型版) |
Java 1.3 | 2000.05.08 | |
Java1.4 | 2004.02.06 | |
Java 5.0 | 2004.09.30 | ①版本号从1.4直接更新至5.0;②平台更名为JavaSE、JavaEE、JavaME |
Java 6.0 | 2006.12.11 | 2009.04.20 Oracle宣布收购SUN公司 |
Java 7.0 | 2011.07.02 | |
Java 8.0 | 2014.03.18 | |
Java 9.0 | 2017.09.22 | ①每半年更新一次;②Java 9.0开始不再支持windows 32位系统 |
Java 10.0 | 2018.03.21 | |
Java 11.0 | 2018.09.25 | JDK安装包取消独立JRE安装包,长期支持版本 |
Java 12.0 | 2019.03.19 | |
Java 13.0 | 2019.9.18 | |
Java 14.0 | 2020.3.17 |
Java技术体系平台
- JavaSE(Java Platform, Standard Edition标准版):允许您在桌面和服务器上开发和部署Java应用程序。Java提供了丰富的用户界面、性能、多功能性、可移植性和当今应用程序所需的安全性。
- JavaEE(Java Platform, Enterprise Edition企业版):是为开发企业环境下的应用程序提供的一套解决方案,主要针对于Web应用程序开发。
- JavaME(Java Platform, Micro Edition 小型版):为互联网上的嵌入式和移动设备上运行的应用提供了一个健壮、灵活的环境:微控制器、传感器、网关、移动电话、个人数字助理(PDA)、电视机顶盒、打印机等等。JavaME包括灵活的用户界面、健壮的安全性、内置的网络协议,以及支持动态下载的网络和离线应用程序。基于JavaME的应用程序在许多设备上都是可移植的,但是利用了每个设备的本机功能。
- Java Embedded(Im’bedId): 用于解锁物联网的智能设备的价值:
通过远程市场更新和刷新功能延长产品生命周期和价值;
利用Java的可伸缩性、健壮性、可移植性和全套功能,提高生产效率,降低成本,缩短上市时间;
在边缘启用快速数据功能; - Java Card:使安全元件(如智能卡和其他防篡改安全芯片)能够承载采用Java技术的应用程序。Java card提供了一个安全的、可互操作的执行平台,它可以在一个资源受限的设备上存储和更新多个应用程序,同时保持最高的认证级别和与标准的兼容性。
- Java TV:是一种基于JavaME的技术,它为开发在tv和机顶盒设备上运行的java应用程序提供了一个性能良好、安全且易于实现的解决方案。使用Java TV运行时,开发人员可以轻松创建应用程序,例如电子节目指南(EPG)、视频点播(VOD)客户端、游戏和教育应用程序、用于访问Internet数据的应用程序(例如天气、新闻播报器、社交网络)以及大多数蓝光光盘标题上的用户界面和奖金内容。
- Java Embedded(Im’bedId): 用于解锁物联网的智能设备的价值:
1.4 什么是软件开发
1.概述:
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程
软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程
软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发
2.我们将来主要从事软件开发中各个环节的哪个环节呢? 实现
3.我们将来主要用什么程序设计语言来开发呢? JAVA
第二章.Java语言前言
1.Java的介绍
1.计算机编程语言:计算机能看懂的语言,我们能使用计算机编程语言对计算进下达指令
2.java之父:詹姆斯高斯林
3.java涉及到的领域:主要用于互联网领域,开发应用程序
a.各行各业的操作系统,网站
b.移动端:医疗设备上,超市打印小票机器,鸿蒙,安卓等
c.电商网站
d.物流管理
e.银行使用的操作系统等
f.桌面应用(idea)
g.企业级开发(服务器程序)
h.科学计算:机器人
i.大数据库开发:hadoop
j.游戏开发
4.目前安装的jdk版本:jdk17
2.字节
1.概述:计算机上最小的存储单元,用byte或者B表示
2.单位换算: 8个二进制位(bit)代表一个字节,二进制只有两个数(0和1)
8bit = 1B
1024B = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
3.常用的dos命令
1.打开dos命令窗口:windows+r -> 输入cmd -> 回车
作用 | 命令 |
---|---|
切换盘符 | 盘符名: -> 指定的盘符必须是存在的 |
查看当前目录下的内容 | dir |
进入指定目录 | cd 文件夹名 |
进入多层目录 | cd 文件夹名\文件夹名 |
清屏 | cls |
退到上一级目录 | cd… |
直接退到根目录(盘符位置) | cd\ |
退出黑窗口 | exit |
创建文件夹 | mkdir 文件夹名 |
创建多级文件夹 | mkdir 文件夹名\文件夹名 |
删除文件夹 | rd 文件夹名 -> 被删除的文件夹必须是空文件夹,不走回收站 |
删除文件 | del 文件名.后缀名 -> 不走回收站 |
批量删除文件 | *代表任意的 del *.后缀名 |
小技巧:
1.快速补全文件名或者文件夹名: tab
2.按上下箭头可以找到之前打过的命令
3.快速进入到指定目录对应的dos命令窗口:选中要进入的路径,输入cmd->回车即可
第三章.Java所需要的环境
1.jvm和跨平台
1.jvm:java虚拟机,相当于java的假想计算机,用于编译java程序的,所有的java程序必须用jvm去编译,才能正常执行
java程序运行时所需要的环境
2.跨平台:java程序可以在不同的操作系统上运行
跨:跨越
平台:操作系统
3.注意:想要实现跨平台,需要jvm的支持
2.JDK和JRE
1.JRE(Java Runtime Environment):java程序运行时所需要的环境,包含"jvm"和运行时所需要的"核心类库"
2.JDK(Java Development Kit):是java程序开发工具包,包含'JRE'和开发人员使用的工具(javadoc)\
jdk包含jre , jre 包含 jvm
2.1.jdk安装
1.去oracle官网下载 jdk
2.网址:www.oracle.com
jdk的安装:
1.双击安装包
2.选择安装路径 -> 路径上不要有中文,不要有空格
测试一下:进入到bin路径下,打开对应的dos命令窗口
输入:javac 和java命令
2.2.环境变量的配置
1.目的:javac 和 java 命令 在任意路径下都能使用
1.方式1:直接将bin路径放到path中
2.方式2(推荐): 配置JAVA_HOME
第四章.Java第一个程序的开发
1.开发三步骤
1.编写:
a.创建一个文本文档,将后缀名改成.java
b.注意:需要将后缀名显示出来
2.编译:
a.命令: javac java文件名.java
b.注意: 编译之后会生成一个对应的.class文件(字节码文件),jvm运行程序只认class文件
3.运行:
a.命令: java class文件名 (不用带后缀名)
2.编写HelloWorld
public class Demo01HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld!!!");
}
}
3.注释
1.概述:对代码的解释说明,不参与运行
2.分类:
a.单行注释: //注释内容
b.多行注释: /*注释内容*/
c.文档注释:/**注释内容*/
//下面一句是java代码的最基本的单元
public class Demo01HelloWorld{
/*
下面一句是java程序的入口,没它没法运行
叫做main,不叫mian
*/
public static void main(String[] args){
//输出语句
System.out.println("helloworld");
}
}
文档注释: 可以使用javadoc命令生成此类相关的一个API文档,让别人快速了解此类的作用以及其中的成员
/**
注释内容
*/
命令:javadoc -d 要生成的文件夹名字 -author -version 文件名.java
/**
这是一个java入门程序
@version v1.0
@author 涛哥
*/
public class Demo02HelloWorld{
/**
这是一个java的入口,没有它没法运行
*/
public static void main(String[] args){
System.out.println("helloworld");
}
}
4.第一个Java程序中每一句话的解释以及注意事项
/*
public class Demo03HelloWorld -> 在定义一个类
public: 公共的访问权限
class: 表示的类,类是java代码最基本的组成单元,所有的代码都要在类中写
Demo03HelloWorld: 类名,此类名要求和java文件名保持一致
*/
public class Demo03HelloWorld{
/*
public static void main(String[] args) -> 叫做main方法
作用:程序的入口,没有它程序运行不起来,所有单词是固定的
*/
public static void main(String[] args){
/*
System.out.println("helloworld")
输出语句,打印语句
作用:输出结果,先要什么结果,就写什么结果
*/
System.out.println("helloworld");
}
}
1.类名要和java文件名保持一致
2.代码中所有的标点符号必须是英文的
3.括号需要一对一对的写
4.不要将main写成mian
5.入门程序中String和System中的首字母s要大写
6.代码中每写一个单词,用空格增强代码的可读性
7.一段代码写完,用;结束,代表此代码单独为一句
6.关键字
1.概述:java提前定义好的,具有特殊含义的小写单词
2.怎么记:不用提前背,学到哪里,记到哪里即可,关键字在高级记事本中颜色特殊
7.编写HelloWorld时要注意的问题
7.1字符编码问题
1.问题描述:在代码中写中文,编译出问题了,出现了一堆乱码
2.问题原因:代码的编码和黑窗口的编码不一致
3.注意:我们写代码的过程叫做编码
输出的过程叫做解码
如果编码和解码遵循的规则不一样,解码时就会乱码
4.常见两个编码:
a.UTF-8
b.GBK(专门表示中文的编码) -> dos命令窗口
c.如果操作的是英文,不管啥编码,一个英文字母占1个字节
d.但是设计到中文
在GBK中一个中国字占2个字节
在UTF-8中一个中国字占3个字节
5.怎么解决:
将代码变成GBK的
7.2源文件名(java文件名)与类名一致问题?
1.源文件名是否必须与类名一致
a.如果class前面没有public,此时类名可以和java文件名不一致
b.如果class前面有public,此时类名必须和java文件名保持一致
2.一个源文件中是否可以有多个类?
可以,但是要定义非public的
3.main方法必须在public的类在中嘛?
不是
但是后面main方法都要写在public的类中
1.不管class是否为public的,都建议和java文件名保持一致
2.一个java文件中建议只写一个class,而且class要带public
3.main都建议写在public的类中
9.println和print区别
1.相同点:
都是输出语句
2.不同点:
a.println:输出之后自动换行
b.print:输出之后不换行
public class Demo04HelloWorld{
public static void main(String[] args){
System.out.println("床前明月光");
System.out.println("疑是地上霜");
System.out.println("举头望明月");
System.out.println("低头思故乡");
}
}
小技巧:
a.复制当前行:ctrl+d
b.一次写多行:
先预留出足够的空间
按住alt不放,鼠标往下拉
第五章.常量
1.概述:在代码的运行过程中,数据不会发生改变的数据
2.分类:
a.整数常量:所有整数
b.小数常量:所有带小数点的
1.5 2.0
c.字符常量:带单引号的数据 -> 单引号中必须有且只能有一个内容
'' -> 不对
'a' -> 对
'11' -> 不对
' ' -> 对 一个空格算一个内容
' ' -> 不对 两个空格算两个内容
' ' -> 单引号中是tab键 对
d.字符串常量: 带双引号的 ""
e.布尔常量 : true false -> 不要加双引号
f.空常量: null -> 不要加双引号 -> 代表数据不存在
public class Demo05HelloWorld{
public static void main(String[] args){
//整数常量
System.out.println(1);
//小数常量
System.out.println(1.1);
//字符常量
System.out.println('a');
System.out.println(' ');
//System.out.println(' '); 两个空格代表两个内容
System.out.println(' ');// 一个tab算一个内容
//字符串常量
System.out.println("你好");
//布尔常量
System.out.println(true);
System.out.println(false);
//空常量
//System.out.println(null);//代表数据不存在,不能直接使用
}
}
public class Demo06HelloWorld{
public static void main(String[] args){
System.out.println(10+3);//13
System.out.println(10-3);//7
System.out.println(10*3);//30
System.out.println(10/3);//3 如果 /前后都是整数,结果取整数部分
System.out.println(10.0/3);// 只要/前后有一个带小数点的,结果就是小数
}
}
ut.println(’ ');// 一个tab算一个内容
//字符串常量
System.out.println(“你好”);
//布尔常量
System.out.println(true);
System.out.println(false);
//空常量
//System.out.println(null);//代表数据不存在,不能直接使用
}
}
```java
public class Demo06 HelloWorld{
public static void main(String[] args){
System.out.println(10+3);//13
System.out.println(10-3);//7
System.out.println(10*3);//30
System.out.println(10/3);//3 如果 /前后都是整数,结果取整数部分
System.out.println(10.0/3);// 只要/前后有一个带小数点的,结果就是小数
}
}