我需要编写一个小型服务器来处理来自Android应用程序的请求.(用户向服务器发送一个号码,服务器对从每个用户收到的号码进行一些数学计算 - 平均值,比方说 - 然后返回它).
我刚读过Oracle的这个简单介绍(http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html).
它解释了如何让服务器监听特定的门.普通的java,不需要特殊的应用程序(比如Tomcat).
我知道人们通常使用'servlets'(使用Tomcat)来完成这种事情.这是为什么?有什么好处?我不能像这个简单教程中描述的样本服务器一样编程,并让它始终在计算机上运行吗?
我只想更好地了解整体情况.=)
如果在我的代码中某处,我使用变量的地址(例如,将其传递给其他函数),编译器会自动选择将其存储在内存中吗?(而不是将其存储在寄存器中的可能性).
否则,如果我要求变量的地址(存储为寄存器)会发生什么?我知道我们不能将变量的地址显式设置为register(register int c).
编辑:
例如,如果我做了类似的事情
int c = 1;
print("Address of c: %p", &c);
Run Code Online (Sandbox Code Playgroud)
那么这个变量不能存储在寄存器中,不是吗?编译器会自动将其设置为存储在内存中吗?否则(如果它只是存储在一个寄存器中),屏幕上显示的地址是什么?
我开始学习函数编程,我真的想学习Scala,而不是Haskell或Lisp.
但是有些人声称学习Scala作为第一种函数式语言会减慢你对函数式编程的学习,因为Scala允许你对两种方式进行编程,并且当面对一个难题时,人们倾向于编写程序方式.
我的问题是,我怎样才能确保我以纯粹的功能方式编程?
(我的意思是,也许我无法区分两种风格,并且我无意中在程序上编程).
我知道,例如,我应该只使用val而不是vars.
我安装了Java JDK后,我刚刚安装了Eclipse.入门指南(在Eclipse中)说我应该在Window> Preferences> Java> Installed JREs中引用我的JDK安装,但是JRE也可以工作.
选择Java> Installed JREs首选项页面以显示已安装的Java运行时环境.确认已检测到JRE.默认情况下,用于运行工作台的JRE将用于构建和运行Java程序.它应该在已安装的JRE列表中带有复选标记.我们建议您使用Java SDK而不是JRE.SDK专为开发而设计,包含Java库的源代码,简化了调试.
已经有一个JRE设置(不是JDK),所以我什么也没做,并试图编译一个Hello World(只是为了看看会发生什么).令我惊讶的是,它汇编了!
我搜索了一下,看起来这很有效,因为Eclipse有一个内置的Java编译器.我尝试使用相同的eclipse设置进行调试,并且它也是成功的.
那么,在那里设置JDK和JRE有什么区别?为什么下载JDK很重要,因为在我的默认配置中Eclipse似乎没有使用它?
在Java中,我可以这样做:
class Point{
int x, y;
public Point (int x, int y){
this.x = x;
this.y = y;
}
}
Run Code Online (Sandbox Code Playgroud)
如何在Scala中执行相同的操作(在构造函数参数和类属性中使用相同的名称):
class Point(x: Int, y: Int){
//Wrong code
def x = x;
def y = y;
}
Run Code Online (Sandbox Code Playgroud)
编辑
我问这个是因为下面的代码不起作用
class Point(x: Int, y: Int) {
def +(that: Point): Point = new Point(this.x + that.x, this.y + that.y)
}
Run Code Online (Sandbox Code Playgroud)
但是以下一个有效:
class Point(px: Int, py: Int) {
def x = px
def y = py
def +(that: Point): Point = new Point(this.x …Run Code Online (Sandbox Code Playgroud)