day03Java入门
Java入门(P 13-P 20,day 03)
1. Java的诞生
指针无比强大,可以直接操纵内存。但是C却没有提供一个工具进行越界的检查,导致不熟悉的人容易犯错。
内存空间的管理,C更是采用放任态度,自己分配的空间自己去释放。
致命的是,在编译期间这些问题是无法被发现的,而在运行程序的时候会突然暴露出来。
处理指针的内存分配成为一个头疼的问题,开始时C称自己是具有可移植性的:在A上写的代码,在B上进行编译即可运行。
所有人需要尽可能使用C的标准函数库,针对不同的平台,C都要去写一份,有一些小小的错误都会导致编译失败。
这样子的话,C语言的执行效率固然高,但也经不住这么造。相当于是一种“暴政”,导致大家不是很喜欢。
C++ 贴近底层,更加复杂。复杂的特性和语法,导致很多人无法完全掌握这门语言。
为了实现真正的跨平台,Java在每个操作系统之上增加了一个抽象层——Java的虚拟机,统称JVM。
只要安装了这个环境,代码无论在哪个电脑上都可以正常运行,因为Java写的程序,最终都是跑在虚拟机上。
除非个别情况,一般都不会看到操作系统。
凭借集群功能,第一次展示了复杂应用的可扩展性和高可用性。 (软件、硬件、服务器)
- 高可用
- 高性能
- 高并发
这个之后被称为中间件的东西,将程序员从事务管理、安全管理、权限管理等方面解放出来。让他们可以专注于业务去开发。
2. Java的特性和优势
- 简单性
- 面向对象:重点研究内容是对象,以及对象之间的接口上,模拟人的思维去写程序
- 可移植性
- 高性能:即时编译,可使某些代码的效率接近C++的效率
- 分布式:为网络分布式环境所设计的,可以处理TCP/IP协议上的东西。利用URL (统一资源定位符),使得访问网络上的资源,像访问本地资源一样简单。同时Java支持一些远程的方法调用,使用网络去调用方法。
- 动态性:Java本身不具有动态性,但是其中的反射机制使得Java具有一定的动态性
- 多线程
- 安全性
- 健壮性:不会像C那样,不会造成计算机的崩溃。哪怕确实有一些异常,也不会崩溃,因为其中的异常机制的存在。
3. Java三大版本
4. JDK JRE JVM
- JDK Java开发者工具,包括JRE,JVM。主要是用于程序开发
- javac 通过编译来运行Java程序
- javadoc 将Java的一些东西生成一篇文档
- jar 可以将Java打包成一个应用
-
JRE Java运行时环境,运行Java程序有JRE就可以,但是如果进行开发的话,还需要用到JDK提供的一些开发工具
但是实际上,只需要下载JDK即可,因为JRE包含在其中。
-
JVM Java虚拟机是Java跨平台运行的核心技术,是一种规范,相当于在所有操作系统上,模拟了一个CPU去处理Java相关的东西。
因为虚拟机的存在,屏蔽了底层系统的差别,实现了一次编译,到处运行的效果。
-
Java的代码是如何编译成字节码的两种运行方式
- 解释型
- 编译型
5.安装开发环境
卸载JDK
- 先在环境变量的路径中找到JDK的安装目录,直接连包删除
- 然后再将环境变量中的JAVA_HOME清理掉
- 删除path下关于Java的目录
- 在Dos窗口下输入java -version 检查是否删除成功
安装JDK
-
下载JDK8,对应电脑的版本
-
双击安装,选择好用的安装路径,后面配置环境变量的时候要用
-
配置环境变量
-
我的电脑-->右键-->属性-->高级系统设置
-
环境变量-->JAVA_HOME
-
变量名 要求是大写的
-
变量值 就是环境的安装路径
-
-
配置path变量
%% 表示引用,现在需要在path变量中引用一个路径 %JAVA_HOME%
再指向它下面的一个bin目录 %JAVA_HOME%\bin
还要配这个路径 %JAVA_HOME%\jre\bin检查安装的是否成功
-
-
检查安装是否成功 java -version (win + 加号 是放大镜的作用)
- bin目录 放一些Java可执行程序,比如作为编译器的javac
- include目录 由于jdk是用C/C++编写的,所以启动的时候,需要去引用C的一些头文件
- jre 是Java运行环境。如果只跑Java的话,有这个jre就够了
- lib (library) 放置了Java的一些内库文件,与jvm相关的一些东西
- src (source) 是一个资源文件,其中放了很多Java类的基础源代码
6. Hello World 详解
写代码的路径准备
- 新建文件夹,用于存放代码
- 新建一个Java文件
- 后缀名为.java
- Hello.java
编写代码
public class Hello{
public static void main(String[] args){
System.out.print("Hello,World!");
}
}
-
外面 声明公开类名时,需要和新建文件名一样
-
里面 有一个main方法 ()中传递参数,String的首字母要大写 [] 再加上 args
main是一个主方法,程序必须通过main()才能执行
-
这两个地方是创建默认类时需要的两个东西
-
main方法中的语句写完之后,要加上分号
Dos环境中编译、运行代码
右键导航栏,选择属性,设置Dos窗口的字体大小
-
使用javac 编译Java文件,编译后得到class文件
javac java文件
首先,路径要正确;第二,文件名称要正确。
-
使用java命令 运行的是class文件,不用写后缀。jvm能运行的也就是class文件
注意事项
- 每个单词的大小写不能出现问题,因为Java是大小写敏感的
- 尽量使用英文,若是中文的话,控制台可能无法识别,输出的是乱码
- 文件名和类名必须保持一致,并且首字母大写
- 标点符号不能使用中文,不能多、不能少符号
7.编译型和解释型
程序的运行机制——编译型、解释型 是计算机高级编程语言中的两种类型
编译 和 解释 说白了,都是一种翻译功能,只是二者进行的时机不同
编译 compile 是将程序一次性翻译成机器可以理解的二进制语言,执行速度更快,对操作系统的要求较低
编译型一般用于操作系统,C/C++的程序
解释 执行哪条语句就翻译哪条语句,用一下就翻译一下
网页服务器的脚本,对速度要求不高,可使用解释型语言,边执行边解释,包括JS、python等都属于解释型语言
- Java虽然接近解释型语言的特征,但是他是从Java文件变成了class文件,中间这个编译的过程,得到的class文件才真正的被执行,即Java文件在被执行之前,经历了一次预编译,生成的代码介于机器码和Java源码之间的一种程序——字节码文件
- 字节码文件,运行的时候会走到 JVM上执行。先放在类装载器上,这样该类就进入了虚拟机当中;然后经过字节码校验器,检查代码是否正确;代码正确,再通过解释器将代码解释给操作系统平台
- Java文件通过javac进行编译得到类文件,再解释给操作系统代码写了些什么,然后操作系统按照代码的指令去进行相关的操作,完成对应的任务
-- 原始人抬头仰望星空的时候,宇宙发出了警告,人类已经窥得了宇宙的真理,这是一件危险的事情。因为当原始人抬头仰望星空开始,整个人类的发展就不过是为了实现他的愿望而已。就相当于,我们一旦有了一个需求或目标,剩下的道路就会不断完善,只要确定了方向,不停下脚步,我们终究能抵达自己的终点。
8.使用 IDE 开发
不仅能进行代码的编辑,同时也能看代码有没有错误。
psvm 生成main方法
sout 生成输出语句
IDEA优化(微服务、大数据均是利用IDEA进行开发)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现