我做了一个小程序来测试System.currentTimeMillis().我有一个奇怪的结果.这是我的日志:
1 26-12-09 20:48:21 - [Log] lTime = 1261860501009
2 26-12-09 20:48:21 - [Log] lTime = 1261860501012
3 26-12-09 20:48:21 - [Log] lTime = 1261864899078
4 26-12-09 20:48:21 - [Log] lTime = 1261860501033
5 26-12-09 20:48:21 - [Log] lTime = 1261860501069
Run Code Online (Sandbox Code Playgroud)
如您所见,第3行存在问题.时间磨损是错误的.它应该在1261860501012和1261860501033之间.大约有73毫秒的误差.
有人知道问题来自哪里?
非常感谢
bill0ute
编辑:操作系统:Debian 4.0,Java:6_17.
我的代码:
while (true)
setLog (System.currentTimeMillis ());
Run Code Online (Sandbox Code Playgroud)
编辑:程序在基于Linux的VPS上运行
我正试图通过使用来解压缩GZIPed HTTP响应GZIPInputStream.但是,当我尝试读取流时,我总是有相同的异常:java.util.zip.ZipException: invalid bit length repeat
我的HTTP请求标头:
GET www.myurl.com HTTP/1.0\r\n
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2) Gecko/20100115 Firefox/3.6\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n
Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3\r\n
Accept-Encoding: gzip,deflate\r\n
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7\r\n
Keep-Alive: 115\r\n
Connection: keep-alive\r\n
X-Requested-With: XMLHttpRequest\r\n
Cookie: Some Cookies\r\n\r\n
Run Code Online (Sandbox Code Playgroud)
在HTTP响应头的末尾,我得到path=/Content-Encoding: gzip,然后是gziped响应.
我试过2个similars代码来解压缩:
更新:在以下代码中, tBytes = (the string after 'path=/Content-Encoding: gzip').getBytes ();
GZIPInputStream gzip = new GZIPInputStream (new ByteArrayInputStream (tBytes));
StringBuffer szBuffer = new StringBuffer ();
byte tByte [] = new byte [1024];
while (true)
{
int …Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码发送简单的HTTP请求:
try
{
Socket s = new Socket ();
s.bind (new InetSocketAddress (ipFrom, 0));
s.connect (new InetSocketAddress (ipTo, 80), 1000);
PrintWriter writer = new PrintWriter (s.getOutputStream ());
BufferedReader reader = new BufferedReader (new InputStreamReader (s.getInputStream ()));
writer.print ("GET " + szUrl + " HTTP/1.0\r\n\r\n");
writer.flush ();
s .close ();
reader.close ();
writer.close ();
}
Run Code Online (Sandbox Code Playgroud)
但是,正如您所看到的,我不发送自定义HEADER.我应该添加什么来发送自定义HEADER?
干杯,
Christophe OLIVIER
这是我的问题:
我有一个庞大的类(HugeClass),我想把它分成几个小类(LittleClass1,LittleClass2,...).我听说过代表团.这听起来不错,但我认为它不适用于我的情况.实际上,我的小班需要HugeClass的一些属性:
public class HugeClass
{
// Attributes
private Object object1;
private Object object2;
private Object object3;
...
private Object objectN;
// Delegation 1
private LittleClass1 little1 = new LittleClass1 ();
// Function delegated in the LittleClass1
public void delegated1 ()
{
little1.delegated1 ();
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个Delegation类的示例:
public class LittleClass1
{
public LittleClass1 ()
{
}
public void delegated1 ()
{
// Here, I need object1, object3, and more to work !
}
}
Run Code Online (Sandbox Code Playgroud)
delegated1函数所需的属性数量可能很大.所以我认为使用LittleClass1的构造函数不是很方便.
因为LittleClass1只覆盖了HugeClass的一个方法,所以我认为LittleClass1不应该扩展HugeClass.
你有解决方案的想法吗?使用其他模式?
谢谢 !
更新 …
java ×4
architecture ×1
compression ×1
delegation ×1
gzip ×1
httprequest ×1
httpresponse ×1
overriding ×1
sockets ×1
time ×1