小编Vin*_*igh的帖子

使第二个div首先出现在上面,没有绝对位置或更改html

我的页面被分成3个切片,如此JFiddle所示.

在我的完整源代码中,我有媒体查询来帮助管理移动和桌面之间的大小调整.当有人在移动模式下访问该网站时,Logo显示在顶部,而Items显示在其下方.(我display: none在我的图片div上设置隐藏它)

问题:

我无法在HTML中更改div的位置,否则会干扰我当前的3切片布局.绝对定位不是一个选项,因为我的大多数网站已经动态调整大小,我不希望绝对定位干扰我没有测试过的分辨率.这意味着计算边际尺寸也是不可能的.

因此,不允许绝对定位,也不改变div的顺序.我正在寻找的结果将类似于,异常没有重新定位div.

我的问题不是媒体查询,也不是如何使用媒体查询调整移动设备的大小.我只询问如何获得我想要的布局和限制(没有绝对定位,没有计算边距,没有更改div顺序).

我看过的其他问题:

重新定位div高于前面的元素 - 第一个答案建议重新定位div,这是我不能做的.第二个答案依赖于计算位置,这可能会干扰其他动态尺寸元素.

移动第一个Div出现在CSS中的第二个 - 建议我使用绝对定位,这是我做不到的

css css3

20
推荐指数
1
解决办法
2万
查看次数

将值传递给超级构造函数时,无法从静态上下文访问字段

我有一个非常奇怪的编译时错误:

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)

我得到的错误是

无法从静态上下文访问字段

我的问题

静态上下文在哪里?似乎静态甚至不会在这里发挥作用.

我偶然发现了这个试图回答别人的问题; 发现我感到困惑的错误.有人可以解释静态上下文的位置吗?

java inheritance static

20
推荐指数
2
解决办法
1011
查看次数

\n位于字符串中的位置?

我有一个来自文本区域的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)

这两个lineAnd我的句子包含\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 regex string contains

12
推荐指数
2
解决办法
795
查看次数

为什么Scanner会实现Iterator <String>?

我只是想知道为什么java.util.Scanner实现了java.util.Iterator

Scanner实现remove方法并抛出UnsupportedOperationException.

但是,在实现接口时,不应该是一个类,履行接口的契约?

实现iterator和添加抛出异常的方法有什么用?

为什么不避免接口的实现并保持简单?

有人可以争辩说,它被定义为可以扩展的类Scanner可以实现该方法,就像AbstractList有一个抛出一个的add方法UnsupportedOperationException.但是AbstractList是一个abstract班级,而是Scanner一个final班级.

这不是一个糟糕的设计实践吗?

java oop design-patterns java.util.scanner

11
推荐指数
1
解决办法
2272
查看次数

是否从Java中的引用数组中预取了对象?

想象一下,我们在内存中分散了1000个相同类型的对象(它们是在不同时间创建的,其他对象是在其间创建的).

我们有一个数组,它包含对1000个对象中每个对象的引用.

如果我们按顺序遍历数组,那么将预取到CPU的高速缓存中的是什么?只有数组所包含的引用或这些引用才会被解引用,并且对象也会被加载到缓存中?

Java(JVM)是​​否实现了某种软件预取?如果没有,是否有提供软件预取的库?

java jvm jvm-hotspot prefetch java-memory-model

10
推荐指数
1
解决办法
484
查看次数

显示分配堆栈跟踪时防止程序崩溃

为什么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)

崩溃日志

http://pastebin.com/a4YPWutj

崩溃日志的大小超出了字符数限制,因此我不得不将其放在其他位置.抱歉.

java memory visualvm snapshot

10
推荐指数
1
解决办法
759
查看次数

为什么Java API在if语句中有看似奇怪的赋值?

我是编程和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-8

10
推荐指数
1
解决办法
263
查看次数

Java编译器可以重新排序函数调用吗?

我知道java编译器实际上可以重新排序代码指令.但java可以重命令函数调用吗?

例如:

...
//these lines may be reordered
a=7;
b=5;
...
//but what about this?
callOne();
callTwo();
Run Code Online (Sandbox Code Playgroud)

java compiler-optimization

10
推荐指数
1
解决办法
235
查看次数

何时创建变量(内存管理)

您可以创建一个变量来存储将来可以引用该变量的值.我听说你必须在使用它之后将变量设置为'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

7
推荐指数
1
解决办法
462
查看次数

一个阶段的不变性与状态变化

我对不可变类的概念很新.考虑这个课程:

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)

java oop immutability

7
推荐指数
1
解决办法
541
查看次数