我有以下页面(deadlink :) http://www.workingstorage.com/Sample.htm,它有一个我无法坐在页面底部的页脚.
我想要页脚
CSS继承并迷惑我; 我似乎无法正确地改变它以在内容上放置最小高度或使页脚移到底部.
在编写存储在Subversion仓库中的软件时,我经常修改一些文件,然后注意我想为我的主要工作做一些预备性更改.例如,在实现新功能时,我注意到一些可能对我有帮助的重构.
为了不混合两个不相关的更改,在这些情况下,我想"收起"我的更改,即恢复到存储库版本,执行一些其他更改,提交这些更改,然后"获取"我的更改.
git-stash允许这样做.是否有一些方法可以直接或使用某些插件或脚本使用Subversion.Eclipse插件也没关系.
我正在制作一个可打印的HTML报告,它的"部分"应该从新页面开始.
是否有任何方法可以在HTML/CSS中添加一些内容,这些内容将向浏览器发出信号,表明它需要在此时强制分页(开始新页面)?
我不需要在每个浏览器中使用它,我想我可以告诉人们使用一组特定的浏览器来打印它.
在调试Java代码时,视图"变量"和"表达式"中的字符串仅显示一定长度,之后Eclipse显示"..."
有没有办法检查整个字符串?(这减轻了添加日志语句以进行调试的痛苦)
当使用只能获取有限数量值的变量/参数时,我会尝试始终使用Java enum,如
public enum BonusType {
MONTHLY, YEARLY, ONE_OFF
}
Run Code Online (Sandbox Code Playgroud)
只要我留在我的代码中,就可以了.但是,我经常需要与其他使用普通int(或String)值的代码进行交互以达到相同的目的,或者我需要从/向数据库读取/写入数据,其中数据存储为数字或字符串.
在这种情况下,我想有一个方便的方法将每个枚举值与一个整数相关联,这样我就可以双向转换(换句话说,我需要一个"可逆的枚举").
从枚举到int很容易:
public enum BonusType {
public final int id;
BonusType(int id) {
this.id = id;
}
MONTHLY(1), YEARLY(2), ONE_OFF(3);
}
Run Code Online (Sandbox Code Playgroud)
然后我可以访问int值BonusType x = MONTHLY; int id = x.id;.
但是,我没有看到反向的好方法,即从int到enum.理想情况下,像
BonusType bt = BonusType.getById(2);
Run Code Online (Sandbox Code Playgroud)
我能想出的唯一解决方案是:
BonusType.values()用于填充映射"int - > enum",然后缓存并将其用于查找.会工作,但我必须将这个方法完全复制到我使用的每个枚举中:-(.对于这样一个简单的(?)问题,这两种方法看起来都非常尴尬.
还有其他想法/见解吗?
我无法理解为什么Java HttpURLConnection不遵循重定向.我使用以下代码来获取此页面:
import java.net.URL;
import java.net.HttpURLConnection;
import java.io.InputStream;
public class Tester {
public static void main(String argv[]) throws Exception{
InputStream is = null;
try {
String httpUrl = "http://httpstat.us/301";
URL resourceUrl = new URL(httpUrl);
HttpURLConnection conn = (HttpURLConnection)resourceUrl.openConnection();
conn.setConnectTimeout(15000);
conn.setReadTimeout(15000);
conn.connect();
is = conn.getInputStream();
System.out.println("Original URL: "+httpUrl);
System.out.println("Connected to: "+conn.getURL());
System.out.println("HTTP response code received: "+conn.getResponseCode());
System.out.println("HTTP response message received: "+conn.getResponseMessage());
} finally {
if (is != null) is.close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
而且,我收到以下回复(看起来绝对正确!):
Original URL: http://httpstat.us/301 Connected to: …
我在这里看到了几个关于处理和保持类似枚举值的最佳方法的问题/讨论(例如,坚持适用于枚举的数据,如何使用NHibernate保持枚举),我想问一般的共识是什么.
特别是:
注意:我将原本包含在此问题中的解释移到了答案中.
背景:
作为Java程序员,我从接口广泛继承(而不是:实现),有时我设计抽象基类.但是,我从来没有真正觉得需要子类化一个具体的(非抽象)类(在我这样做的情况下,后来发现另一个解决方案,例如委托会更好).
所以现在我开始觉得几乎没有从具体类继承的合适的情况.一方面,Liskov替换原则(LSP)似乎几乎不可能满足非平凡类; 还有许多其他问题,这里似乎呼应了类似的意见.
所以我的问题:
在哪种情况下(如果有的话)从具体类继承它真的有意义吗?你能给出一个继承自另一个具体类的类的具体的,真实的例子吗?你觉得这是给定约束的最佳设计吗?我对满足LSP的示例(或满足LSP似乎不重要的示例)特别感兴趣.
我主要有Java背景,但我对任何语言的例子感兴趣.
正如大多数人现在痛苦地意识到的那样,用于处理日历日期的Java API(特别是类java.util.Date和java.util.Calendar)是一个糟糕的混乱.
脱离我的头顶:
现在我的问题是:
这些类是如何进入Java SDK的?大多数这些问题看起来相当明显(特别是Date是可变的)并且应该很容易避免.那怎么回事?时间压力?或者回想起来的问题是否明显?
我意识到这不是一个严格的编程问题,但我发现理解API设计如何出错是很有趣的.毕竟,错误总是一个很好的学习机会(我很好奇).
本着Java的问题:为什么MaxPermSize存在?,我想问一下为什么Sun JVM对其内存分配池的大小使用固定的上限.
默认值是物理RAM的1/4(上限和下限); 因此,如果您有一个需要内存的应用程序,您必须手动更改限制(参数-Xmx),否则您的应用程序将表现不佳,甚至可能会因OutOfMemoryError崩溃.
为什么这个固定限制甚至存在?为什么JVM不会根据需要分配内存,就像本机程序在大多数操作系统上一样?
这将解决Java软件的一大类常见问题(只需谷歌通过设置-Xmx来查看解决问题的网上有多少提示).
编辑:
一些答案指出,这将保护系统的其余部分免受Java程序的影响而导致内存泄漏; 没有限制,这会耗尽整个系统耗尽所有内存.这是事实,但对于任何其他程序同样如此,现代操作系统已经允许您限制程序的最大内存(Linux ulimit,Windows"作业对象").所以这并没有真正回答这个问题,即"为什么JVM与大多数其他程序/运行时环境不同?".
java ×7
enums ×2
api-design ×1
c# ×1
coding-style ×1
css ×1
database ×1
date ×1
debugging ×1
eclipse ×1
footer ×1
html ×1
https ×1
inheritance ×1
jvm ×1
liskov-substitution-principle ×1
memory ×1
oop ×1
page-break ×1
persistence ×1
printing ×1
redirect ×1
svn ×1
versioning ×1