我知道界面必须是公开的.但是,我不希望这样.
我希望我的实现方法只能从他们自己的包中访问,所以我希望我的实现方法受到保护.
问题是我无法使接口或实现的方法受到保护.
什么是解决方法?是否存在与此问题相关的设计模式?
从Java指南中,抽象类也不能完成这项工作.
我正在尝试创建一个大小类型的字节数组long.例如,将其视为:
long x = _________;
byte[] b = new byte[x];
Run Code Online (Sandbox Code Playgroud)
显然,您只能指定int一个字节数组的大小.
在有人问为什么我需要一个如此大的字节数组之前,我会说我需要封装我没有编写的消息格式的数据,其中一种消息类型的长度为unsigned int(long在Java中).
有没有办法创建这个字节数组?
我在想如果没有办法解决它,我可以创建一个字节数组输出流并继续输入它的字节,但我不知道是否对字节数组的大小有任何限制......
假设我想在数据结构中添加单词,并且我希望有恒定时间查找以查看该单词是否在此数据结构中.我想做的就是看看这个词是否存在.我会使用HashMap(containsKey())吗? HashMap使用key->值配对,但在我的情况下,我没有值.当然我可以使用null作为值,但即使null也需要空格.看起来这个应用程序应该有更好的数据结构.
该集合可能会被多个线程使用,但由于集合中包含的对象不会更改,因此我认为我没有同步/并发要求.
谁能帮我吗?
我希望我的类有一个静态指针指向动态分配的内存区域.我理解如何初始化它 - 在我的情况下,我将在第一个对象需要它时初始化它.但是,我不知道在代码中何时/何处释放它.我想在程序终止时释放它.
我可能能够在我的对象的析构函数中释放指针,但是我必须维护一个对象计数,以查看当对象是最后使用的对象时是否可以安全释放.
有没有更优雅的方式来做到这一点?
请告诉我.
谢谢,jbu
我必须将char转换为字节或字节数组.在其他语言中,我知道char只是一个字节.但是,查看Java Character类,其最小值为\ u0000,其最大值为\ uFFFF.这使得它看起来像一个2字节长的字符.
我能将它存储为一个字节还是需要将其存储为两个字节?
在有人要求之前,我会说我正在尝试这样做,因为我在一个接口上工作,希望我的结果是一个字节数组.所以我必须将我的char转换成一个.
请让我知道并帮助我理解这一点.
谢谢,jbu
关于GCing理论的快速问题.我有以下方法.它运行,并退出该方法.为什么即使在GC运行后,计时器仍然存在并保持"TICK"?我不相信在这个方法存在之后仍然有对定时器或timertask的引用,所以我希望定时器被GCed并导致异常.请帮我理解这个概念.
谢谢,jbu
private void startTimer()
{
Timer timer= new Timer();
TimerTask timerTask= new TimerTask()
{
@Override
public void run()
{
System.out.println("TICK");
}
};
timer.scheduleAtFixedRate(timerTask,
0,
500);
}
Run Code Online (Sandbox Code Playgroud) 我试图/etc/passwd用Java 解析Linux 文件.我正在阅读java.util.Scanner课程中的每一行,然后java.lang.String.split(String)用来分隔每一行.
问题是该行:
list:x:38:38:Mailing List Manager:/var/list:/bin/sh"
Run Code Online (Sandbox Code Playgroud)
被扫描仪视为3条不同的线:
list:x:38:38:MailingList Manager...当我输入一个我没有从Linux获得的新文件时,Scanner正确解析它.
有什么我不了解Linux中的新行吗?
显然,解决方法是在不使用扫描仪的情况下解析它,但它并不优雅.有谁知道这样做的优雅方式?
有没有办法将文件转换为可以使用的文件Scanner?
甚至两天前:不同线路在不同平台结束的历史原因
编辑
原作者提供的说明:
"我发现我有一个不同的错误导致问题.无视问题"
我正在寻找一个好的Java混淆器.
我已经对以下Java混淆器进行了初步研究:proguard,yguard,retroguard,dasho,allatori,jshrink,smokescreen,jobfuscate,marvin,jbco,jode,javaguard,jarg,joga,cafebabe,donquixote,mwobfu,bbmug,zelix klassmaster ,sandmark,jcloak,丛林,blufuscator和java代码保护.
我试过proguard它有一个非常好的GUI,看起来非常稳定,似乎是最流行的,但它似乎不喜欢引用的jar文件上的一些枚举(不在我试图混淆的代码中)这很奇怪.Yguard似乎需要与蚂蚁进行一些互动,我对此并不太了解.
什么是好的java混淆器?它不需要是免费的,它只需要很好地工作并且易于使用.
我正在使用DataInputStream并且有一个关于EOFExceptions的问题.
根据java文档:
表示在输入期间意外到达文件末尾或流末尾的信号.
此异常主要由数据输入流用于信号流的结束.请注意,许多其他输入操作在流末尾返回特殊值而不是抛出异常.
这是否意味着当生成EOFException时,流不会再次打开?这是否意味着你永远不会期待它的更多数据?
如果输出流连接到输入流并且调用了outputstream.close(),输入流是否会收到EOFException或IOException?
IOException被描述为:
表示发生某种I/O异常的信号.此类是由失败或中断的I/O操作产生的一般异常类.
输出流上的close是否会在datainputstream端产生EOFException或IOException?
以下C++代码是内存泄漏吗?
list.push_back(new String("hi"));
Run Code Online (Sandbox Code Playgroud)
据我了解,来自任何std集合/容器的push_back总是复制.因此,如果复制新字符串,没有什么可以删除新的字符串吗?因为push_back之后没有引用它...
我在这里是对还是错?
谢谢.
JBU
编辑:我认为我错了,因为new会返回一个指针......我们总是会有指针能够删除新的String
java ×8
arrays ×2
byte ×2
c++ ×2
memory ×2
char ×1
containskey ×1
destructor ×1
eofexception ×1
free ×1
hashmap ×1
input ×1
interface ×1
linux ×1
long-integer ×1
lookup ×1
memory-leaks ×1
new-operator ×1
newline ×1
obfuscation ×1
static ×1
stream ×1