首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java程序设计(基础)- 概述

所以package的两个主要作用就呼之欲出了:管理类,解决命名冲突。...,而类名就相当于一个人的名;而一个人的姓名是姓+名;所以以上两个类的全称分别是:com.Test、cn.Test;当然就不会出现命名冲突了; 一般地,我们将具有相同功能的类放在一个package中。...*后,在代码里面使用List,这个时候就炸锅了,因为这两个下面都有List,编译器就蒙圈了,它不知道,你要使用哪一个List;所以这个时候就要指定清楚,你具体使用哪一个。...总之,在使用import的时候,最好还是使用单类型导入,总结起来好处有两个: (1)编译速度:虽然无论是哪种导入都不影响Java代码执行效率,但是在一个很大的项目中,它们会极大的影响编译速度....(2)命名冲突:解决避免命名冲突问题的答案就是使用全名.而按需导入恰恰就是使用导入声明初衷的否定. 3.类/接口定义部分 类或者定义部分就是Java源程序的主体了: 类定义 [修饰符]class

36210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Spring Cloud 系列之注册中心 Zookeeper

    ZooKeeper 代码版本中,提供了分布式独享锁、选举、队列的接口。其中分布锁和队列有 Java 和 C 两个版本,选举只有 Java 版本。 ?...包冲突   在使用 Zookeeper 做注册中心时可能应为服务器上的 Zookeeper 版本与自己使用的版本不一致导致报错(一般体现为启动类错误),此时我们就需要解决 jar 包冲突了。...-- 再导入合适的 zookeeper --> org.apache.zookeeper zookeeper<...1.4 集群 1.4.1 Zookeeper 集群   Zookeeper 集群中节点个数一般为奇数个(>=3),若集群中 Master 挂掉,剩余节点个数在半数以上时,就可以推举新的主节点,继续对外提供服务...xxx.xxx.xxx.xxx:2888:3888 server.3=xxx.xxx.xxx.xxx:2888:3888 ☞ myid   在我们创建 data 目录中新建一个 myid 文件,在里面写 1/2/3 来表示自己是哪一个编号的机器

    82831

    sofa-ark类隔离技术分析调研

    可要知道,这并不是天经地义的事情,通常情况下,如果要运行一个jar包,至少得满足两个条件: 在jar包中的Manifest文件中要通过"Main-Class"属性,告诉jvm去启动哪个类的main函数。...当我们将打出来的包上传到Nexus或者其他maven包管理中心时,事实上我们会上传一个pom文件、两个jar包、以及一些自动生成的校验文件: ├── plugin-test-1.0-20181203.131726...priority进行选择,判断一个类到底是用哪一个插件的ClassLoader来加载。...慢着,我们在打包时都没有指定Main-Class,如果是非SpringBoot项目,甚至都没有加@SpringBootApplication注解,那么打包插件是怎么知道我要运行的是哪一个类呢?...对依赖进行导入导出的管理引入了一定的复杂性,还是有一定学习成本的。 最后再强调一点,sofa-ark项目并不是解决依赖冲突问题的银弹。

    1.8K31

    JAR冲突问题的解决以及运行状态下如何查看加载的类

    今天碰到群里小伙伴问,线上程序好像有多个不同版本的Netty包,怎么去看到底加载了哪一个?...下面介绍两个重要命令: 第一个:sc命令,我们确认一下可能冲突的jar包下面,是否有对应的class。有些不同版本包下class就不一样,马上就可以分辨出来。...那么解决冲突要做的就是找到到底哪里冲突了以及我们要去除或者强制 找出版本冲突的方法:使用Maven命令:mvn -U dependency:tree -Dverbose。...命令执行之后,会在控制台以树状形式列出所有依赖内容,然后通过搜索的方式查找冲突的包,看看都是从哪个依赖中带进来的(在IDEA中搜索会高亮,更容易找到)。...- org.attoparser:attoparser:jar:2.0.5.RELEASE:compile 解决版本冲突的方式主要两种: 1、通过上面的命令找到不需要的版本之后,在引入的依赖中,使用exclusions

    78110

    超级详细的 Maven 教程(基础+高级)

    当 A jar 包用到了 B jar 包中的某些类时,A 就对 B 产生了依赖,那么我们就可以说 A 依赖 B。...依赖管理中要解决的具体问题: jar 包的下载:使用 Maven 之后,jar 包会从规范的远程仓库下载到本地 jar 包之间的依赖:通过依赖的传递性自动完成 jar 包之间的冲突:通过对依赖的配置进行调整...8.1.3 没报错但结果不对 发生这种情况比较典型的原因是:两个 jar 包中的类分别实现了同一个接口,这本来是很正常的。但是问题在于:由于没有注意命名规范,两个不同实现类恰巧是同一个名字。...这里我们引入两个对 netty 的依赖,展示不同 jar 包中有同名类的情况作为例子。...例如,如果你想要构建两个单独的构件成 JAR, 一个使用Java 1.4编译器,另一个使用Java 6编译器,你就可以使用分类器来生成两个单独的JAR构件。

    3.2K41

    Maven(六)之依赖管理

    相信有过一定开发经验的人知道,每当我们需要使用某个框架时,比如 SpringMVC,那么我们需要导入相应的 jar 包,但是手动导入包的时候,往往会漏掉几个 jar 包, 那么在使用该框架的时候系统就会报错...问题就在这里,两个B的版本不一样,将两个都加载进去就会引起冲突,这时候就需要使用exclusions这个属性配置了。...在我们以前创建web工程,编写servlet或者jsp时,就没导入过jar包把,因为myeclipse或者别的ide帮我们提供了这两个jar包,内置了,   所以我们在编译期测试期使用servlet都不会报缺少...所以,根据这个特点,如果使用maven开发项目,就不是web项目了,那么myeclipse就不会在给我们提供这两个jar包,我们就必须自己手动通过坐标从仓库中获取,     但是针对上面的分析,当运行的时候...,tomcat会帮我们提供这两个jar包,所以我们自己从仓库中获取的jar包就不能和tomcat中的冲突,     那么就正好可以通过provided这个属性,来设置这两个jar的作用范围,就是在变异时期和测试时期生效即可

    84780

    javaweb-maven-2-59

    使用4.2.8的 第三种:内部排除法,就是在声明中明确表示不使用某个jar包,自然不会导入,就使用其他的了。这种最常用,直接排除掉了,不容易混乱。...排除的时候可以不写版本号,因为版本大声明里已经做过了 ? 排除,4.2的,使用5的 maven工程要导入jar包的坐标,就必须要考虑解决jar包冲突。...解决jar包冲突的方式二: 路径近者优先原则。直接依赖路径比传递依赖路径近,那么最终项目进入的jar包会是路径近的直接依赖包。 解决jar包冲突的方式三【推荐使用】: 直接排除法。...新建一个父工程,两个都可以选 创建时,模板是否使用都行,解释如上 可以简单至此 ? 创建子模块 父工程唯有moudle可选 ?...从私服下载文件 主要解决本地执行项目时不能自动下载本地仓库不存在的jar包问题 给settings.xml配置 找到,然后配置仓库地址 ? 激活 ? <!

    51120

    OpenMMLab 模型大联动,MMDet 也能用 MMCls 的网络!

    当然,注册不一定仅仅发生在入口程序的最外层,比如在入口程序中没有导入数据处理和增强相关的包,这些类是在执行 build_dataset 时,在 mmcls/datasets/base_dataset.py...Scope 机制的引入,是为了解决一个基础的问题,即类型的冲突,MMDetection 注册了一个 MobileNetV2,MMClassification 也注册了一个 MobileNetV2,到底用哪一个呢...MMCV 中给出的要求十分简单,禁止同一个 Regsitry 中注册两个相同名字的类。...进一步地,每一个代码库在注册自己的模型时,都会注册到代码库自己的 Regsitry 中,而不是注册到 MMCV 统一的 Registry 中,从而避免与其他代码库产生冲突。...通过 scope 这一机制,我们避免了不同代码库之间重复注册产生的冲突,同时使用 scope 来指定 type 具体在哪一个 Registry 中,也使得跨代码库的调用更加显式和清晰。

    1.4K20

    Java基础:六、包 (1)

    ,只需要使用import java.util.* 之所以要导入,就是要提供一个管理名字空间的机制。...所有类成员的名称都是彼此隔离的。A类中的方法f()与B类中具有相同特征标记(参数列表)的方法f()不会彼此冲突。而类名称防止冲突,是通过Java对名称空间的完全控制并为每个类创建唯一标识符组合。...因此,在编译少量.java文件之后,就得到大量的.class文件。Java可运行程序是一组可以打包并压缩为一个Java文档文件(JAR,使用Java的jar文档生成器)的.class文件。...是将单一的全局名字空间隔开,使得无论多少人使用Imternet以及Java开始编写类,都不会出现名称冲突问题 创建独一无二的包名 包可以由许多.class文件构成。...解释器就在这些目录中查找与你想要创建的类名称相关的.class文件。 冲突 如果将两个含有相同名称的类库以 * 的形式同时导入?

    57210

    springboot如何加载应用程序

    1.BOOT-INF:这个文件夹下有两个文件夹classes用来存放用户类,也就是原始jar.original里的类;还有一个是lib,就是这个原始jar.original引用的依赖。...Start-Class: com.zhuxingsheng.App Main-Class:记录了java -jar的启动入口,当使用该命令启动时就会调用这个入口类的main方法,显然可以看出,Springboot...Start-Class:应用自身的com.zhuxingsheng.App入口类,当内嵌的jar包加载完成之后,会使用LaunchedURLClassLoader线程加载类来加载这个用户编写的入口类。...并在工程本身的resources里面也放一个META-INF/app.properties 此时系统中有两个META-INF/app.properties,通过下面的四种情况来加载资源文件,会获取到哪一个文件...当依赖jar包中有与工程目录下有同路径同名资源文件时,为了不必要的冲突,在classloader#getResource时,不要使用绝对路径。

    1.1K20

    JRE System Library、Referenced Libraries、Web App Libraries的含义

    首先,Referenced Libraries 可以是引用 WebRoot/WEB-INF/lib/ lib下的jar包,也可以是其他从别的地方复制过来的第三方jar包。...Referenced Libraries 是编译环境下使用的JAR包,所谓编译环境下使用的JAR包,就是说你在Eclipse中进行源文件的编写的时候,所需要引用到的类都 Referenced Libraries...WebRoot/WEB-INF/lib 中的JAR包是运行时环境下使用的JAR包,所谓运行时环境下使用的JAR包,就是说你在运行你的项目的时候所需要使用的JAR包的集合。...---- Referenced Libraries 是存放第三方的jar包,也就是自己导入的jar包。在项目属性的Java Build Path中的Libraries中配置。...jar包:通常是开发时要引用通用类,打成包便于存放管理。 ear包:企业级应用,通常是EJB打成ear包。 所有的包都是用jar打的,只不过目标文件的扩展名不一样。

    1.4K20

    (22) 代码的组织机制 计算机程序的思维逻辑

    本节就来讨论Java中的解决机制,具体包括包、jar包、程序的编译与连接,从包开始。...是两个完全独立的包,并没有逻辑上的联系,Hello类和Test类不能互相访问对方的包可见性方法和属性。...程序的编译与连接 从Java源代码到运行的程序,有编译和连接两个步骤。编译是将源代码文件变成一种字节码,后缀是.class的文件,这个工作一般是由javac这个命令完成的。...总结来说,import是编译时概念,用于确定完全限定名,在运行时,只根据完全限定名寻找并加载类,编译和运行时都依赖类路径,类路径中的jar文件会被解压缩用于寻找和加载类。...将类和接口放在合适的具有层次结构的包内,避免命名冲突,代码可以更为清晰,便于实现封装和模块化开发,通过jar包使用第三方代码,将自身代码打包为jar包供其他程序使用,这些都是解决复杂问题所必需的。

    779100

    Maven相关知识点整理

    maven创建java项目的pom.xml配置演示—使用骨架 如果有需要可以创建两个resource文件,用来存放配置文件 ---- 使用maven创建web项目的pom.xml配置演示—不使用骨架...上面的插件是在测试阶段,对源码进行打包 jar test-jar 上面的写法是同时打两个包,一个源码包,一个一个测试包 execution是执行的意思...,goal是目标的元素,phase是时期的意思 ---- 可以使用alt + insert快速导入jar包和插件 快速导入的前提是本地仓库有相关jar包或者插件 ---- Maven高级部分 分模块开发与设计...artifactld ---- 属性 版本统一的重要性 场景 1.版本更改 不全面,有遗漏,导致部分版本未能更新 2.版本配置有冲突 ---- 定义【每个项目的父工程必须导入一下三个属性...时指定用哪一个 配置启动的指令: installl -P dep_env //指定开发环境 检查仓库的配置文件jdbc.url=的值 是否已经改变 ---- 跳过测试 使用命令跳过测试

    1.5K10

    【十九】初学Kafka并实战整合SpringCloudStream进行使用

    如图可知,大概的一个流程就是(只学习了最基本的使用): 构建消息生产者 指定消息输入通道,并指定该通道指向的Topic 构建消息消费者 指定消息输出通道,并指定该通道订阅哪一个Topic...*,试了很多版本组合都会运行时报错,不是找不到这个类就是找不到哪个类,后面再去研究一下版本匹配问题。 3.1 构建生产者服务 依赖导入完成就开始构建生产者服务。...注意:上图的output输入信道是stream自带的,还自带了一个输出信道input。 所以可以直接使用这两个通道。...对比前面两个监听器,此处使用EnableBinding注解绑定的是自定义的传入信道,然后再通过StreamListener注解,去监听这个传出信道进出消息消费,逻辑处理。...然后重启provider和consumer两个服务,记得要重新编译common模块,因为改了common模块的东西,然后另外两个模块又使用了它。

    40910

    【SpringBoot】入门到精通 这一篇就够了

    ,选择Spring初始化,并配置模块相关基础信息 ②:选择当前模块需要使用的技术集 ③:开发控制器类 @RestController @RequestMapping("/books") public class...springboot_01_quickstart.jar # 项目的名称根据实际情况修改 注意事项: jar支持命令行启动需要依赖maven插件支持,请确认打包时是否具有SpringBoot对应的maven...SpringBoot概述 问题导入 学习了SpringBoot入门案例之后,感觉对比SpringMVC哪一个更加方便简洁?... 实际开发 使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供 如发生坐标错误,再指定version(要小心版本冲突) ...采用jar的打包方式 SpringBoot的引导类是项目的入口,运行main方法就可以启动项目 使用maven依赖管理变更起步依赖项 Jetty比Tomcat更轻量级,可扩展性更强(相较于

    37820

    SpringBoot初级开发

    ①:创建新模块,选择Spring初始化,并配置模块相关基础信息 ②:选择当前模块需要使用的技术集 ③:开发控制器类 @RestController @RequestMapping("/books"...springboot_01_quickstart.jar # 项目的名称根据实际情况修改 注意事项: jar支持命令行启动需要依赖maven插件支持,请确认打包时是否具有SpringBoot对应的maven...SpringBoot概述 问题导入 学习了SpringBoot入门案例之后,感觉对比SpringMVC哪一个更加方便简洁?... 实际开发 使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供 如发生坐标错误,再指定version(要小心版本冲突) jar的打包方式 SpringBoot的引导类是项目的入口,运行main方法就可以启动项目 使用maven依赖管理变更起步依赖项 Jetty比Tomcat更轻量级,可扩展性更强(相较于Tomcat)

    18720

    Android项目实战(三十九):Android集成Unity3D项目(图文详解)

    下面开始详细步骤: 一、Unity3D 工程师 将 项目生成一个类库     这个不多说,让Unity3D 工程师去做 ,我们只需要这个类库就行 二、Android工程导入类库 ?...这个出现的几率比较大,首先看一下unity3d类库的文件目录 , 只有armeabi-v7a 和 x86 两个文件夹 ?    ...所以我们要解决的就是 查看一下app目录下的 和 所有类库下的 libs文件夹或者jniLibs文件夹下 也只能有这两个文件夹 , 多的需要删除     还要注意:    如果你的app目录或者module...2、jar包冲突的问题,这个属于常见问题,类库和app中保留一个就行,不多说了。   ...一般是在类库中,jar包下有这么一个文件,而原来项目中是没有的,是生成类库的时候系统给生成的。      解决方法就是 把该文件从 jar包中删除。

    1.2K100

    Android项目实战(三十九):Android集成Unity3D项目(图文详解)

    下面开始详细步骤: 一、Unity3D 工程师 将 项目生成一个类库     这个不多说,让Unity3D 工程师去做 ,我们只需要这个类库就行 二、Android工程导入类库 ?...这个出现的几率比较大,首先看一下unity3d类库的文件目录 , 只有armeabi-v7a 和 x86 两个文件夹 ?    ...所以我们要解决的就是 查看一下app目录下的 和 所有类库下的 libs文件夹或者jniLibs文件夹下 也只能有这两个文件夹 , 多的需要删除     还要注意:    如果你的app目录或者module...2、jar包冲突的问题,这个属于常见问题,类库和app中保留一个就行,不多说了。   ...一般是在类库中,jar包下有这么一个文件,而原来项目中是没有的,是生成类库的时候系统给生成的。      解决方法就是 把该文件从 jar包中删除。

    1.7K60

    解决jar包冲突的简单办法

    解决jar包冲突的简单办法– 在使用log4j.properties时,pom中导入的一些jar会产生log4j类的冲突报错,以下是一个简单的pom配置: 解决jar包冲突的简单办法 场景:在使用log4j.properties...时,pom中导入的一些jar会产生log4j类的冲突报错,以下是一个简单的pom配置: 复制 从图中发现org-slf4j的版本是一样的,先不管这个,先排除所有试试; 复制 org.apache.zookeeper冲突;; 处理jar冲突: 简介:处理jar包依赖冲突,首先,对于多个jar包都引用同一jar包的情况,最好是在程序中显式定义被共同引用的jar包的依赖,来统一版本号,方便维护 如果A和B都依赖同一...C2版本   [3]如果B版本不支持C2版本,只能降低B版本,找到依赖C2的B版本   从功能性和可维护性考虑,高版本提供的功能更多,bug更少,优先考虑1   再考虑2   最后考虑3 作者

    2.3K20
    领券