```
845集,169天看完,每天至少4集
最后来补充:P1到P17集,17集已看完
2023年3月15日(7集):P160搞定、P161搞定、P162搞定、P163搞定、P164搞定、P165搞定、P201搞定
2023年3月16日(5集):P166搞定、P167搞定、P168搞定、P169搞定、P170搞定、
2023年3月17日(7集):P171搞定、P172搞定、P173搞定、P174搞定、P175搞定、P176搞定、P177搞定
2023年3月18日(6集):P178搞定、P179搞定、P180搞定、P181搞定、P182搞定、P183搞定
2023年3月19日(7集):P184搞定、P185搞定、P186搞定、P187搞定、P188搞定、P189搞定、P190搞定
2023年3月20日(4集):P191搞定、P192搞定、P193搞定、P194搞定
2023年3月21日(8集):P195搞定、P196搞定、P197搞定、P198搞定、P199搞定、P204集
P205集、P206集
2023年3月22日(集):
```
# 第一章 Java开发环境的搭建
## 7、classpath
```
属于java的环境变量,是给用dos窗口运行java文件时的路径,是负责在运行阶段中,类加载器去电脑上找class文件的路径。
就好比Windows上面的path路径一样,去找javac编译器一样。
如果创建了classpath路径的话,就不用在dos窗口里面运行java文件时更改路径了。
创建方法:在用户变量里面新建变量----取名为classpath-----值为要运行的java程序所在目录。
```
```
1、打开DOS命令窗口,执行java HelloWorld,执行原理?
java.exe命令会启动JVM
JVM启动之后会启动类加载器ClassLoader
ClassLoader会在硬盘上的某个位置搜索HelloWorld.class字节码文件
找到该文件则执行
找不到该文件就报错
2、疑问:ClassLoader是在哪个位置上搜索HelloWorld.class字节码文件的?
默认情况下,ClassLoader从当前路径下加载xxx.class字节码文件
当然,也可以让ClassLoader去某个指定路径下加载字节码文件,这时要配置环境变量classpath
classpath环境变量属于java语言中的环境变量,不属于windows操作系统【PATH环境变量属于操作系统】
classpath是给classLoader类加载器指路的。
设置这样的环境变量:classpath=D:\workspace\java_workspace\Project\JavaSE
打开dos命令窗口在任意位置,都可以执行:java HelloWorld
classpath环境变量没有配置的话,类加载器默认从当前路径下找字节码文件,
当classpath环境变量配置为某个指定的路径之后,类加载器只去指定的路径当中加载class字节码文件。
所以,
每一次执行.class程序的时候,需要在DOS命令窗口中先切换到.class字节码文件所在的路径下。
然后运行。
```
![1678861404413](images\java0003.png)
```java
3、我们一起来研究一下:“java HelloWorld”的执行过程以及原理。
D:\course\JavaProjects\02-JavaSE\chapter01>java HelloWorld
敲完回车,都发生了什么?????
第一步:会先启动JVM(java虚拟机)
第二步:JVM启动之后,JVM会去启动“类加载器classloader”
类加载器的作用:加载类的。本质上类加载器负责去硬盘上找“类”对应的“字节码”文件。
假设是“java HelloWorld”,那么类加载器会去硬盘上搜索:HelloWorld.class文件。
假设是“java Test”,那么类加载器会去硬盘上搜索:Test.class文件。
.......
第三步:
类加载器如果在硬盘上找不到对应的字节码文件,会报错,报什么错?
错误: 找不到或无法加载主类
类加载器classloader如果在硬盘上找到了对应的字节码文件,类加载器会将该字节码文件装载到JVM当中,JVM启动“解释器”将字节码解释为“101010000...”这种二进制码,操作系统执行二进制码和硬件交互。
问题?????
默认情况下,类加载器去硬盘上找“字节码”文件的时候,默认从哪找????
默认情况下类加载器(classloader)会从当前路径下找。
此处应该有疑问,你可以提出哪些问题????
能不能给类加载器指定一个路径,让类加载器去指定的路径下加载字节码文件。
答案:可以的。但是我们需要设置一个环境变量,叫做:classpath
classpath是一个环境变量,是给谁指路的?
答案:是给“类加载器”指路的。
classpath环境变量不属于windows操作系统,classpath环境变量隶属于java。
classpath环境变量是java特有的。与windows操作系统无关。
classpath=A路径;B路径;C路径.....
classpath是一个变量名
A路径;B路径;C路径.....是变量值
classpath环境变量配不配都行,只是切来切去比较麻烦。
classpath是不会和之前配置的java HelloWorld.java中的环境变量冲突的,classpath是独立的。
我们把classpath配置一下,这个环境变量在windows中没有,需要新建!!!!
计算机-->右键-->属性-->高级系统设置-->环境变量-->系统变量-->新建...
注意:变量名不能随意写:大小写无所谓,但必须叫做:classpath
CLASSPATH
ClassPath
Classpath
classpath
都行。
我目前是随意配置的:(重启CMD)
classpath=D:\course
非常重要的一个特点,必须记住:
配置了classpath=D:\course之后,类加载器只会去D:\course目录下找“xxx.class”文件
不再从当前路径下找了。
结论是:
到目前为止:classpath环境变量不需要配置。
但你必须理解classpath环境变量是干什么的!!!!
你一定要理解classpath环境变量的作用是什么?
是给类加载器指路的。
在没有配置环境变量classpath的时候,默认从当前路径下加载。
如果配置了环境变量classpath的话,就只能从指定的路径下加载了。
path java_home classpath,这3个环境变量path需要配置,后面两个暂时不配置。
```
## 10、对HelloWorld程序的解释说明
### 10.1 类体概念的说明及缩进
```java
1、在java中任何有效的代码必须写到“类体”当中,最外层必须是一个类的定义。
后期会学包的声明:package、import等写到包的外面。
2、什么是类体
public表示公开的,class表示定义一个类,HelloWorld是一个类名,
类名后面必须是一对大括号,这一对大括号被称为“类体”
声明/定义一个公开的嘞,起个名字叫HelloWorld,即HelloWorld是一个类名。
public class HelloWorld{//类体}//有些空格是不能省略的
3、大括号必须是成对的。并且建议都要成对编写,这样才不会丢掉。{} [] () 都需要成对写
4、什么时候代码缩进
我包着你,你就比我低一级。你就需要缩进。
没有合理的缩进,代码可读性很差。
或许也可以这样说,大括号里的都需要缩进。
有的使用Tab键,有的缩进三个空格,有的缩进4个空格。
SHift+Tab是左缩进,Tab是右缩进
缩进就是可读性问题,不缩进也不影响程序的编译和执行
```
### 10.2 类体解释说明
```java
1、类体里面所有的代码被称为:main方法----->程序的入口,SUN公司java语言规定的
2、也就是说,JVM在执行程序的时候,会自动去找这样一个方法。
没有这个规格的方法,程序是无法执行的。
3、main方法也可以叫主方法。
4、注意:方法必须放到“类体”中,不能放到“类体”外面。
类体里面包含方法。
5、注意,如果在java文件中,只声明了类,没有写主方法,是可以进行编译的,但是运行的时候会报错。
报错信息是找不到main方法,这是在jdk10以后的才有的智能错误提示,之前是没有的。
提示需要定
没有合适的资源?快使用搜索试试~ 我知道了~
通过学习Java系列的技术完成应用软件的开发,.rar
共232个文件
png:64个
txt:57个
xml:28个
需积分: 5 0 下载量 15 浏览量
2023-08-07
13:01:35
上传
评论
收藏 195.54MB RAR 举报
温馨提示
1.1什么才是软件开发的葵花宝典? 让我们先从一些现象出发。我们的前提是,软件开发是一项智力密集型劳动。对于智力密集型劳动,我们观察到的现象是,个体的表现差异很大,团队的表现差异很大,组织的表现差异很大,国家的表现差异很大。这不象体力占主要的劳动,象百米王跑百米的速度也仅比我快50%。但在棋类运动中,一个高手可以车轮战数位低手,而且毫无例外地将他们一一击败! 这些智力运动员表现出的特点是,计算精确而且速度快。其行为很象东方不败。虽然关于葵花宝典的传说很多,但最准确的描述只有一个字“快”。东方不败已经快到了吓人的地步。就象卡斯帕罗夫已快到了深蓝的地步。 在软件开发中,我们同样注意到这样一种高手,他们可以每天写出一千行左右的高品质代码。他们可以运用已有的一些软件包,迅速完成一个新的产品。他们可以在很短的时间内,学会一项新的程序语言或是新技术。他们表现出一种神奇的速度。 在武侠小说中,所有的高手都有一些凡人不能企及的表现。象张无忌学太极,用龙爪手击败龙爪手名家;乔峰用太祖长拳击败天下英雄;姑苏慕容以其人之道还治其人之身,令狐冲一剑剌瞎十几双眼睛等等。
资源推荐
资源详情
资源评论
收起资源包目录
通过学习Java系列的技术完成应用软件的开发,.rar (232个子文件)
jdk1.8中文.CHM 50.45MB
JDK6API中文参考手册.chm 29.99MB
test01.class 1KB
ArithmeticTest01.class 1KB
VariableTest02.class 861B
VariableTest03.class 667B
changeTest.class 652B
VariableTest01.class 577B
Test.class 537B
IdentifierTest.class 479B
stylesheet.css 13KB
集合继承结构图.docx 35KB
.gitignore 350B
.gitignore 176B
.gitignore 176B
.gitignore 176B
.gitignore 176B
.gitignore 176B
.gitignore 176B
.gitignore 176B
HelloWorld.html 8KB
help-doc.html 6KB
index-all.html 4KB
package-summary.html 4KB
package-tree.html 3KB
overview-tree.html 3KB
constant-values.html 3KB
deprecated-list.html 3KB
index.html 3KB
package-frame.html 726B
allclasses-frame.html 619B
allclasses-noframe.html 599B
project00002.iml 423B
project00007.iml 423B
project00005.iml 423B
project00006.iml 423B
project00003.iml 423B
project00008.iml 423B
project00004.iml 423B
java_workspace.iml 336B
HelloWorld.java 5KB
IdentifierTest.java 3KB
VariableTest01.java 3KB
VariableTest02.java 2KB
ArithmeticTest01.java 854B
test01.java 789B
changeTest.java 786B
VarTest01.java 742B
VariableTest01.java 672B
VariableTest03.java 576B
Test.java 402B
IdentifierTest01.java 112B
script.js 827B
project00002.kotlin_module 16B
README.md 10KB
.name 12B
package-list 1B
JavaSE零基础讲义.pdf 16.06MB
JavaSE零基础讲义.pdf 16.06MB
JavaSE进阶-05-集合.pdf 793KB
006-动力节点-面试题-线程.pdf 770KB
JavaSE进阶-01-面向对象.pdf 698KB
002-动力节点-面试题-基础语法.pdf 685KB
005-动力节点-面试题-集合.pdf 609KB
004-动力节点-面试题-异常.pdf 605KB
001-动力节点-面试题-JVM.pdf 602KB
JavaSE进阶-06-IO流.pdf 586KB
JavaSE进阶-03-常用类.pdf 561KB
JavaSE进阶-07-多线程.pdf 508KB
003-动力节点-面试题-面向对象.pdf 503KB
JavaSE进阶-09-注解.pdf 434KB
JavaSE进阶-04-异常处理.pdf 429KB
JavaSE进阶-02-数组.pdf 370KB
JavaSE进阶-08-反射机制.pdf 356KB
java历史进程.pdf 214KB
java0004.png 150KB
java0005.png 120KB
008-哈希表或者散列表数据结构.png 78KB
java0002.png 65KB
009-对象和引用.png 64KB
002-关于栈数据结构.png 58KB
006-java程序员是转换桥梁.png 53KB
003-方法执行过程中的内存变化.png 52KB
010-自平衡二叉树.png 45KB
008-JVM的主要内存空间(三块).png 45KB
007-生产者和消费者模式.png 45KB
java0007.png 41KB
005-链表(单向链表).png 41KB
001-抽象类的理解.png 40KB
021-super的原理.png 40KB
011-UserTest程序执行内存图.png 38KB
003-线程的start.png 38KB
014-参数传递2.png 37KB
003-对象的序列化和反序列化.png 35KB
010-空指针异常是怎么发生的.png 35KB
016-变量什么时候声明为静态变量.png 35KB
002-Collection的contains方法.png 34KB
008-wait和notify方法的理解.png 33KB
java0006.png 33KB
017-变量什么时候声明为静态的2.png 33KB
共 232 条
- 1
- 2
- 3
资源评论
野生的狒狒
- 粉丝: 1682
- 资源: 1668
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功