当前位置: 首页 > news >正文

【17-Ⅰ】Head First Java 学习笔记

HeadFirst Java

本人有C语言基础,通过阅读Java廖雪峰网站,简单速成了java,但对其中一些入门概念有所疏漏,阅读本书以弥补。

第一章 Java入门
第二章 面向对象
第三章 变量
第四章 方法操作实例变量
第五章 程序实战
第六章 Java函数库
第七章 继承与多态
第八章 深入多态
第九章 构造器与垃圾收集器
第十章 数字与静态
第十一章 异常处理
第十二章 GUI(内部类)
第十三章 Swing
第十四章 保存对象
第十五章 网络与线程
第十六章 数据结构
第十七章 程序发布


前言

上一大节,我们着重介绍了ArrayList,以及使用sort方法排序歌单。遇到了编译错误的问题,引入了泛型的介绍,以及comparable与comparator两个接口解决 排序的问题。这一小节继续介绍其他的集合。
之后是对其他集合进行介绍,HashSet,TreeSet,Map
又回到泛型,引入万用字符?,解决多态化集合元素的问题。

我们需要思考如何将写完的程序交给用户手上,具体要给啥呢,是.java和.class文件吗,让客户用IDE去运行??
——最后两章,我们讨论如何组织、包装、部署java程序。具体包括可执行的jar,java Web Start,RMI与Servlets等本机、半本机与远程部署选项。

Java的部署

Java程序由一组类组成,这就是开发过程的输出,问题是开发后这些类怎么弄?
用户的系统与我们并不一样,他们也米有应用程序,我们需要将程序塑造成可部署给外人用的形式。
——本机部署:Executable Jar 与 Java Web Start的半本机半远程技术。
在这里插入图片描述

将源代码与类文件分离

//编译加-d,要求编译输出类文件的存放位置
%cd Project/source
%javac -d ../classes MyApp.java
//执行
%cd Project/classes
%java MyApp(.class)//括号表示可省略

在这里插入图片描述

程序包进JAR(JavaARchive)

JAR是个pkzip格式的文件,其将一组类文件包装起来,交付用户只需JAR文件

JAR表示包装所有类的文件,jar表示整理的工具

用户如何使用JAR?——创建可执行JAR

可执行JAR,用户不需要抽出文件即可运行。程序在JAR下运行,关键在于创建manifest文件,带有JAR信息,告诉JVM哪个类有main()
在这里插入图片描述

执行JAR

在这里插入图片描述

%cd Project/classes //jar最好应在该工作目录下
%java -jar app.jar //JVM检查JAR的manifest寻找main(),否则异常

JVM从JAR中载入类,调用main()方法,一旦执行该方法,涉及的类,JVM查询来源寻找,即查classpath下的所有JAR文件
问题思考:为什么只对classes目录jar
在这里插入图片描述

包(package)

相同名称的类,你可能会与Java API下包的类冲突,所以,前面的内容中,我们应该将自己的类包进包中,再将整个包JAR

包的主要目的就是避免类名冲突,回忆第六章,包名 像是 类的全名

在这里插入图片描述

防止包名冲突

反向加上域名称
在这里插入图片描述

类包在包中

1.包名称,如com.headfirstjava
2.类中加入包指令

package com.headfirstjava;
import ...
public class test {
}

3.设定对应目录结构
在这里插入图片描述

编译与执行包

对于Java API核心类,编译器和JVM都可找到类;关键在于自己写的类,按以上规则包装,是最可靠的
在这里插入图片描述

-d指令

将编译结果输出到指定目录,且可自动建立对应包的输出目录
在这里插入图片描述

一旦类被装进包中,必须在Bash栏指定类的全名。
比如 java com.foo.Book,JVM会先找带有foo目录的com目录,再去查找Book类

以包创建可执行JAR

1.确定所有类文件在class目录下,正确对应包结构
2.创建manifest.txt描述带有main()的类(完整名),放在classes目录下

Main-class: com.headfirstjava.test

3.执行jar工具创建带有目录结构与manifest的JAR文件

%cd Project/classes
%jar -cvmf manifest.txt test.jar  com  //指定com目录即可,其下包的类会包进JAR

在这里插入图片描述

思考:manifest文件在jar中何处?
使用jar工具解压即可知道
在这里插入图片描述

思考:用户尝试执行JAR但没有安装Java?

无JVM,所以不执行
如何让用户安装Java呢?
——提供工具创建installer,检测用户是否安装,无则帮用户安装并设定Java
在这里插入图片描述

练习
如图所示,如何实现编译、执行、创建JAR、执行JAR。

%cd source
%javac -d .../classes javaranch.cows.Foof.java%cd classes
%java javaranch.cows.Foof%jar -cvfm manifest.txt Foof.jar javaranch%java -jar Foof.jar

在这里插入图片描述

http://www.lryc.cn/news/345408.html

相关文章:

  • weblogic 反序列化 [CVE-2017-10271]
  • CoPilot 产品体验:提升 OpenNJet 的控制管理和服务提供能力
  • Leetcode 第396场周赛 问题和解法
  • OC foudation框架(上)学习
  • 【机器学习300问】83、深度学习模型在进行学习时梯度下降算法会面临哪些局部最优问题?
  • 基于springboot的校园管理系统源码数据库
  • 图形网络的自适应扩散 笔记
  • vue基础配置
  • C++基础中的存储类别
  • 【NPM】Nginx Proxy Manager 一键申请 SSL 证书,自动续期,解决阿里云SSL免费证书每3个月失效问题
  • 教你解决PUBG绝地求生游戏中闪退掉线无法重连回去的问题
  • 24 Debian如何配置Apache2(4)LAMP+phpMyAdmin部署
  • centos安装paddlespeech各种报错解决方案
  • 谈基于ATTCK框架的攻击链溯源
  • 在Ubuntu下搭建自己的以太坊私有链
  • 巩固学习4
  • Conda安装rasterio报错
  • linux安装 mysql
  • 暴力法解决最近对问题和凸包问题-实现可视化
  • [Kubernetes] Rancher 2.7.5 部署 k8s
  • 码题杯 世界警察 思想:双指针
  • drawio 网页版二次开发(1):源码下载和环境搭建
  • 算法训练Day33 |● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯
  • 【算法】滑动窗口——将x减到0的最小操作数
  • 《引爆流量获客技术》实操方法,手把手教你搭建盈利流量池
  • 【记录】常见的前端设计系统(Design System)
  • 如何使用Whisper音频合成模型
  • 网络相关笔记
  • 由C# yield return引发的思考
  • 【问题解决】EasyExcel导出数据,并将数据中的实体类url转为图片