我理解以下Java输出.
public class EchoTestDrive {
public static void main(String[] args){
Echo e1 = new Echo();
Echo e2 = new Echo();
int x = 0;
while (x<4){
e1.hello();
e1.count = e1.count + 1;
if (x==3){
e2.count = e2.count +1;
}
if(x>0){
e2.count = e2.count + e1.count;
}
x = x+1;
System.out.println("e1.count is " + e1.count);
System.out.println("e2.count is " + e2.count);
}
System.out.println(e2.count);
}
}
class Echo {
int count = 0;
void hello (){
System.out.println ("helloooooooo..");
}
}
Run Code Online (Sandbox Code Playgroud)
输出
helloooooooo..
e1.count …Run Code Online (Sandbox Code Playgroud) 我目前正在寻找一个词法分析器/解析器,它从BNF语法(ocamlyacc具有优先级和关联性的文件)生成Scala代码.我很困惑,因为我几乎没有发现如何做到这一点.
对于解析,我发现scala-bison(我有很多麻烦可以使用).所有其他工具都只是导入Scala的Java解析器(如ANTLR).
对于乐兴来说,我一无所获.
我还找到了Scala 的着名解析器组合器,但是(如果我错了,请纠正我),即使它们非常吸引人,它们也会消耗大量的时间和内存,这主要是由于回溯.
所以我有两个主要问题:
假设我有一个预定义的值列表(RW,FW,4W),表示车辆的驱动类型:
RW - 后轮
前锋 - 前轮
4W - 四轮
现在,我想从上面的3个值中取一个值作为我用户的输入,然后将其存储在数据库中.
据我所知,我可以借助以下任何一种方法执行此操作:
- 在UI上对值进行硬编码,以便UI显示仅具有上述3个值的下拉列表.然后将该值存储String vehicleType在Vehicle vehicle对象的字段中,然后将其存储在DB中String.
缺点:
一世).没有验证对象级别的值
ⅱ).没有验证数据库级别的值.
III).虽然很少需要为列表添加新值,但用户仍然无法在运行时添加新值
- 优点:
一世).无需join在DB处检索vehicle对象
要么
VEHICLE_TYPE在DB中创建一个具有所有3个值的单独表,并将其与VEHICLE表通过表链接.外键.然后从VEHICLE_TYPE表中填充UI的下拉列表.将值存储在vehicle对象中String
- 缺点:
一世).在对象级别没有验证
ⅱ).需要join在DB处检索vehicle对象
- 优点:
一世).验证DB级别的值(通过外键)
ⅱ).用户可以在运行时向列表中添加新值
要么
VEHICLE_TYPE在DB中创建一个具有所有3个值的单独表,但不要将其与VEHICLE表通过.外键.然后从VEHICLE_TYPE表中填充UI的下拉列表.将值存储在vehicle对象和DB中String
- 缺点:
一世).在对象级别没有验证
ⅱ).没有DB级别的验证
- 优点:
一世).没有join需要在数据库级别
ⅱ).用户可以向列表中添加新值
要么 …
我有一个我手动创建的对象列表,如下所示:
rand1 <- rnorm(1e3)
rand2 <- rnorm(1e6)
myObjects <- NULL
myObjects[[1]] <-rand1
myObjects[[2]] <-rand2
names(myObjects) <- c("rand1","rand2")
Run Code Online (Sandbox Code Playgroud)
我正在研究捆绑对象的一些代码并将它们放在S3中.然后我在EC2中有代码,我想获取myObjects列表并自动"解包"它.在这个例子中,列表只有两个对象,名称是已知的,但我如何编码它来处理任何长度和任何名称的列表?
#pseudo code
for each thing in myObjects
thing <- myObjects[[thing]]
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何取名(myObjects)[1]并将其转换为一个对象的名称,我将为其分配myObjects [[1]]的内容.我可以处理循环,但创建每个对象有点让我挂起.我确信这很简单,但我不能理解它.
我刚刚尝试使用LLVM 1.5编译器(包含在XCode 3.2.3中)编译iOS项目,我收到了很多新的警告,包括以下几个:
protocol qualifiers without 'id' is archaic
Run Code Online (Sandbox Code Playgroud)
例如,这发生在这样的行上:
- (id)initWithContext:(NSManagedObjectContext *)context
coordinator:(NSPersistentStoreCoordinator *)coordinator
delegate:(<NSFetchedResultsControllerDelegate>)delegate;
Run Code Online (Sandbox Code Playgroud)
现在,我认为这可能是一个"命名约定"的警告,但任何人都知道它的真正含义是什么?
我想知道在数据库中存储US地址是否存在某种"标准"?这似乎是一项常见的任务,应该有某种标准.
我正在寻找的是数据库表应该如何工作和交互的特定模式,已经是第三种常规形式,包括数据类型(MySQL).一个好的UML文档可行.
也许我只是懒惰,但这是一个非常常见的任务,我相信有人已经发布了一种有效的方法来做到这一点.我只是不知道在哪里看,谷歌没有帮助.请指出我的资源.谢谢.
编辑
虽然这是一个更普遍的问题,但我想澄清一下我的具体需求.
地址将用于指定事件位置的道路地址.这些地址需要采用可以最佳分解和搜索的格式,并且还可以由我最终将数据源链接到的任何第三方应用程序使用.
也.数据将在输入时进行地理编码(long,lat)并单独存储,因此它必须符合任何地理编码器/应用程序/库所做的(尚未确定的)协议.
目前,北斗是看.scss文件里面的src文件夹,并自动更新CS文件.(通过打字compass watch myproject).
有没有办法在"观看过程"中包含haml文件?
(我无法安装StaticMatic,因为我不想安装Ruby1.8).
在具有16GB RAM的Windows Server 2008 x64上运行.NET应用程序.此应用程序需要获取和分析大量数据(大约64GB),并将其全部保存在内存中.
我期待看到的:流程大小扩展到16GB到64GB.Windows根据需要使用虚拟内存将额外数据分页到磁盘或从磁盘分页.这是经典的虚拟内存使用案例.
我实际看到的:进程大小仅限于物理内存量(16GB).应用程序将99.8%的时间花在垃圾收集器上.
为什么我们的应用程序无法使用虚拟内存?这是.NET垃圾收集器配置中的问题,还是Windows x64虚拟内存管理器本身的问题?我该怎么做才能让我们的应用程序使用虚拟内存而不仅限于物理内存?
谢谢.
- 布莱恩
更新:我写了一个非常小的程序,表现出相同的行为:
using System;
namespace GCTest
{
class Program
{
static void Main()
{
byte[][] arrays = new byte[100000000][];
for (int i = 0; i < arrays.Length; ++i)
{
arrays[i] = new byte[320];
if (i % 100000 == 0)
{
Console.WriteLine("{0} arrays allocated", i);
System.Threading.Thread.Sleep(100);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您想尝试它,请确保为x64构建.您可能需要稍微修改常量以强调您的系统.我看到的行为是,当进程接近16GB的大小时,进程陷入困境.没有抛出错误消息或异常.性能监视器报告GC中的CPU时间百分比接近100%.
这不是不可接受的吗?虚拟内存系统在哪里?
我只需要一些建议.我已经知道如何使用bash,ruby,python和perl,我想知道:使用SSL和登录连接到网站的小脚本会更快.
我只需要做这个脚本并用它做一个cron工作.所以它必须可以从控制台执行.
谢谢.
注意:如果你有任何示例脚本,它会很棒:)
我正在使用NHibernate进行ORM,一切正常.
现在我开始编写一些单元测试(使用数据库,我不想付出过多的努力来抽象它,我知道它不完美,但它的工作原理......).
我需要确保DB对于某些测试来说是完全空的.当然,我可以创建整个数据库.但这似乎有点矫枉过正,我认为需要更长的时间......
是否有DELETE_ALL命令清除所有表,我可以在NHibernate中使用?
克里斯
编辑:一个简短的更新,我决定采用SQLite方式,用NHibernate改变这个没问题.有一些陷阱,我使用这个配置,它的工作原理.否则,由于nHibernate在会话期间关闭连接,可能会出现"找不到表"错误,从而导致"丢失"数据库...
为了您的方便:复制并粘贴......
.Database(SQLiteConfiguration.Standard.ConnectionString("Data Source=:memory:;Version=3;New=True;Pooling=True;Max Pool Size=1;")
.Raw("connection.release_mode", "on_close"))
.Mappings(obj => obj.AutoMappings.Add(_config.APModel));
Run Code Online (Sandbox Code Playgroud)