JavaSE学习笔记_9:Java包

全面JavaSE学习资料包:从基础到高级特性 Java,由Sun Microsystems公司于1995年发布,是现代编程语言中最具影响力的一种。从简单的桌面应用到庞大的企业级系统,Java的应用范围广泛,其核心特性包括跨平台性(一次编写,到处运行)、面向对象、安全性、多线程、自动垃圾收集等。Java的跨平台性得益于其独特的虚拟机(JVM)架构,它允许Java字节码在不同操作系统上运行。随着Java版本的迭代更新,Java也在不断地引入新的编程范式,如Lambda表达式、模块化系统等,进一步增强了其功能性。 阅读详情

 Java包

 

java.lang:java的核心包。Jdk1.2版本以后,该包中的类自动导入。

java.awt:用于制作图形界面。

java.io:用于操作设备上的数据。

java.util:定义的是java的工具类,如集合,日期。

java.net:用于网络通讯。

 

 

1、包package

包:就是一个文件夹。用于存放类文件的。不同包中的类文件名可以重复。包的出现让程序的源文件和类文件分离。一般包中存放的.class文件对应的.java文件中不包含测试类(主类)。

 

包:

① 对类文件进行分类管理。

② 给类提供多层命名空间。

③ 写在程序文件的第一行。

④ 类名的全称:包名.类名。有两个体现。运行、创建。

⑤ 包也是一种封装形式。

 

如:

Package pack;

class PackageDemo

{

Public static void main(String[] args)

{

System.out.println(“hello package”);

}

}

 

(1)手动创建包:

在A路径下,建立一个包pack。

打开dos命令行,切换到源文件所在的路径下,输入以下命令:javac PackageDemo.java,则在该路径下产生一个.class文件。再将该.class文件放进包中。如果A路径就是当前路径,则再在dos控制台输入以下命令:java pack.PackageDemo;如果A路径不是当前路径,则运行前在执行一条命令:set classPath=.;A,然后再在dos控制台输入以下命令:java pack.PackageDemo,则会显示出结果。

 

(2)通过命令创建包:

打开dos命令行,切换到源文件所在的路径下,输入以下命令:javac -d  c:\myclass (可以是任意的路径,随你意,如果是当前路径,则用.代替) PackageDemo.java,则在c:\myclass路径下会有一个包pack,里面有一个.class文件。

在分别再dos控制台上先后输入命令:set classPath=c:\myclsss(注意不是c:\myclass\pack)和java pack.PackageDemo,则会显示出结果。

 

2、包与包之间的访问

(1)包与包之间进行访问,被访问的包中的类以及类中的成员访问权限必须是public。(一个文件中允许有多个类,但是只有一个公共类。因为类前面加了公共以后,类名必须要和java文件名保持一致,现在有多个公共类,到底保存为哪一个就不清楚了。)

 

(2)在A路径下分别创建两个.java文件。

PackageDemo.java

代码:

package pack;

class PackageDemo

{

public static void main(String[] args)

{

packa.DemoA d=new packa.DemoA();

d.show();

}

}

 

DemoA.java

代码:

package packa;

pubic class DemoA

{

public void show()

{

System.out.println(“demoa show run”);

}

}

它们的.class文件存放在B路径下。

 

 

打开dos命令行,切换到A路径下:

先编译DemoA.java。javac -d c:\myclass DemoA.java。在编译PackageDemo.java,在此之前需指定路径,让虚拟机可以找到DemoA.class文件,就不需要在考虑是不还要编译DemoA.java,通过命令:set classPath=B。也为后面运行成功铺垫,运行时找到是.class文件,而它们都存在B路径下。

 

再运行PackageDemo.class文件。java pack.PackageDemo。

 

以前,我们把多个文件都放在一个文件夹下,不管是.java文件还是.class文件。那么我们互相访问的规则和一个文件中多个类之间的访问一样。

 

protected:

现在:PackageDemo.java、DemoA.java、DemoB.java都存放在A路径下;PackageDemo.class、DemoA.class、DemoB.class文件都存放到B路径下。

DemoA.java

代码:

package packa;

pubic class DemoA extends packb.DemoB

{

public void show()

{

System.out.println(“demoa show run”);

method();

}

}

 

DemoB.java

代码:

package packb;

public class DemoB

{

public void method()

{

System.out.println(“demoB method run”);

}

}

 

 

PackageDemo.java

代码:

package pack;

class PackageDemo

{

public static void main(String[] args)

{

packa.DemoA d1=new packa.DemoA();

d1.show();

 

packb.DemoB d2=new packb.DemoB();

d2.method();

}

}

编译运行成功。

当是如果:

DemoA.java

代码:

package packa;

pubic class DemoA extends packb.DemoB

{

public void show()

{

System.out.println(“demoa show run”);

method();

}

}

 

DemoB.java

代码:

package packb;

protected public class DemoB

{

public void method()

{

System.out.println(“demoB method run”);

}

}

 

 

PackageDemo.java

代码:

package pack;

class PackageDemo

{

public static void main(String[] args)

{

packa.DemoA d1=new packa.DemoA();

d1.show();

 

packb.DemoB d2=new packb.DemoB();

d2.method();

}

}

才可以编译运行成功。

 

包也有层次关系。如:

DemoA.java

代码:

package packa.haha.heihei.hehe;

pubic class DemoA

{

public void show()

{

System.out.println(“demoa show run”);

}

}

 

PackageDemo.java

代码:

package pack;

class PackageDemo

{

public static void main(String[] args)

{

packa.haha.heihei.hehe.DemoA 

d=new packa.haha.heihei.hehe.DemoA();

d.show();

}

}

 

3、导入import

刚才我们也看到了,包名一旦具有了层次,访问里边的类就比较麻烦。因此我们可以使用关键字:import。导入的是包中类。

如:

DemoA.java

代码:

package packa.haha.heihei.hehe;

pubic class DemoA

{

public void show()

{

System.out.println(“demoa show run”);

}

}

 

PackageDemo.java

代码:

package pack;

import packa.haha.heihei.hehe.DemoA

class PackageDemo

{

public static void main(String[] args)

{

DemoA d=new DemoA();

d.show();

}

}

如果想使用包中多个类,可以一个一个导入,如:

import packa.haha.heihei.hehe.DemoA

import packa.haha.heihei.hehe.DemoA1

import packa.haha.heihei.hehe.DemoA2

 

也可以:

import packa.haha.heihei.hehe.*

但是最好需要哪个导入哪个。节省内存。

 

包名不能重复,建立包名可以使用url来完成定义,url是唯一的。特别是多层次包。

 

4、jar包

在java当中,jar包是一个压缩包。当包越来越多的时候,我们就将它们压缩成一个jar包。这与Windows中的打包思想相同。Jar包也可以被WinRAR打开。压缩的都能。

 

打包用到了JDK中的一个工具:jar.exe。在dos控制台中使用该工具要切换到包所在的路径下。

打包命令:jar -cf haha(jar包的包名任意取).jar  包1 包2 包3 ....

查看归档文件:如:jar -tf haha.jar

 

 

数据重定向:如:jar -tf haha.jar  >c:\1.txt

将haha.jar中的内容复制到c盘下的1.txt文件中

 

 

jre下的bin:运行环境类库

jdk中的bin:编译环境类库,bin下面有tool.jar。当程序编译后:NoClassDefFoundError:com/sun/tools/javac/main。则表示jdk中的bin下面的tool.jar丢失。在别处烤一个可恢复。

 

 

 

 

2015-11-25至2015-11-30著

【WorkBuddy专栏68】HY3绕路部署vsDS4直击根因——一次真实踩坑揭露两个AI模型的推理差距 阅读详情

相关推荐

【论文+CAD图纸】光储充一体化微电网设计

近些年来,我国的经济发展迅速,对能源的需求不断增长,也加重了对环境的破坏,违背了我国的可持续发展战略。所以迫切需要寻找新型能源。由于太阳能在使用时不会产生污染,所以太阳能逐渐受到人们的重视。我国的太阳能资源丰富,具有的开发利用潜力。特别是近些年“光储充”一体化充电站为高科技绿色充电模式,“以光养桩”使光伏、储能、智能充电协同,智能微电网与公共电网互动,本设计对探索清洁可再生能源在民用场合的应用,有着重大的理论和工程价值。本文综述国内外相关光伏发电的成果和发展现状;

weixin_761237174的博客 925

java中javaSE与javaEE的区别(适合新人)

这些文章看起来非常的脑残,甚至是无知,但是毫不谦虚的说,在我初学java的时候,甚至学了一年半载的时候,这两个东西我都不知道是什么东西。 所以这文章是为了让初学者更好的在大脑中构建这个编程的思想, 1,javaSE是什么? 怎么说吧,可以理解为javaSE是java的基石,如果将java程序想象成一座高楼大厦,那么javaSE就是地基。 官方的解释: Java SE(Java Platfor...

qq_41566219的博客 11万+

Android wifi源码分析(二) Wifi关闭流程

接着上一篇,这篇说一下Wifi的关闭流程。 由上一篇可以知道,framework层提供的wifi开关接口都是**setWifiEnabled**,只是参数不同而已。*true*表示开启wifi、*false*表示关闭wifi。

奋斗的菜鸟ing 3297

(java学习笔记)JavaSE基础

Java技术体系平台 JavaSE :标准版 面向桌面型应用(Windows下的应用程序)的Java平台。提供完整的Java核心API,也叫J2SE. JavaEE:企业版 开发企业环境下的应用程序。该技术体系中包含的技术 Servlet Jsp。主要针对Web应用程序开发。也叫J2EE. JavaME:小型版 支持Java程序运行在移动终端(手机、PDA:掌上电脑 条码扫描器、RFID读写器、P...

陌然白(小白)的博客 4057

RocketMQ源码分析之消息轨迹

文章目录前言一、消息轨迹二、消息轨迹源码分析1、producer端2、consumer端三、消息轨迹中存储的信息1.TraceContext2.TraceBean3.TraceType四、总结 前言   本篇文章将会从以下方面介绍消息轨迹:什么是消息轨迹?如何启用消息轨迹?示例demo、消息轨迹的源码分析和消息轨迹中存储的信息。最后会用一张图来总结消息轨迹的工作原理。 一、消息轨迹 1.什么是消息轨迹? 消息轨迹是用来跟踪记录消息发送、消息消费的轨迹。 2.如何启用消息轨迹? broker端 需要在b

不爱学习的小妞博客 1076

深入解析ST MC SDK(WorkBench)工程结构:从零搭建FOC电机控制项目

本文深入解析了ST MC SDK(WorkBench)工程结构,详细介绍了如何从零搭建FOC电机控制项目。通过ST MC SDK和WorkBench工具链,开发者可以快速配置电机类型、控制策略等参数,生成完整的FOC控制工程。文章还拆解了工程结构中的核心控制模块、HAL硬件抽象层、芯片系统初始化和电机控制算法库,并提供了无传感器FOC实战技巧和常见问题排查指南,帮助开发者高效掌握STM32F407ZGT6开发板上的FOC电机控制技术。

weixin_29173777的博客 411

【Java】JavaSE学习笔记

本文包括Dos命令、基础概念、变量类型、类型转换、变量与常量、运算符、包、JavaDoc、输入输出、程序流程、数组、常用类以及面向对象编程(OOP)的基础知识。文章详细介绍了Java的运行机制、环境变量配置、变量命名规范、逻辑运算符、数组的声明与初始化、Arrays类的常用方法、时间类、字符串类、浮点数运算类、随机数类等。此外,还简要提及了面向对象编程的本质,即以类组织代码,以对象封装数据。这些内容为Java学习者提供了全面的基础知识和操作指南。

ayaishere_的博客 1011

昇腾CANN实战:如何用DVPP+AIPP实现32路视频流毫秒级预处理(附性能对比)

本文深入探讨了昇腾CANN架构中DVPP和AIPP模块在32路视频流毫秒级预处理中的硬件加速技术。通过异构计算架构的优化,实现了从传统CPU方案的40.7毫秒到CANN方案3.4毫秒的显著性能提升,特别适用于智能安防领域的实时视频分析需求。文章详细解析了DVPP多通道并行设计和AIPP模型级预处理融合的技术细节,并提供了性能对比数据与实战调优经验。

alice7model的博客 919

javaSE中的包,继承

javaSE中的包,继承 一、包 包 (package) 是组织类的一种方式. 使用包的主要目的是保证类的唯一性 1.1、导入java包中的 一个类 import:导入包中的类 package:“包”,指类所在的包。意思就是这里面包含了类。 import java.util.Arrays;// public class TestDome { public static void main(String[] args) { int[] array = {1,2,3,4,5};

ryy1999的博客 397

DCNv4+YOLOv8:2024最新可变形卷积赋能目标检测,从原理到实战的科研级优化指南

从理解DCNv4“自适应变形卷积核”的核心思想,到亲手将其嵌入YOLOv8并验证在复杂场景的检测效果,再到基于此探索属于自己的科研与工程方向——这个过程能让你深刻理解目标检测中“特征自适应提取”的核心价值。现在就开始行动,相信你会在目标检测的“自适应特征提取”之路上,走出一条属于自己的技术路径。实验通常会证明:嵌入DCNv4后,YOLOv8在复杂场景下的检测精度提升3-5个百分点,尤其是小目标和遮挡目标的AP提升更为明显,而推理速度仅下降5%-10%(可通过模型量化进一步优化)。2024年最新推出的。

m0_64661770的博客 268

第67步 时间序列建模实战:ARIMA建模(Stata)

第67步 时间序列建模实战:ARIMA建模(Stata)

Jet4505的博客 6819

[Java面试]JavaSE知识回顾

Java编程的基础知识和关键主题,从变量、基本数据类型、运算符,到更高层次的面向对象编程的概念,如类和对象,封装、继承、多态等三大特征,还包括接口和抽象类的异同,以及拷贝的不同方式。进一步探讨了Object类及其方法,包括==和equals()的区别,hashCode()方法的作用,以及toString()和finalize()等。特别关注了字符串的不可变性,深入讲解了String类的特性。

dandelionl_的博客 3632

Spring AI 项目实战(三):Spring Boot + AI + DeepSeek 打造智能客服系统(附完整源码)

摘要 本文介绍了基于Spring Boot 3.2和Spring AI 1.0.0-M4构建智能客服系统的技术方案。系统采用分层架构设计,集成DeepSeek API提供自然语言处理能力,使用MyBatis和H2数据库实现数据持久化,并通过Thymeleaf+Bootstrap构建前端界面。文章详细阐述了项目的技术栈选择、Maven依赖配置、应用架构设计,以及各模块的功能划分,为开发者提供了完整的智能客服系统实现方案,涵盖从后端服务到前端交互的全流程开发指导。

博客 3843

【JavaSE系列】Java面向对象之包与继承

本篇文章带大家认识Java基础知识——包与继承,在Java当中一切皆可视为对象,而对象是由类所实例化出来的,将类组织起来那就是一个包,类与类之间是可以存在关联的,例如猫,狗,鸟等动物存在相同的行为或特征,我们把这些相同的行为与特征都集中起来构建成一个新的类,则猫,狗,鸟等动物都继承了该类。

未见花闻的博客 2034

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

区分java的三大版本:JavaSE、JavaME、JavaEE

区分java的三大版本:JavaSE、JavaME、JavaEE

2301_77899321的博客 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JavaSE:包

1.包是什么 包 (package) 是组织类的一种方式 在同一个工程中允许存在相同名称的类,只要处在不同的包中即可。 2.自定义包 基本规则 在文件的最上方加上一个 package 语句指定该代码在哪个包中 包名需要尽量指定成唯一的名字, 通常会用公司的域名的颠倒形式(例如 com.niu.www) 包名要和代码路径相匹配. 例如创建 com.bit.demo1 的包, 那么会存在一个对应的路径 com/niu/www来存储代码 如果一个类没有 package 语句, 则该类被放到一个默认包中. 操作

weixin_55547460的博客 265

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

javaSE学习笔记_目录

IO字节流 javaSE (二十九)IO.read()输出是int的原因、fileoutputstream的追加功能、用byte[]优化拷贝文件、Buffered缓冲区内存示意图 javaSE (三十)IO流异常处理、图片加密处理、输入文件路径并拷贝文件内容、在文件中键入内容 计算机基础知识 javaSE (一)数据类型转换、++/–运算符 javaSE (二)逻辑/位运算符、左移右移运算符、sw...

PizAn的博客 7717

JavaSE学习笔记 Day9

面向对象思想

CHiN_951的博客 640

Java中JavaSE与JavaEE的区别

JavaSE和JavaEE都是Java技术的重要组成部分,但它们在功能、用途和设计理念上都有所不同。JavaSE提供了基础的编程功能和API,适用于开发桌面和简单服务器端应用程序;而JavaEE则提供了企业级功能和API,适用于开发大型、分布式的企业级应用。在实际应用中,应根据项目需求选择合适的Java平台版本,并结合成熟的开发框架和工具来提高开发效率和代码质量。版权声明:本博客内容为原创,转载请保留原文链接及作者信息。参考文章JavaSE与JavaEE的区别JAVAEE和项目开发——web实战案例。

ning的博客 3137

JavaSE学习笔记

JavaSE 第一章 JavaSE基础 1.1、十进制与二进制的相互转换 十进制转二进制: ​ 除2 以15为例 ​ 2/15 余数 ​ 2/7 1 ​ 2/3 1 ​ 2/1 1 ​ 0 1 从下往上读为:1 1 1 1 二进制转十进制:乘以二的幂指数 以1 1 1 1为例 1 1 1 1 ...

adad3的博客 1319

我的javaSE学习笔记

layout: post title: “我的JAVASE自学笔记” date: 2019-05-18 20:23:25 +0800 我的JAVASE自学笔记 作者:吴甜甜 个人博客网站: wutiantian.github.io 基础知识 学习书籍:《疯狂JAVA讲义》李刚 搭建命令行编译环境 下载软件jdk jdk是开发java要用到的工具,里面包括 ①jre (java ru...

吴甜甜的技术博客 1954

JavaSE:初识Java(学习笔记)

java的体系结构,java的优势/特性,jdk , jre , jvm ,跨平台原理 , 垃圾回收机制 , 注释

2301_81819439的博客 1527

JavaSE 和 Java EE 分别是什么

Spring 就是使用 JDK 可以跑起来的企业应用。最开始的设计初衷就是丢掉麻烦笨重的 Java EE。JavaSE 和 Java EE 分别是什么 - Java - OSSEZJava 作为最流行的编程语言受到了许多人的喜爱,其在编程中的地位自不必多说。对于许多才刚刚入门 Java 的朋友来讲,常常会产生这样的困惑,JavaEE是什么?JavaSE又是什么?Java SEJava SE 是 Java Platform, Standard Edition 的简写。简称就是 Java 的标准版。

HONEY MOOSE 1410

Java学习笔记 - JavaSE

JavaSE全部知识点总结

CLXKZJ的博客 1127

【狂神说Java】Java零基础学习笔记-JavaSE总结

【狂神说Java】Java零基础学习笔记-JavaSE总结

ঞ黎明の微笑的博客 318

JavaSE学习笔记 Day16

常用工具类、字符串

CHiN_951的博客 960
上一篇: JavaSE学习笔记_6:Java-Object类
下一篇: JavaSE学习笔记_8:Java异常
java_程序媛
博客等级 码龄11年 26粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值