我正在学习Java,我知道在使用它时我必须初始化一个局部变量.但是,我刚刚从书中找到了一个代码,代码是:我想知道为什么在这种情况下变量量没有被初始化?
public static double cubeVolume(double sideLength)
{
double volume;
if (sideLength>=0)
{
volume=sideLength*sideLength*sideLength;
}
else
{
volume=0;
}
return volume;
}
Run Code Online (Sandbox Code Playgroud) 我有一个ConcurrentMap<Key, Long>缓存,它是从某个键到迄今为止看到的最大值的缓存。如果同时输入两个值,我想确保将较大的值插入到地图中。什么是最干净的方法来做到这一点?
一种丑陋的方法是LargestLong用一个UpdateIfBigger方法编写一个类,这可能会涉及一些 CAS 循环。我没有看到ConcurrentHashMap直接在 a 上执行这样的 CAS 循环的方法。
或者ConcurrentMap<Key, AtomicLong>在检索后使用一个和一个 CAS 循环。我听说对这样的原子原语使用并发集合通常是设计缺陷的标志,但这可能是一个例外。
符号和名称是否不同?保罗·格雷厄姆(Paul Graham)的Lisp,侧重于普通的口齿不清,有一些似乎暗示的讨论,例如
由于lambda表达式也是函数的名称,它们也可以首先出现在函数调用中:
((lambda(x)(*x 2)3)
6
这使得听起来像符号是名称,但名称不是符号.但我不明白什么样的Lisp"对象"符号是/可能的.
这也是源于我在sharp-quote(#')运算符v.的问题symbol-function.我怀疑这些不同的唯一原因是因为并非所有的名字都是符号,但我还没有足够的背景来理解这些答案(因此这个问题).
我也要求在elisp诉普通lisp中澄清.我假设这与lexical形式有关,直到版本24(我认为24.1)才在elisp中引入.
基本上有两个问题:
1)我的第三方JAR应该去哪里?目前我不情愿地将它们放在我的应用程序包中,这是不道德的,例如因为第三方库是较低级别的,并且应该能够被我的所有应用程序所依赖.
2)应该在哪里设置类路径?我已经看过的教程听起来应该是一个全局变量,但我不知道这是因为它需要依赖于项目,即项目X需要库L和M但是项目Y需要库M和N.目前我只是为每个应用程序创建一个"cp"文件,但我想知道是否有更规范的样式.Z
在 C 我做过这种事情
enum { USE_COKE = 1,
USE_PEPSI = 2,
USE_JUICE = 4,
USE_WATER = 8 };
int makeDrink(int flags);
//...
int rcode = makeDrink(USE_COKE | USE_JUICE | USE_WATER);
Run Code Online (Sandbox Code Playgroud)
我知道这是非常标准的,它也用于iostream例如。我想知道如何将这种设计模式翻译成 Java 或 OOP?我很确定多态性不是这里的方法,因为我的代码有一个if(flag_is_set)块比重写大部分例程更好。是否有实用程序Flags类,或使用配置对象、一个enum或一堆整数等执行此操作的首选方法。
MBean操作的正确异常处理策略是什么?其中一些操作可能会失败(例如,删除未连接的用户)并且应报告异常,但我不知道我的异常如何渗透到JMX层.我最好的想法是C风格的返回码.
似乎我的班级是一个内部阶级的事实导致了这个问题,这是我的预感 - 但基本上它是通常的模式:
public class UserProvisionerProfiler implements UserProvisionerProfilerMBean {
@Override
public int getTotalNumberOfUsers() {
return activeClients.size();
}
}
Run Code Online (Sandbox Code Playgroud)
和接口(嵌套在一个更大的类):
public interface UserProvisionerProfilerMBean {
public int getTotalNumberOfUsers();
}
Run Code Online (Sandbox Code Playgroud)
在代码中注册:
UserProvisionerProfiler userProvisionerProfiler = new UserProvisionerProfiler();
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
ObjectName name = new ObjectName(userProvisionerProfiler.getClass().getPackage().getName() + ":type=" + userProvisionerProfiler.getClass().getName());
mbs.registerMBean(userProvisionerProfiler, name);
Run Code Online (Sandbox Code Playgroud)
而错误:
1356 [1;31mERROR[39m [main], UserProvisioner ; Unhandled exception caught in main()
javax.management.NotCompliantMBeanException: MBean class UserProvisioner$UserProvisionerProfiler does not implement DynamicMBean, and neither follows the Standard MBean conventions (javax.management.NotCompliantMBeanException: Class UserProvisioner$UserProvisionerProfiler is not a …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个递归函数,用于添加数字中的所有数字.这是我想出的:
def sumOfDigits(num):
num=str(num)
if len(num)==0:
return 0
elif len(num)==1:
return int(num)
elif len(num)>1:
return int(num[0]) + int(num[-1]) + int(sumOfDigits(num[1:-1]))
Run Code Online (Sandbox Code Playgroud)
这似乎适用于几乎任何数字:
sumOfDigits(999999999)
>>>81
sumOfDigits(1234)
>>>10
sumOfDigits(111)
>>>3
sumOfDigits(1)
>>>1
sumOfDigits(0)
>>>0
Run Code Online (Sandbox Code Playgroud)
如果数字以'0'开头,会发生奇怪的事情
sumOfDigits(012)
>>>1
sumOfDigits(0123)
>>>11
sumOfDigits(00010)
>>>8
Run Code Online (Sandbox Code Playgroud)
我在这里失踪了什么?
我需要像这样传递一些结构作为函数参数
void myFunc(unsigned char c);
Run Code Online (Sandbox Code Playgroud)
我会用的myFunc(4),myFunc(8)或者是.
现在函数接受一个结构作为参数,所以我尝试了
typedef struct {
unsigned char address;
unsigned char command;
unsigned char group;
unsigned char response;
unsigned char flags1;
unsigned char flags2;
}test_t;
void myFunc(test_t test);
myFucn({0,0,0,0,0}); // but this gives me error
Run Code Online (Sandbox Code Playgroud)
我怎样才能将const struct作为参数传递而不必先实例化?就像myFunc(4)作为unsigned char一样.
谢谢
我想询问如何获得每个类别的相关帖子的链接.我只得到一些只显示父类别的代码.任何帮助将非常感激.谢谢!
<?php
$categories = get_categories();
foreach ($categories as $cat){
if($cat->parent < 1){
echo $cat->cat_name ;
}
}
Run Code Online (Sandbox Code Playgroud)
?>