据说在Java方法中,参数是通过值传递的,对于基元和对象都是如此,对象的引用是按值传递的.为了说明考虑代码:
class Test {
private static void dateReplace (Date arg) {
arg = new Date (arg.getYear(), arg.getMonth(), arg.getDate() +1);
System.out.println ("arg in dateReplace: " + arg);
}
public static void main(String[] args) {
Date d1 = new Date ("1 Apr 2010");
dateReplace(d1);
System.out.println ("d1 after calling dateReplace: " + d1);
}
}
this will print:
arg in dateReplace: Fri Apr 02 00:00:00 2010
d1 after calling dateReplace: Thu Apr 01 00:00:00 2010.
Run Code Online (Sandbox Code Playgroud)
什么是C++等价物,会产生相同的结果?
什么是C++等价物,在调用方法后将d1的值赋予与方法中相同的值,即调用者看到修改后的值?
我有这样简单的WebView代码:
WebView wv = (WebView) findViewById(R.id.webview1);
wv.loadUrl("http://en.wikipedia.org/wiki/Book");
Run Code Online (Sandbox Code Playgroud)
但显示的页面显示维基百科的内容,就好像它是桌面浏览器,在手机上看起来相当丑陋.如果我使用浏览器应用程序在我的手机上访问维基百科网站,那么它会根据手机布局正确显示内容.
我尝试在webview中设置用户代理字符串,但这也无济于事.
有人有解决方案吗?
假设我有一个方法来计算来自n个项目的r个项目的组合:
public static long combi(int n, int r) {
if ( r == n) return 1;
long numr = 1;
for(int i=n; i > (n-r); i--) {
numr *=i;
}
return numr/fact(r);
}
public static long fact(int n) {
long rs = 1;
if(n <2) return 1;
for (int i=2; i<=n; i++) {
rs *=i;
}
return rs;
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的那样,它涉及到阶乘,它很容易溢出结果.例如,如果我对于foctorial方法有事实(200),我得到零.问题是为什么我得零?
其次,我如何在上面的上下文中处理溢出?如果结果太大而不是返回错误答案,则该方法应返回最大可能的数字以适合长.
一种方法(但这可能是错误的)是,如果结果超过一些大数,例如1,400,000,000,那么返回结果的余数为1,400,000,001.你能解释一下这意味着什么,我怎么能用Java做到这一点?
请注意,我不保证上述方法对于计算阶乘和组合是准确的.如果您能找到错误并纠正错误,可获得额外奖励.
请注意,我只能使用int或long,如果不可避免,也可以使用double.不允许使用其他数据类型.
我不确定是谁将这个问题标记为作业.这不是功课.我希望这是家庭作业,我回到了未来,大学的年轻学生.但我已经老了十多年,当过程序员.我只想练习用Java开发高度优化的解决方案.在我们大学时代,互联网甚至不存在.今天的学生很幸运,他们甚至可以像SO一样在网站上发布作业.
安装xcode ios SDK后,我现在可以运行iPhone模拟器了.现在是否可以安装和运行第三方免费iPhone应用程序,如Paper Glider,就像在真正的iPhone上一样,以及如何做到这一点?
我从这个来源 C中有这个代码:
#import <Foundation/Foundation.h>
#import "OpenGLCommon.h"
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSMutableString *result = [NSMutableString string];
static const Vertex3D vertices[]= {
{0, -0.525731, 0.850651}, // vertices[0]
{0.850651, 0, 0.525731}, // vertices[1]
{0.850651, 0, -0.525731}, // vertices[2]
{-0.850651, 0, -0.525731}, // vertices[3]
{-0.850651, 0, 0.525731}, // vertices[4]
{-0.525731, 0.850651, 0}, // vertices[5]
{0.525731, 0.850651, 0}, // vertices[6]
{0.525731, -0.850651, 0}, // vertices[7]
{-0.525731, -0.850651, 0}, // vertices[8]
{0, -0.525731, …
Run Code Online (Sandbox Code Playgroud) Play Framework不遵循Java Servlet规范.我试图了解如何使用Play Framework开发的Web应用程序运行速度比使用Struts或Spring MVC开发相同的应用程序时更快?
如果我在Tomcat下部署Play框架开发的应用程序而不是使用Netty,它会如何影响性能?
作为Java Web应用程序的开发人员,我何时需要使用URL重写以及URL重写和转发之间的区别?
我在其他网站上搜索,我得到的是相互矛盾的信息,这取决于你所说的人,SEO人会以不同的方式回答这个问题.
在两种情况下,AFAIK都不会通知客户端(浏览器)更改,并且最终用户看到客户端在从服务器返回休止符时最初请求的完全相同的URL.
请问这个问题是在Java Servlet API的上下文中,其中定义了forward方法和sendRedirect方法,其中重定向和转发完全是两个不同的东西.这个问题是关于forward(由Servlet API中的forward方法定义)和URL重写之间的区别.问题清楚地表明答案应该在Java servlet的上下文中.最重要的是,我何时需要使用URL重写,再次在开发Java Web应用程序的上下文中.
在我面向公众的 Web 应用程序中,图像(连同元数据)的显示方式就像使用 Spring 框架开发的相册应用程序一样。我想要的是将文件系统中的所有图像(数以千计)缓存在 RAM 中,以便在 HTML 中遇到类似图像标记时:
<img src="images/folder1/subfolder/myimage.jpg" />
图像是从缓存内存中提供的,而不是由 tomcat 网络服务器从磁盘提供的,以实现高性能。
如何在 spring 框架 web 应用程序中实现这一点?
如果使用 mongodb 来存储图像元数据等 Web 内容,如何在同一个 Spring Web 应用程序中实现上述场景?
所以有两个答案,一个不涉及 mongodb,一个涉及 mongodb。
我在 ubuntu 服务器上的节点应用程序的标准端口 80 上运行 nginx。/etc/nginx/sites-available/default 是:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3333;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Run Code Online (Sandbox Code Playgroud)
我已经安装了php7. 我想使用 nginx 在端口 8585 上提供 php 文件。因此 example.com:8585/info.php 指向文件系统上的 /var/www/html/info.php 。
如何解决这个问题呢?
我有一个API(来自第三方java库),看起来像:
public List<?> getByXPath(String xpathExpr)
Run Code Online (Sandbox Code Playgroud)
在名为DomNode的类上定义
我在scala函数中尝试这个:
1: def removeChild(node: DomNode, xpath: String) {
2: val lst: List[?] = node.getByXPath(xpath)
3: val child: DomNode = lst(0)
4: child.getParentNode().removeChild(child)
}
Run Code Online (Sandbox Code Playgroud)
但它不会在scala中编译.我在第2行得到错误.
根据答案,我修改了它,现在它是:
1: def removeChild(node: DomNode, xpath: String) {
2: val lst = node.getByXPath(xpath)
3: val child = lst(0).asInstanceOf[DomNode]
4: child.getParentNode().removeChild(child)
}
Run Code Online (Sandbox Code Playgroud)
现在我在第3行得到错误:java.util.List类型的lst [?0]不接受参数
我也尝试了val lst: List[_] = node.getByXPath(xpath)
但是这给了我同样的错误:
type mismatch;
found : java.util.List[?0] where type ?0
required: scala.List[_]
Run Code Online (Sandbox Code Playgroud)
所以我仍然被困住了.
我有一个API(来自第三方java库),看起来像:
public List<?> getByXPath(String xpathExpr)
defined on a class called DomNode
Run Code Online (Sandbox Code Playgroud)
我在scala中尝试这个:
node.getByXPath(xpath).toList.foreach {node: DomElement =>
node.insertBefore(otherNode)
}
Run Code Online (Sandbox Code Playgroud)
但是我在node.getByXPath上遇到编译错误.错误:"类型不匹配;找到:(com.html.DomElement)=>所需单位:(?0)=>?其中type?0"
如果我将其更改为:
node.getByXPath(xpath).toList.foreach {node =>
node.insertBefore(otherNode)
}
Run Code Online (Sandbox Code Playgroud)
然后错误消失但是我在node.insertBefore(otherNode)错误上得到错误:"value insertBefore不是?0的成员"
这个问题的答案是什么?
我遇到一种情况,当用户没有为某个字段输入数据时,我将 null 作为该 int 字段的值传递,以表示用户没有输入任何值,例如
{user: 'John',
age: null}
Run Code Online (Sandbox Code Playgroud)
但是当我在 Spring Boot 应用程序中阅读此类文档时,当它遇到上述文档时,会抛出
Caused by: java.lang.IllegalArgumentException: Parameter age must not be null!
Run Code Online (Sandbox Code Playgroud)
mongodb 中允许使用 null 值还是 Spring Boot 做错了什么?
我尝试过了:
@Data
@Document
public class User {
final private String user;
@org.springframework.lang.Nullable
final private int age;
}
Run Code Online (Sandbox Code Playgroud)
但这没有什么区别。除了不存储 null 之外(因为 null 已经填充在另一个节点/mongoose 应用程序中(它很乐意存储和读取 null 值,没有任何问题)使用相同的 mongodb 数据库),如何解决这个问题?
Groovy有一个很好的GUI控制台,我可以在其中输入任何java/groovy代码并运行.这与groovy一起分发.
至于我知道除了REPL之外,Scala没有这样的东西.
是否有任何第三方Scala GUI控制台,我可以从命令行下载并安装和运行,而不是使用webstart从JNLP文件中运行?
一个用例:
假设我有Scala程序:
val lineWidth = 2.5
val axisWidth = 1.5
val white = ConstVec3(1)
val background = white
val axisColor = ConstVec3(0)
drawFunction("Plot") { (dims, pixel) =>
val mid = dims/2.0
val p = pixel - mid
val color: Vec3 = background
color *= {
val shade = clamp(abs(p.x)/axisWidth, 0, 1)
mix(axisColor, background, shade)
}
color *= {
val shade = clamp(abs(p.y)/axisWidth, 0, 1)
mix(axisColor, background, shade)
}
color *= {
val scale = 2/mid.x
val …
Run Code Online (Sandbox Code Playgroud)