我的页面被分成3个切片,如此JFiddle所示.
在我的完整源代码中,我有媒体查询来帮助管理移动和桌面之间的大小调整.当有人在移动模式下访问该网站时,Logo应显示在顶部,而Items应显示在其下方.(我display: none
在我的图片div上设置隐藏它)
问题:
我无法在HTML中更改div的位置,否则会干扰我当前的3切片布局.绝对定位不是一个选项,因为我的大多数网站已经动态调整大小,我不希望绝对定位干扰我没有测试过的分辨率.这意味着计算边际尺寸也是不可能的.
因此,不允许绝对定位,也不改变div的顺序.我正在寻找的结果将类似于此,异常没有重新定位div.
我的问题不是媒体查询,也不是如何使用媒体查询调整移动设备的大小.我只询问如何获得我想要的布局和限制(没有绝对定位,没有计算边距,没有更改div顺序).
我看过的其他问题:
重新定位div高于前面的元素 - 第一个答案建议重新定位div,这是我不能做的.第二个答案依赖于计算位置,这可能会干扰其他动态尺寸元素.
移动第一个Div出现在CSS中的第二个 - 建议我使用绝对定位,这是我做不到的
我有一个非常奇怪的编译时错误:
class Super {
Super(int[] array) {
}
}
class Sub extends Super {
private final int number = 1;
Sub() {
super(new int[] { number }); //error
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
无法从静态上下文访问字段
我的问题
静态上下文在哪里?似乎静态甚至不会在这里发挥作用.
我偶然发现了这个试图回答别人的问题; 发现我感到困惑的错误.有人可以解释静态上下文的位置吗?
我有一个来自文本区域的String :(带有变量名string
)
This is the first line
And this is the second
Run Code Online (Sandbox Code Playgroud)
如果我将其分成单独的单词使用string.split(" ")
,那么检查哪些单词包含"\n"
for(String s : string.split(" ")) {
if(s.contains("\n"))
System.out.println(s);
}
Run Code Online (Sandbox Code Playgroud)
这两个line
和And
我的句子包含\n
.但是,如果我要检查这个词是以它开头\n
还是以它结尾,它就没有给我任何结果.
if(s.contains("\n")) {
System.out.println("Contains");
if(s.startsWith("\n"))
System.out.println("Starts with");
else if(s.endsWith("\n")) {
System.out.println("Ends with");
else
System.out.println("Does not contain");
}
Run Code Online (Sandbox Code Playgroud)
我的结果是:
Contains
Does not contain
Run Code Online (Sandbox Code Playgroud)
因此,如果单词包含a \n
,但它不以它开头或结尾,那么究竟是什么replaceAll(String, String)
呢?如何在不使用的情况下管理它?
我只是想知道为什么java.util.Scanner实现了java.util.Iterator?
Scanner
实现remove方法并抛出UnsupportedOperationException.
但是,在实现接口时,不应该是一个类,履行接口的契约?
实现iterator
和添加抛出异常的方法有什么用?
为什么不避免接口的实现并保持简单?
有人可以争辩说,它被定义为可以扩展的类Scanner
可以实现该方法,就像AbstractList有一个抛出一个的add方法UnsupportedOperationException
.但是AbstractList
是一个abstract
班级,而是Scanner
一个final
班级.
这不是一个糟糕的设计实践吗?
想象一下,我们在内存中分散了1000个相同类型的对象(它们是在不同时间创建的,其他对象是在其间创建的).
我们有一个数组,它包含对1000个对象中每个对象的引用.
如果我们按顺序遍历数组,那么将预取到CPU的高速缓存中的是什么?只有数组所包含的引用或这些引用才会被解引用,并且对象也会被加载到缓存中?
Java(JVM)是否实现了某种软件预取?如果没有,是否有提供软件预取的库?
题
为什么VisualVM在尝试查看对象分配堆栈跟踪时终止我的程序,我该如何解决?
我正在清理一个有一些内存问题的应用程序,最大的是创建一堆短命的int[]
导致GC像疯了似的一样:
当我右键单击int[]
并选择Take Snapshot and Show Allocation Stack Traces时,我的应用程序将关闭,并弹出一个警告框,说明无法获取结果快照.申请终止:
我在这个主题上发现的最接近的是一个错误报告,建议运行我的profiled应用程序-Xnoclassgc
.它不起作用,结果是一样的.
眼镜
VisualVM: 1.8.0_60 (Build 1380-140910); platform 20140910-unknown-revn
Java: 1.8.0_60; Java HotSpot(TM) 64-Bit Server VM (25.60-b23, mixed mode)
Eclipse: Luna Release (4.4.0) Build id: 20140612-0600
System: Windows 7 (6.1) Service Pack 1, amd64 64bit
Run Code Online (Sandbox Code Playgroud)
崩溃日志
崩溃日志的大小超出了字符数限制,因此我不得不将其放在其他位置.抱歉.
我是编程和Java的新手.我注意到,在Java API中,if语句中有一些奇怪的赋值方法.
以下是Map界面的示例:
default V replace(K key, V value) {
V curValue;
if (((curValue = get(key)) != null) || containsKey(key)) {
curValue = put(key, value);
}
return curValue;
}
Run Code Online (Sandbox Code Playgroud)
以这种方式嵌套赋值是否有某种好处?这纯粹是一种风格选择吗?为什么不在curValue
第一次声明时进行赋值?
// why not do it like this?
default V replace(K key, V value) {
V curValue = get(key); // not nested
if (curValue != null || containsKey(key)) {
curValue = put(key, value);
}
return curValue;
}
Run Code Online (Sandbox Code Playgroud)
我在Map界面和其他地方的许多新添加的Java 8方法中都注意到了这一点.这种嵌套分配的形式似乎是不必要的.
编辑:Map界面中的另一个示例:
default V computeIfAbsent(K key,
Function<? super K, ? extends …
Run Code Online (Sandbox Code Playgroud) 我知道java编译器实际上可以重新排序代码指令.但java可以重命令函数调用吗?
例如:
...
//these lines may be reordered
a=7;
b=5;
...
//but what about this?
callOne();
callTwo();
Run Code Online (Sandbox Code Playgroud) 您可以创建一个变量来存储将来可以引用该变量的值.我听说你必须在使用它之后将变量设置为'null',这样垃圾收集器才能到达它(如果它是一个字段var).
如果我有一个我不会引用agaon的变量,那么删除我正在使用的引用/值变量(并且只在需要时使用这些数字)可以节省内存吗?例如:
int number = 5;
public void method() {
System.out.println(number);
}
Run Code Online (Sandbox Code Playgroud)
这会占用更多空间,而不仅仅是将'5'插入println方法吗?
我有一些整数,我不再在我的代码中引用(游戏循环),但我看到其他人在真正不需要它们的东西上使用引用变量.一直在研究内存管理,所以请告诉我,以及有关管理内存的任何其他建议
java variables garbage-collection memory-management reference
我对不可变类的概念很新.考虑这个课程:
public class ConnectionMonitor implements MessageConsumer {
private final MonitorObject monitorObject;
private boolean isConnected = true;
private final static Logger logger = LogManager.getLogger(ConnectionMonitor.class);
public ConnectionMonitor(final MonitorObject monitorObject) {
this.monitorObject = monitorObject;
}
public boolean isConnected() {
return isConnected;
}
public void waitForReconnect() {
logger.info("Waiting for connection to be reestablished...");
synchronized (monitorObject) {
enterWaitLoop();
}
}
private void enterWaitLoop() {
while (!isConnected()) {
try {
monitorObject.wait();
} catch (final InterruptedException e) {
logger.error("Exception occured while waiting for reconnect! Message: " + …
Run Code Online (Sandbox Code Playgroud)