Day_01知识整理
Java SE _第1章 Java 概述
1.1 计算机语言概述
1、计算机语言是什么
就是人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。
2、 计算机发展
-
第一代:机器语言
-
第二代:汇编语言
-
第三代:高级语言
3、计算机分类
1.2 Java语言概述
1、Java语言发展历史
Java诞生于SUN,09年SUN被Oracle(甲骨文)收购;
Java之父是詹姆斯.高斯林;
1996年发布JDK1.0版;
项目最稳定是基于java5版本、java8版本、java11版本;最新准上市的java18版本。
2、Java语言的特点
(1)优点
面向对象(支持封装、继承、多态、面向对象编程,让程序更好达到高内聚,低耦合的标准)
支持分布式;
健壮性;
安全性高;
动态性;
多线程;
跨平台性
(2)缺点
语法过于复杂,严谨,对程序员的约束比较多。 一般适用于大型网站开发,整个架构会比较重。
3、Java技术体系平台
Java SE:标准版(桌面程序、控制台开发);
Java ME:嵌入式开发(手机、小家电。。。);
Java EE:企业级开发(Web端、服务器开发);
4、 Java语言跨平台原理
Java虚拟机(JVM,Java Virtual Machine)是由软件技术模拟出计算机运行的一个虚拟的计算机,它负责解释执行字节码指令集。也就是说,只要一台机器可以运行Java的虚拟机,那么就能运行Java语言编写的程序。而不同的平台,需要安装不同的Java虚拟机程序。那么我们编写完Java程序之后,需要先将.java的源文件编译为.class的字节码文件,然后在Java虚拟机中来执行这些字节码文件。
5、JVM、JRE、JDK的关系
-
JVM(Java Virtual Machine ):Java虚拟机,是运行所有Java程序的假想计算机,是Java程序的运行环境之一,也是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在JVM 之上。
-
JRE (Java Runtime Environment) :是Java程序的运行时环境,包含
JVM
和运行时所需要的核心类库
。 -
JDK (Java Development's Kit):是Java程序开发工具包,包含
JRE
和开发人员使用的工具。
我们想要运行一个已有的Java程序,那么只需安装JRE
即可。
我们想要开发一个全新的Java程序,那么必须安装JDK
,其内部包含JRE
。
1.3 开发环境搭建
1、JDK的下载
-
下载网址:www.oracle.com
-
下载步骤:
-
登录Oracle公司官网,www.oracle.com,如图所示:在底部选择Developers开发者
-
在Developers页面中间的技术分类部分,选择
Java
,单击进入,如图所示:展示的是最新Java版本,例如Java17。单击Download Java,然后选择具体的版本下载。
-
选择Download Java按钮后
-
选择Accept License Agreement,
注册或登录后下载
2、JDK的安装
-
安装步骤:
-
双击
jdk-8u202-windows-x64.exe
文件,并单击下一步
,如图所示: -
取消独立JRE的安装,单击
公共JRE前的下拉列表
,选择此功能将不可用
如图所示: -
修改安装路径,单击更改,如图所示:
-
将安装路径修改为
D:\develop\Java\jdk1.8.0_202\
,并单击确定,如图所示: -
单击下一步,如图所示:
-
稍后几秒,安装完成,如图所示:
-
目录结构,如图所示:
-
3、配置环境变量
环境: Java程序等运行的环境
变量: 用来存储值的一个名词
JAVA_HOME:是一个变量 用来存储JDK的安装根路径值,例如:D:\ProgramFiles\Java\jdk1.8.0_271 path:是一个变量
用来存储Windows操作系统软件找 命令的路径值 Windows操作系统找我们要运行的命令,例如:javac命令, (1)它会先在当前目录下寻找,例如:C:\Users\final> (2)它会到path变量中记录的路径下寻找 如果这些路径下都没有javac命令对应的程序,那么就会报 'javac' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
需要告诉Windows操作系统去哪里找javac命令对应的程序。 通过path记录 JDK的bin目录路径值。
2、如何配置path环境变量?
方式一:
我的电脑(右键)--》属性-->高级系统设置-->高级-->环境变量--》path 把D:\ProgramFiles\Java\jdk1.8.0_271\bin直接添加到path中
方式二:JAVA_HOME+path
先在环境变量中新建一个变量叫做JAVA_HOME
JAVA_HOME的值是D:\ProgramFiles\Java\jdk1.8.0_271 注意,这里不带bin,因为其他软件是用JDK下的bin以外的资源(源码、jre等)
然后在path中这么做 %JAVA_HOME%\bin 注意:这里加%的原因是告诉操作系统JAVA_HOME是我们自己定义的变量, 要取它的值作为路径值。 %JAVA_HOME%等价于D:\ProgramFiles\Java\jdk1.8.0_271 %JAVA_HOME%\bin等价于D:\ProgramFiles\Java\jdk1.8.0_271\bin
4、验证JDK是否安装成功
命令提示符 运行 javac 、java 、java -version
注意:
bin目录(用于方可执行程序 javac运行工具);
incloude目录(存放头文件);
jre目录(java运行环境);
lib目录(放java库);
src.zip(资源文件java基础源代码);
1.3 入门程序HelloWorld
public class HelloWorld{ public static void main(String[] args){ System.out.println("HelloWorld"); } }
运行程序步骤
在DOS命令中,输入javac
+文件名.java
生成xx.class文件
在DOS命令行中,在字节码文件目录下,使用java
命令进行运行。
命令:
java 主类名字
主类是指包含main方法的类,main方法是Java程序的入口:
public static void main(String[] args){ }
举例:
java HelloWorld
1.4附加内容+问题答疑
开发工具
-
简单的开发工具:
记事本等文本编辑器 例如:notepad++
-
高级的开发工具
IDEA
开发步骤
-
编写代码 (1)无论选择哪个开发工具,代码文件保存后是xx.java文件 例如:第一个Java程序保存为HelloWorld.java (2)代码的结构
Java代码的结构: 类{ 方法(){ 语句; } }
注意结构的括号是{},花括号,大括号 方法名后面先是(),圆括号,小括号,再跟{} 语句后面是; 所有的标点符号都是英文输入法半角状态下输入。
(3)Java程序的入口是main方法 public static void main(String[] args){//方法 } (4)语句 语句的作用是完成程序的功能
-
编译代码 每一次写完代码(包括修改完)都要重新编译。 编译的工具是:javac.exe 格式: javac xx.java 注意: (1)必须指明源文件的名称(包含后缀名.java) (2)如果文件路径不对,或文件的名称不对,会报 C:>javac HelloWorld.java javac: 找不到文件: HelloWorld.java 用法: javac <options> <source files> -help 用于列出可能的选项 (3)Notepad++软件的文件菜单-->打开所在文件夹-->命令行 (4)编译成功后,会产生类对应的.class字节码文件
-
运行代码 运行工具:java.exe 格式: java 主类名 注意: (1)java后面的主类名只写类名,不写.class,也不写.java (2)主类名是指包含main方法的类名称
*/ class HelloWorld{//class是表示类,HelloWorld是类名 //public static void main(String[] args)这是main方法的签名,它是固定的 //main方法是Java程序的入口 public static void main(String[] args){//方法 //标准的输出语句,""中的内容,原样输出 System.out.println("java"); } }
问题答疑
问题1:
/* 问题1: 在外面打开cmd命令行窗口,读取环境变量是正确的, 但是在notepad++软件-->文件菜单-->打开所在文件夹-->命令行中,报javac等不是内部或外部命令。 解决方案: notepad++软件用管理员身份运行。 */
问题2:
/* 问题2: .java文件中的中文,在编译时乱码,无法正常编译。 解决方案: 第一种方案: javac xx.java 用法: javac <options> <source files> javac -encoding UTF-8 Problem2.java 第二种方案: 在notepad++软件里面设置xx.java源文件的编码为GBK(ANSI:按照操作系统默认编码处理,中文操作系统默认编码是GBK) 格式菜单-->转为GBK(ANSI),之后保存 javac xx.java 注意: 一劳永逸的解决,notepad++软件里面设置新建文件的默认编码。 notepad++软件的设置菜单-->首选项-->新建-->右边选择ANSI。 notepad++软件的设置菜单-->首选项-->新建-->右边现在默认的语言是Java。 */ class Problem2{ public static void main(String[] args){ System.out.println("尚硅谷"); } }
问题3:
/* 问题3:字母大小写问题 (1)文件名:xx.java 如果类(class)的前面没有public,那么文件名的大小写是无所谓的。 并且javac命令后面是不区分大小写的。 (2)类名:严格区分大小写的 java命令后面是主类名 代码中class 单词后面是类名 (3)Java代码中,所有的关键字,类名、方法名等都是严格区分大小写 class,public,static,void,main,out,println都是小写的。 类名,String,System这些是首字母大写 建议:无论是文件名还是代码、还是类名等等,都区分大小写,养成程序员的好习惯。 */ class Problem3{ public static void main(string[] args){//String的s应该是大写的 system.out.println("大小写问题");//System的s应该是大写的 } }
问题4:
/* 问题4: 类名和xx.java的源文件名是否要一致? 思考:如果类名和xx.java 源文件名不一致,那么如何编译和运行? 编译: javac xx.java(注意这里是xx.java源文件名) 例如:javac WenTi4.java 发现,编译后xx.class字节码文件的名字和类名是一致的。 运行: java 主类名 例如:java Problem4 如果错了,都会找不到: D:\atguigu\javaee\JavaSE20220227\code>java WenTi4 错误: 找不到或无法加载主类 WenTi4 D:\atguigu\javaee\JavaSE20220227\code>javac Problem4.java javac: 找不到文件: Problem4.java 用法: javac <options> <source files> -help 用于列出可能的选项 思考:如果类名和xx.java源文件名不一致有什么问题吗? 当class前面有public单词之后,会导致编译失败: D:\atguigu\javaee\JavaSE20220227\code>javac WenTi4.java WenTi4.java:26: 错误: 类Problem4是公共的, 应在名为 Problem4.java 的文件中声明 public class Problem4{ ^ 1 个错误 结论:如果类是public的,那么xx.java的源文件名必须和类名一致。 思考:一个.java文件中,可以有几个public的类呢? 一个 建议:一个.java文件写一个主类,xx.java源文件名就和主类名保持一致。 尽量避免错误。 */ public class Problem4{ public static void main(String[] args){ System.out.println("源文件名和类名不一致问题解决"); } }
问题5:
/* 问题5: 格式问题 (1)缩进 class Problem5{ public static void main(String[] args){ System.out.println("缩进"); } } 每套一层{},就往右缩进一个Tab键。 (2){}对齐问题 有两种比较流行的风格: 第一种: 类{ 方法(){ 语句; } } 第二种: 类 { 方法() { 语句; } } (3)空格 */ class Problem5{ public static void main(String[] args){ System.out.println("缩进"); System.out.println("缩进"); System.out.println("缩进"); if(true){ System.out.println("第三场{}"); System.out.println("第三场{}"); System.out.println("第三场{}"); } } }