有关JAVA包的类名相同问题

在一个包里面有两个文件A.java和B.java,两个文件都自定义了一个Node类。这样写在ecplise
为什么回报“已定义的类”的错。要怎么解决,我只想用自己文件里面的Node类,只是类名字一样。

1个回答

那试试自定义为内部私有类吧,此外两个类中的Node类有什么不同吗?如果没有就不要弄成内部类了,定义为共有类吧。

qq_41084438
qq_41084438 两个类要实现不同的内容,就是在公有类的外面定义一个类,想把它们名字取一样的
11 个月之前 回复
qq_41084438
qq_41084438 謝謝
12 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【java】一个项目有两个相同的类,会出问题么?
是这样的,我现在有个A项目,A项目本身内部有一个类ClassA,但是ClassA是以jar方式引入的依赖,里面有个一个方法叫make() ClassA的包名是,com.make.util 但是,A项目的另一个jar依赖里面有一个类ClassB,用到了ClassA的make方法,两个类我都没有方法改变 现在的需求是,客户要求改变make的方法实现(返回值和入参不变) 我的leader给我的建议是在项目中再新建一个和ClassA一样的类,就是包名,类名,方法名都一样 姑且叫他ClassC,说是这样ClassB调用make方法的时候会用这个新的,这样是可行的么 (背景:买了一个商用项目做二次开发,make方法是商用项目里依赖的东西,所以不能改,但是现在有这个需求) -------------------------------------------------------------- 简单说:两个一模一样的类(包名相同,类名相同,方法名相同,实现不同) 一个在maven的依赖里面,一个是在当前项目里面新写的,那么底层程序引入这个类,实际上用的是那个? =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 经过自己测试,总是会用自己新建的那个类
怎样执行修改后的java核心类
比如JRE的jar包中有java核心类sun.C,然后在项目中建相同的包层次sun,相同的类C,修改其中的方法f()。之后调用C的方法f(),结果为仍然调用jar包中的核心类,没有调用项目中新建的修改了方法后的类C。 那么怎样才能不去读取核心jar包中的类,而是读取项目中创建的相应类呢? 补充说明:如果不是java核心类就不存在这个问题,一般都会优先执行项目中的实际类的,而不会去执行jar包中的类。
java_ant打jar包问题,java_ant打jar包问题
![![图片说明](https://img-ask.csdn.net/upload/201601/19/1453181642_469075.png)图片说明](https://img-ask.csdn.net/upload/201601/19/1453181635_918475.png) 程序中带第三方包,最终合并成一个jar,可以直接运行,现在打出来的包 里面的相同名字的文件不会合并,这个有什么办法吗? 现在是spring的命名空间找不到之类的错,就是spring.handlers被单独开了,有什么办法在打包时自动追加合并,现在我是手动合并的 可以![图片说明](https://img-ask.csdn.net/upload/201601/19/1453181945_405421.png)
java 两个相同的对象属性值的比较
需求:比较两个相同的对象,得到不同的属性值的属性和属性值,后面才是重点:对像里面包含其他的对象,也要拿出来,例如:两个user对象,user里面包含部门,如果两个user下面的部门不一致,要得到分别的部门名称,user还有标签组(是个集合),如果不同也有得到,有办法做吗?
关于java.lang.NoClassDefFoundError的问题
同样的几行代码 放在同一工作台的不同项目中 引用相同的第三方jar包 有一个好用 有一个就会报java.lang.NoClassDefFoundError的错误 十分不解其原因 如果是因为classpath错误两个就都应该不好用啊 求大神解答一下 谢谢!!
大家线上Java应用的热更新都是怎么实现的?
热更新的时候需要注意哪些点呢? 下面是从网上找到的两种解决方法: 解决方案一 : 自定义类加载器。 首先需要明白一点,class相等的判断条件不仅仅是类名相同,还需要加载它的ClassLoader相同。JVM内部规定一个ClassLoader不可以重复定义类,也就是说想要重定义一个类,就必须使用一个全新的ClassLoader。 JVM内部class被卸载的条件及其苛刻,甚至没有明确的方法可以直接调用,只有当加载该类型的类加载器实例为unreachable状态时,也就是没有任何实例,class才有可能被卸载。(启动类加载器实例永远为reachable状态,由启动类加载器加载的类型可能永远不会被卸载) ``` public Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { Class<?> clazz = null; // 首先检查请求的类型是否已经被这个类装载器装载到命名空间中了,如果已经装载,直接返回;否则继续。 if (name.startsWith("com.wafer") || name.contains("Service")) { if (resolve) { resolveClass(clazz); // 链接指定的 Java 类 } // 如果class类被修改过,则重新加载 MoeLoader hcl = new MoeLoader(url); clazz = customLoad(name, hcl); return (clazz); } // 如果类的包名为"java."开始,则有系统默认加载器加载 try { // 得到系统默认的加载cl ClassLoader system = ClassLoader.getSystemClassLoader(); clazz = system.loadClass(name); // 加载名称为 name的类 if (clazz != null) { if (resolve) resolveClass(clazz); return (clazz); } } catch (ClassNotFoundException e) { // Ignore } return customLoad(name, this); } ``` 此范例的核心在于缓存自己已经加载的class,当再次需要加载时,如果发生变更,则可以new一个ClassLoader,这样新的字节码便可以即时生效。 JRbel是一种热更新的方案,它实现的方式是通过在启动参数中添加javaagent,即JVM底层提供的Instrumentation技术,来改变生成对象的方式。 解决方法二: java.lang.instrument这个类很早就出了,redefineClasses这个方法可以更新方法级别的代码,但是不会触发一个类的初始化方法。游戏服务器的bug基本上只需要方法级别的更新就可以了,因为很多重大的bug基本在测试阶段被修复了,少量偶线的bug出现之后有些时候仅仅只需要改动一行代码却有时不得不需要重启所有应用程序,代价都似乎有点大。 现在开始从instrument入手 ``` public static void premain(String agentArgs, Instrumentation inst); public static void agentmain(String agentArgs, Instrumentation inst); ``` 这两个方法都可以获取到Instrumentation对象,通过redefineClasses方法就可以更新对应的方法了 如果是调用premain这个方法 则需要在程序启动的时候指定对应的jar 同时项目里必须引用这个jar 因为获取到这个引用 java -javaagent:agent.jar -jar xx.jar 例如这样 执行这条命令后程序会查找 agent.jar 里的MANIFEST.MF文件里的Premain-Class参数 设置对应的代理类路径就行。例如:Premain-Class: com.test.JavaAgent 还需要加上 Can-Redefine-Classes: true这个参数才能调用redefineClasses方法。同时 可以拦截对应的类添加标记 做性能分析 agentmain 是通过指定对应的进程pid来加载对应的agent.jar 很典型的jconsule jvisualvm都是通过选择java进程来做一个简单的内存 和cpu分析 ,线程dump .Agent-Class 和上面一样 ``` package com.test; import java.lang.instrument.Instrumentation; public class JavaAgent { public static Instrumentation INST = null; public static void premain(String agentArgs, Instrumentation inst){ INST = inst; } } ``` 这里保存下引用就可以了 ,单独打成agent.jar ``` package com.test; import java.io.FileInputStream; import java.lang.instrument.ClassDefinition; public class Test { public static void main(String[] args) { getInfo(); testhot(); } public final static void testhot(){ new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub while(true){ try { if(JavaAgent.INST != null){ FileInputStream is = new FileInputStream("/Users/xxxx/Downloads/Student.class"); byte[] array = new byte[is.available()]; is.read(array); is.close(); Class cls = Class.forName("com.test.Student"); JavaAgent.INST.redefineClasses(new ClassDefinition(cls,array)); } Thread.sleep(1000); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }).start(); } public final static void getInfo(){ new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub while(true){ //System.out.println("=============="+JavaAgent.INST); new Student().getName(); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }).start(); } } ``` 上面就是一个很简单的例子,一个线程在不停的循环检测更新这个类,另外的一个线程在不停的输出这个对象对应的方法输出信息。 测试之后可以发现 ,方法的输出信息已经改变了。
java 不规则矩阵 判断是否包含指定个数的连续相同数字
![图片说明](https://img-ask.csdn.net/upload/201510/18/1445158377_8582.png) 如上图所示 6x7的矩阵 某一条斜线上含有4个连续相同的1 诸如此类的,如何判断 传递需要连续相同数字的个数 num 返回布尔值即可 public static boolean checkDiagonal(int number){ ...... }
一个关于java的编程问题
在包baidu.com中定义类User: 属性:用户名(公开),密码(私有) 方法: 获取用户名,设置用户名,获取密码,设置密码; 在包sina.com中定义类Manager: 属性:User类对象 方法: 构造方法:输入用户名和密码,创建User类对象赋值给属性。 更改密码:首先要求用户输入原密码,输入正确后输入两次新密码,输入相同则更改用户密码为新输入的密码,两次输入不同要求用户重新输入,直到两次输入的密码相同。 在main方法中,创建Manager类对象,更改用户密码。 不是很会做,求大神赐教,最好能多点解释,谢谢了
tomcat8 websocket服务器端java程序如何import自己的包?
我用java+tomcat8搭建一个websocket的应用。在websocket服务器端的java代码中import了一个自己写的包。现在的websocket已经能正常通讯了,只是一执行到我自己写的包的程序就没反应。所有用import导入的系统包都能正常运行,只有我自己写的这个包执行时没任何反应,看起来根本就没有调用。我怀疑是我的包没有放到path里的原因。但是我又不想把我自己写的包放到系统引用的classpath里,只想把它放到项目的路径里和websocket的程序包放在一起。 我现在就是把我自己的程序包和包含websocket程序的包放在同一个目录下的,但是似乎websocket的程序调用不到这个包。我知道java servlet程序实际是在tomcat的work程序下的子目录里运行的,但是我把自己的包复制到那个目录下也不管用。所以我怀疑tomcat的websocket程序也不是在原地执行的,而是像Servlet一样复制到一个其它的地方经过处理后再执行,要把我自己的包复制到那个目录下才能调用。再重复一遍我不想用系统的classpath引用我自己的包。 不知我的问题描述清楚了没有。有高手或朋友遇到过和我相同的问题吗?请指教。![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/21.gif)
进行对包含整型变量的list进行操作造成计算错误
问题很简单,可以复现。也可能是太久没接触代码的简单问题。 看了一个短视频,说人类的贫富差距28定律,用计算机随机可以发现是一样的。 想了一下觉得并不难实现,所以想要试一下。 思路是循环创建100个包含name和money字段的对象。 并把它们存进list 取随机坐标的两个对象实现一次money的随机数额的交易。 该交易是单向的,一方减少多少,另一方就增加多少。如果要被减少的一方已经是0,便不操作 代码如下: function start() { var objects=new Array(); for(var i=1;i<101;i++){ var object=new Map() ; object.set('name',i); object.set('money',10); objects.push(object) } //这里是单纯为验证当前数组里money的总和是多少这里输出是正常的10000 var moneysxm=0; for(var w=0;w<objects.length;w++){ moneysxm+=objects[w].get('money') } console.log(moneysxm); for(var z=0;z<$('#f').val();z++){ //随机取两个数 var demo1int=sum(0,99); var demo2int=sum(0,99); //获得随机数字对应的数组对象 var demo1object=objects[demo1int]; var demo2object=objects[demo2int]; //获得对象1的金钱数额 var demo1money=demo1object.get('money'); //获得对象2的金钱数额 var demo2money=demo2object.get('money'); console.log(demo1object.get('name')+'##'+demo1money) console.log(demo2object.get('name')+'##'+demo2money) //当该对象金钱数额为0时不作为 //如果两个对象是同一个时不作为 if(demo1money!=0||demo1int!=demo2int){ //获得符合该对象当前金钱范围内的随机支出数额 var demo1zhichu=sum(1,demo1money); //获得对象1的剩余数额 demo1money-=demo1zhichu; //将对象1剩余数额存入数组 objects[demo1int].set('money',demo1money); //获得对象二获得数额后的总数额 demo2money+=demo1zhichu; //将对象2获得数额后的总数额存入数组 objects[demo2int].set('money',demo2money); } console.log(objects[demo1int].get('name')+'##'+objects[demo1int].get('money')); console.log(objects[demo1int].get('name')+'##'+objects[demo2int].get('money')); } var moneysxm=0; for(var s=0;s<objects.length;s++){ moneysxm+=objects[s].get('money') } console.log(moneysxm); //排序 for(var o=0;o<objects.length;o++){ for(var u=0;u<objects.length;u++){ if(objects[o].get('money')<objects[u].get('money')){ var g=objects[o]; objects[o]=objects[u]; objects[u]=g; } } } setobjects=objects; console.log(setobjects); moneysxm=0; for(var q=0;q<setobjects.length;q++){ moneysxm+=setobjects[q].get('money') } console.log(moneysxm); } function sum (m,n){ var num = Math.floor(Math.random()*(m - n) + n); return num; } #f是一个输入框 输入的是循环次数 ![图片说明](https://img-ask.csdn.net/upload/202002/25/1582578096_764127.jpg) 但是问题这段逻辑感觉并没有什么问题,但是问题却出现了 当主要的对象随机交易这段循环走过之后,money的总量发生了变化,循环次数越多,出错概率越大,越离谱 ![图片说明](https://img-ask.csdn.net/upload/202002/25/1582578268_555800.jpg) 由于之前主要做的后端,之所以用js来试,是因为js不用jdk。但是之前调试前端时也总是出现各种各样的问题,最后我怀疑是又遇到了什么莫名其妙的前端都知道的潜在bug 所以决定用相同的逻辑再用java试一下。 java是强类型的,应该不会再出现这种事情了吧。但是显然,我错了。 public class test1234 { public static void main(String[] args) { ArrayList<persion> arrayList = new ArrayList<persion>(); //创建100个对象 for(int i=1;i<101;i++){ persion persion = new persion(); persion.setName(String.valueOf(i)); persion.setMoney(10); arrayList.add(persion); } for(int z=0;z<1000;z++){ //随机取两个数 int demo1int=sum(0,99); int demo2int=sum(0,99); //获得随机数字对应的数组对象 persion demo1object=arrayList.get(demo1int); persion demo2object=arrayList.get(demo2int); //获得对象1的金钱数额 int demo1money=demo1object.getMoney(); //获得对象2的金钱数额 int demo2money=demo2object.getMoney(); //当该对象金钱数额为0时不作为 if(demo1money!=0){ //获得符合该对象当前金钱范围内的随机支出数额 int demo1zhichu=sum(1,demo1money); //获得对象1的剩余数额 demo1money-=demo1zhichu; //将对象1剩余数额存入数组 demo1object.setMoney(demo1money); //获得对象二获得数额后的总数额 demo2money+=demo1zhichu; //将对象2获得数额后的总数额存入数组 demo2object.setMoney(demo2money); } } int moneysxm=0; for(int s=0;s<arrayList.size();s++){ moneysxm+=arrayList.get(s).getMoney(); } System.out.println(moneysxm); } ![图片说明](https://img-ask.csdn.net/upload/202002/25/1582578602_162708.jpg) java也输出了一些令人害怕的money总量 那么肯定是我犯了什么弱智错误了吧,可无论如何也不知道哪里错了,去网上查,大部分计算错误是由于浮点计算造成的,这个我遇到过,但是整型不涉及二进制的缺陷啊。另外我记得list循环不能对对象操作?好像有这个说法?忘了,
关于java调用winRAR命令行生成压缩包不能正常退出的问题
小弟菜鸟,现在在给客户做一个java程序调用winRAR命令行,生成一个压缩包,供用户下载的功能。现在这个功能倒是完成了,但是有个问题,那就是如果需要添加进压缩包的附件比较大,比如说超过了5M,则winrar程序一直在运行,不能正常退出,导致java主程序一直被挂起,用户打包下载rar压缩包失败。 代码如下: [code="java"] /** * 每次只是添加一个文件进压缩包,这样做没出现过问题 * @param RARCMD winrar进行压缩的命令行,格式为 D:\Program Files\WinRAR\Rar.exe a -ep * @param fileName 需要压缩的文件名(必须包含路径) ,如果该参数为null或者为空字符串,则直接返回,不做任何事 * @param RARRealpath 压缩后的压缩文件存放路径,包含文件名 * @throws Exception */ public static void RARFile(String RARCMD, String fileName, String RARRealpath) throws Exception { if (fileName == null) { return; } fileName = fileName.trim(); if (fileName.equals("")) { return; } String exec = RARCMD + " " + RARRealpath + " " + fileName; Runtime rt = Runtime.getRuntime(); Process p = rt.exec(exec); // 当前线程等待该process结束,既挂起主线程 p.waitFor(); } [/code] 如果我这么调用: [code="java"] RARFile("D:\Program Files\WinRAR\Rar.exe a -ep", "d:\\字符串2", "d:\\download.rar"); [/code] 其中待添加进压缩包“d:\\download.rar”的文件"d:\\字符串2",如果文件"d:\\字符串2",超过5M(没有精确测试多大,但是超过5M肯定就不行了),那么,程序执行到 [code="java"]p.waitFor();[/code] 就不动弹了,打开任务管理器,可以看到Rar.exe一直在运行,不会自行结束。这样的话,java当前的线程一直被挂起,导致用户下载rar压缩包失败。 但是相同的winRAR命令行,比如说: [code="java"] D:\Program Files\WinRAR\Rar.exe a -ep d:\\download.rar d:\\字符串2 [/code] 在cmd下执行,却任何问题没有,不用几秒就压缩完毕,打开任务管理器,Rar.exe也正常退出,在D盘根目录下,也正确的生成了“download.rar”压缩包。 现在的问题就是,在cmd下执行rar命令行,和在java里执行相同的命令行,Rar.exe有不同的反应,如果需要压缩的文件比较大(超过5M),则在java里就不行。请教各位高手,这个问题应该怎么解决? 对了,winRAR的版本是3.92
关于JVM命名空间问题,求助大佬!!!
首先命名空间的概念: 每个类加载器都有自己的命名空间,命名空间由该加载器及所有父加载器所加载的类组成。 在同一个命名空间中,不会出现类的完整名字(包括类的包名)相同的两个类。 在不同的命名空间中,有可能会出现类的完整名字(包括类的包名)相同的两个类。 我举出两种情景: 1、创建一个自定义加载器,加载classpath中的class文件,自定义加载器两个实例分别加载这个class文件,这个时候 命名空间一致 (class文件由父类系统加载器加载) 2、classpath中的class文件删了将其放到电脑桌面位置【也就是系统加载器加载不了最终由自定义加载器加载】,同样两个实例 这个时候,命名空间不一致 (自定义加载器加载) 那么 第一种情况相同命名空间大概可表示为:系统加载器.类名.包名 【有错吗?】 第二种情况的不同命名空间大概可表示为:自定义加载器实例1.类名.包名 以及 自定义加载器实例2.类名.包名 不知我上面是不是理解错了? > 命名空间由该加载器及所有父加载器所加载的类组成。 这句话中的该加载器是指的真正加载这个类的加载器吗? 那这句话又怎么理解,还望大佬指点!
java 关于类似售票系统的多线程并发 的问题
本人对多进程和多线程不大了解,还请各位高手解答下,先谢了。问题如下: 1.多线程的并发,我查了下资料,一般解释的是:一个进程可以包含多个线程,一个线程完成一个功能,这样,进程执行的时候,它包含的多个线程可以看成同时执行。 那多线程的并发,可不可以有另外的理解:如果这时的某个进程只有一个线程,那么,同时有多个类似的进程同时启动,这时是不是就产生了多个进程下要同时完成相同任务的多个线程,这算不算多线程的并发? 下面拿售票系统举例说明下, 2.像售票系统,应该就干了一件事,就是售票(包括查询),java实现的时候是不是就是一个线程?即一个进程对应一个线程。 3.这时,同一个人同一台电脑上,打开A浏览器买票,然后又打开B浏览器买票,是不是相当于有2个进程(不是线程)? 4.那售票系统的多线程并发 ,可不可以理解为多进程的并发?
java 程序调用Unix/Linux 中的Shell,然后shell中含中文名的问题
各路好手,小弟项目中遇到如下问题,急需各位大侠出手相助,现将问题描述如下: <br />小弟的项目是用Java开发的,IDE是 Mac OS 下的 Eclipse(Linux/Unix下也是相同的问题)。程序中需调用系统的 shell 命令,例如: <br /><pre name="code" class="java">String line; String[] cmd = new String[3]; cmd[0] = "/bin/sh"; cmd[1] = "-c"; cmd[2] = "du -sh /Users/测试" Process proc = Runtime.getRuntime.exec(cmd); InputStreamReader is = new InputStreamReader(proc.getInputStream()); BufferedReader br = new BufferedReader (is); while ((line = br.readLine ()) != null) { System.out.println(line); }</pre> <br />du 命令是用来读取文件大小的shell命令,本程序需要读取“/Users/测试”这个文件夹的大小。现在问题来了,源程序没有经过打包,直接在Eclipse中点击Run按钮,这样是可以直接显示正确结果的,如“123M /Users/测试”这种形式,但是打包成jar包时,shell命令就不识别中文名了,也就无法执行du命令。打开终端,在命令行下键入 “du -sh /Users/测试”也是可以显示正确结果。所以小弟想应该是Shell的环境变量设置有问题。请问,应该如何在程序中设置shell的环境变量,确保打包后的程序能正常调用含中文参数的shell命令。 <br />请各路好手出手相助!<br/><strong>问题补充</strong><br/>To zhoun: <br />我在命令行执行echo $LANG结果是zh_CN.UTF-8;所以按照你写的执行了一下,结果报“java.io.IOException: LANG=zh_CN.UTF-8: not found”异常。<br /><strong>问题补充:</strong><br />To Ihavegotyou: <br />多谢你的回答,呵呵。 <br />不过小弟仅仅是拿 du 命令作为一个例子,使用其他Linux/Unix命令的时候,对于中文参数,还是会面临一样的问题的。<br /><strong>问题补充:</strong><br />多谢您的回答。目前问题已解决。我将程序拿出来,在命令行下制定字符集进行编译如: javac -encoding UTF-8 test.java 然后运行的时候也是指定相同字符集 java -Dfile.encoding=UTF-8 ... 这样就能正常运行了。所以问题就是,双击可运行jar包时,调用的字符集和原先编译的字符集不一样。
java中比较未知字符串所包好的内容
比如说我有两个词。中国 和国人,(这个字符串是未知的,我只是举例),怎么判断这两个字符串中 都包含相同的内容,在上述例子中相同的内容就是“国”?最好不用数组,求大神指导!
java 非等阶矩阵中对角线是否包含指定个数的连续数字的判断
问题: 例如:(具体化) 现有 matrix{ 6,7 } 各元素取1-9的的任意整数 如何判断在该矩阵的各对角线中是否包含4个联系的相同数字 希望有空的大神 能够看一下 给点指教 灰常感谢!!!
关于java的GZip解压问题
视频系统,关系各终端的播放日志,采用的是定期向服务器上传tar.gz包,然后在服务器上解开,逐条读取放到数据库中。 问题:以前服务器用的是linux系统,解压文件是调用的系统命令tar来解压的,现在因为部分系统要部署到window或苹果上,所以改为用java自己的包来解压。这下出问题了,本来只有三行的记录,解出来之后有四行,第一行的前面是文件名和系统中的很多信息,然后是文件内容,中间隔的是乱码,下载到windows上用文本编辑器打到,,好像中间隔的是空格,用客户端软件ssh到linux上,用vi看,是一个个类似^@样的乱码,然而用正则表达式匹配却不行。 实际数据: 一个tar包,里面是一个log文件,内容是: \factory\film\真实的谎言\huangyan.vob,2000-01-01 20:43:32,2000-01-01 20:43:39 \factory\film\指环王\zhihuanwang.vob,2000-01-01 22:50:24,2000-01-01 22:50:29 用系统命令的方法,一切正常,但是用GZip的包来解,内容就是这样的: 00e04c0000ba_2001-03-06.log 0100755 0000000 0000000 00000003036 07251305477 013102\factory\film\真实的谎言\huangyan.vob,2000-01-01 20:43:32,2000-01-01 20:43:39 \factory\film\指环王\zhihuanwang.vob,2000-01-01 22:50:24,2000-01-01 22:50:29 真实文件的前面,是文件名以及后面很多不知道是什么信息的信息,最后还有一行,我想用拷贝粘贴的方法,但是粘不出来,不知道为什么。 请问是不是GZIPInputStream或GZIPOutputStream有什么参数?为什么他们解压后有这么多冗余的数据?如何去掉? 谢谢!不好意思,就这点分了 [b]问题补充:[/b] 这是文件,如果能用Gzip解压后的文件与用winzip 或winrar解压后的文件一致,就说明正确了 [b]问题补充:[/b] 文件后缀名为tgz,请修改修改成tgz,当然压缩算法是一样的,我上传文件不行,只能改为gz才能上传成功 [b]问题补充:[/b] 有的朋友说格式不对,但是为什么用winrar或linux的系统命令解压之后的文件内容正常,但是用java的gzip包却多出了很多内容?这是为什么?至少应该结果相同吧? [b]问题补充:[/b] 用客户端工具压缩之后,再用gzip的包解压,网上的大多程序都能做到正确解压,我得到的是数字电视的机顶盒所上传的日志文件,因为是不同公司之后开发的,所以很难联调,也不清楚具体是用什么压缩的,应该是用linux的命令压缩的 [b]问题补充:[/b] [color=red]因为我上传的文件格式不支持,所以我是修改了后缀名才上传成功的,下载后请修改成为*.tgz,而不是gz[/color] [b]问题补充:[/b] [color=red]根据后缀名来判断,并不是bz2压缩,也许是在包中含了别的信息,但是有一点很奇怪:为什么用系统命令解压或用工具解压,都没有这些信息呢?为什么用GZip还解压,就会有呢?这是为什么?[/color]
jar文件显示找不到主类怎么破
用java.util.jar编的打包,jaroutputstream包含manifest带version,classpath和mainclass(Attributes.Name), 每一个entry后写入byte[]后关闭entry,最后finish和关闭流。打包后可以解压缩,将manifest复制到另一个eclipse手动打的包下可以正常使用。 用beyondcompare3比较两jar,大小相同,解压缩后所有文件二进制相同,但自动的包就是找不到主类。 java1.8,windows7 64,类路径是.,主类是test.Helloworld,自动和手动的包在同意目录下,cd后分别java -jar xxx.jar
高分悬赏 apache avro数据 C与Java通信 序列化问题
最近需要配合C做一些数据解析工作。使用AVRO封装数据。由于C支持的PRC还不完整 没有采用这种方式。而是以流的方式通过HTTP 由C发送给Java解析并存储下来。双方定义相同的schema.目前遇到一个问题。 avro-c 库函数序列化发送的数据没有schema。只包含如图所示的序列化数据![图片说明](https://img-ask.csdn.net/upload/201708/07/1502073565_844101.png)。 而Java解析和输出的数据内容均包含scheam 信息和数据信息。尝试过使用内容拼接来解析。但是解析失败了。请问大家 此类问题应该怎样解决
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
2019年还剩1天,我从外包公司离职了
这日子过的可真快啊,2019年还剩1天,外包公司干了不到3个月,我离职了
《面试宝典》2019年springmvc面试高频题(java)
前言 2019即将过去,伴随我们即将迎来的又是新的一年,过完春节,马上又要迎来新的金三银四面试季。那么,作为程序猿的你,是否真的有所准备的呢,亦或是安于本职工作,继续做好手头上的事情。 当然,不论选择如何,假如你真的准备在之后的金三银四跳槽的话,那么作为一个Java工程师,就不可不看了。如何在几个月的时间里,快速的为即将到来的面试进行充分的准备呢? 1、什么是Spring MVC ?简单...
计算机网络的核心概念
这是《计算机网络》系列文章的第二篇文章 我们第一篇文章讲述了计算机网络的基本概念,互联网的基本名词,什么是协议以及几种接入网以及网络传输的物理媒体,那么本篇文章我们来探讨一下网络核心、交换网络、时延、丢包、吞吐量以及计算机网络的协议层次和网络攻击。 网络核心 网络的核心是由因特网端系统和链路构成的网状网络,下面这幅图正确的表达了这一点 那么在不同的 ISP 和本地以及家庭网络是如何交换信息的呢?...
python自动下载图片
近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。 突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?’ 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It’s simple. Wait for me a few
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
20道你必须要背会的微服务面试题,面试一定会被问到
写在前面: 在学习springcloud之前大家一定要先了解下,常见的面试题有那块,然后我们带着问题去学习这个微服务技术,那么就会更加理解springcloud技术。如果你已经学了springcloud,那么在准备面试的时候,一定要看看看这些面试题。 文章目录1、什么是微服务?2、微服务之间是如何通讯的?3、springcloud 与dubbo有哪些区别?4、请谈谈对SpringBoot 和S...
Java 14 都快来了,为什么还有这么多人固守Java 8?
从Java 9开始,Java版本的发布就让人眼花缭乱了。每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试一个ArrayList我都能跟面试官扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
2020年1月中国编程语言排行榜,python是2019增长最快编程语言
编程语言比例 排名 编程语言 最低工资 工资中位数 最低工资 最高工资 人头 人头百分比 1 rust 20713 17500 5042 46250 480 0.14% 2 typescript 18503 22500 6000 30000 1821 0.52% 3 lua 18150 17500 5250 35000 2956 0.84% 4 go 17989 16...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
学习使用一些插件,可以提高开发效率。对于我们开发人员很有帮助。这篇博客介绍了开发中使用的插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
立即提问