我一整天都在谷歌搜索.但对我来说仍然不太清楚,所以这个问题可能听起来有些妄想.
嗯..我们知道主存储域很少.年轻,终身(老一代)和PermGen.
年轻的领域分为伊甸园和幸存者(其中两个).OldGen用于幸存的物体.
关于MaxTenuringThreshold - 它使对象不会过早地被复制到OldGen空间.
它非常清晰易懂.
但那个"MaxTenuringThreshold"...... - 它究竟是如何工作的?
垃圾收集器如何处理这些仍然存活到MaxTenuringThreshold的对象以及以何种方式存在?他们在哪里?
对象被复制回Survivor空间进行垃圾收集..或者它以其他方式发生?
没有找到任何好的解释,所以我会非常感谢任何有用的链接或解释.
Scala有自己的XML库,它提供了内置的支持.但是,该语言的一个主要特性是被称为Java兼容性.我希望能够以与使用scala类似的方式使用java Node对象.
我的问题是:
我很新,对scala很天真.只知道如何定义一个函数类型,例如Set here(仅作为示例).
type Set = Int => Boolean
def set(i: Int): Set = n => n == i
def contains(s: Set, i: Int) = s(i)
Run Code Online (Sandbox Code Playgroud)
我还阅读了与语言无关的函数类型的维基.看来C#,C,Haskel也有类似的语法. http://en.wikipedia.org/wiki/Function_type.
我的问题是在哪种情况下你更喜欢定义这种抽象类型函数之一并使用它,而没有其他选择来达到同一目标?比较直接定义使用的具体方法def
或者我可以放弃要求,说使用这个函数类型,我可以使代码看起来更好.这样我就可以更多地了解函数类型.
在这里我主要感兴趣的部分是type Set = Int => Boolean,当你想抽象出来的时候?我正在寻找现实生活中的用例,以及如何在scala语法中的具体方法中实现它.例如,这个有点复杂.
type Set2 = (Int,Int,String) => (Boolean => Int) => (Boolean => Int).
Run Code Online (Sandbox Code Playgroud)
我知道它被称为更高级的类型.语法本身确实很有意义. 但我只需要scala初学者更简单的现实生活例子.
我发现这个答案描述了它. 什么是Scala中更高级的kinded类型?
但它对我来说仍然有点模糊.我更喜欢初学者的简单答案. 似乎函数本身除了参数和结果类型之外不需要任何实现方法. 例如,如果结果(布尔值)不是来自参数(Int),它仍然会编译.
def set(i: Int): Set1 = aa => new Date().getDate() == i
Run Code Online (Sandbox Code Playgroud)
我不是吗?
让我知道为什么这个问题不明确或不好,所以我可以改进它,先生!
异常堆栈.
Exception in thread "main" java.lang.ClassCircularityError:
plugins/agents/Agent
at java.lang.Class.getDeclaringClass(Native Method)
at java.lang.Class.getEnclosingClass(Class.java:1085)
at java.lang.Class.getCanonicalName(Class.java:1169)
at agents.loader.AgentLoader.getPluginAgentFromCache(AgentLoader.java:288)
at compiler.AgentCompiler.main(AgentCompiler.java:365)
Run Code Online (Sandbox Code Playgroud)
下面是导致错误的代码.如果我将getCanonicalName更改为getName然后一切都很好,这很奇怪.这些加载的类加载了自定义的ClassLoader.喜欢cl = defineClass(name, byteArray, 0, byteArray.length);
public Class getPluginAgentFromCache(String name)
{
if (_loadedClasses == null)
return null;
Iterator <Class> iter = _loadedClasses.iterator();
while (iter.hasNext())
{
Class c=iter.next();
if (c.getCanonicalName().equals(name))
return c;
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我为什么这里的getCanonicalName会抛出这个错误?(JDK 1.6.0_20)
更新 经过一些研究,我发现在定义类时,必须首先加载其父类.但这很难.当我写入二进制文件时,它们只是按文件夹中的顺序排序.因此,当我加载它们时,它们不会被类hieriarchy命令.这里有点烦人.现在我只是循环这些类,然后再次加载错误类.这是解决方法,但不是一个好的.
当我有两个XML对象时,如何使用XPath将它们与完全相等(所有相同的节点,属性和值)进行比较?
我已经阅读了一些提示,多线程实现在很大程度上取决于您正在使用的目标操作系统.操作系统最终提供多线程功能.如Linux有POSIX标准实现和windows32有其他方式.
但我想知道编程语言水平的主要差异.C似乎为同步提供了更多选择,例如Mutex,读写锁,记录锁定,Posix信号量.
但在Java中,我知道我们可以使用像Mutex这样的同步作品吗?还有一些其他高级API,比如AtomicXX和volatile.但我没有找到像记录锁定和读写锁的东西.它是Java语言的弱点吗?或者是跨平台的牺牲?
另外我想知道这是一个主要原因,像nginx这样的web服务器和像oracle这样的数据库都是用C/C++编写的吗?
我实际上是一名Java开发人员,我对它非常好奇.希望有人可以给我一些建议.
编辑:
Paul和Jesper已经建议Java在JDK1.5之后支持所有类似的锁类,如C/C++.但是如果可能的话,我仍然希望有人可以解释为什么Java提供足够支持的更多细节,我们仍然找不到纯Java"oracle".
编辑:
另外,我想添加一些有趣的东西,我是从Nas.com Khan的developer.com上学到的. 了解Java多线程和读写锁.
其中有一些话题.
编辑:
来自FileLock JavaDocs
文件锁代表整个Java虚拟机.它们不适合控制同一虚拟机中多个线程对文件的访问.
Java中的文件锁与C/C++中的文件锁完全相同.
更新
我找到了另一个有趣的区域,比较
在C++中,有一些类似的东西
atomic<int> x, y;
Run Code Online (Sandbox Code Playgroud)
在JAVA我们也有AtomicInteger.它们是一样的吗?
有没有办法将具体类型列表转换为Java中的接口列表?
例如:
public class Square implements Shape { ... }
public SquareRepository implements Repository {
private List<Square> squares;
@Override
public List<Shape> getShapes() {
return squares; // how can I return this list of shapes properly cast?
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢,
帽子
我有以下表结构,其中包含实时数据:
CREATE TABLE IF NOT EXISTS `userstatistics` (
`user_id` int(10) unsigned NOT NULL,
`number_logons` int(7) unsigned NOT NULL DEFAULT '0',
`number_profileminiviews` int(7) unsigned NOT NULL DEFAULT '0',
`number_profilefullviews` int(7) unsigned NOT NULL DEFAULT '0',
`number_mailsreceived` int(7) unsigned NOT NULL DEFAULT '0',
`number_interestreceived` int(7) unsigned NOT NULL DEFAULT '0',
`number_favouratesreceived` int(7) unsigned NOT NULL DEFAULT '0',
`number_friendshiprequestreceived` int(7) unsigned NOT NULL DEFAULT '0',
`number_imchatrequestreceived` int(7) unsigned NOT NULL DEFAULT '0',
`yearweek` int(6) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`user_id`,`yearweek`)
) …Run Code Online (Sandbox Code Playgroud) 我想让我的Web应用程序能够脱机工作,一旦它上线或再次连接,它就应该能够在离线模式下传输用户所做的修改.
我已经看到Google Gears是我的问题的理想解决方案,不建议使用它,因为它现在已被弃用.
在使用技术和应用程序设计方面,使我的应用程序脱机工作的好方法是什么?