扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
代码1:int static b;
张湾网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。成都创新互联自2013年起到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联。
代码2:this.a = 10;
代码3:Ca.b = 10;
代码4:m1();
代码5:new Ca().m2();
代码6:System.out.println(Ca.b);
代码7:System.out.println(s1.b);
代码8:System.out.println(s2.b);
代码2赋值问题,在静态的m1()方法中,不能直接调用非静态的变量,可以调用自身this对象。
在静态的方法中,可以直接调用静态的变量和方法,其它的要实例后再调用。希望回答对你有所帮助。
使用Java8,Nashorn大大提高了JavaScript 引擎引入,以取代现有的Nashorn Java脚本引擎。Nashorn提供2至10倍更好的性能,因为它直接编译代码在存储器,并传递到字节码JVM.Nashorn使用invokedynamics函数,在Java7引入以提高性能。
jjs
对于Nashorn引擎,JAVA8引入了一个新的命令行工具,JJS到控制台执行Java脚本代码。
解读js文件
创建并保存sample.js在 C: JAVA 文件夹。
sample.jsprint('Hello World!');
打开控制台并使用下面的命令。
C:\JAVAjjs sample.js
看到结果
Hello World!
JJS在交互模式
打开控制台并使用下面的命令
C:\JAVAjjs
jjs print("Hello, World!")
Hello, World!
jjs quit()
传递参数
打开控制台并使用下面的命令。
C:\JAVA jjs -- a b c
jjs print('letters: ' +arguments.join(", "))
letters: a, b, c
jjs
在JAVA调用JavaScript
使用ScriptEngineManager,JavaScript代码用Java编写可以被调用。
示例
选择使用任何编辑器创建以下java程序在 C:/ JAVA
Java8Tester.javaimport javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
public class Java8Tester {
public static void main(String args[]){
ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine nashorn = scriptEngineManager.getEngineByName("nashorn");
String name = "Mahesh";
Integer result = null;
try {
nashorn.eval("print('" + name + "')");
result = (Integer) nashorn.eval("10 + 2");
}catch(ScriptException e){
System.out.println("Error executing script: "+ e.getMessage());
}
System.out.println(result.toString());
}
}
验证结果
使用javac编译器编译如下类
C:\JAVAjavac Java8Tester.java
现在运行Java8Tester看到的结果
C:\JAVAjava Java8Tester
看到结果
Mahesh
12
从JavaScript调用Java
下面的例子将展示如何导入和使用Java类的Java脚本。
创建并保存 sample.js 在 c: JAVA 文件夹.
sample.jsvar BigDecimal = Java.type('java.math.BigDecimal');
function calculate(amount, percentage) {
var result = new BigDecimal(amount).multiply(
new BigDecimal(percentage)).divide(
new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_EVEN);
return result.toPlainString();
}
var result = calculate(568000000000000000023,13.9);
print(result);
打开控制台并使用下面的命令。
C:\JAVAjjs sample.js
看到结果
78952000000000000003.20
这种题,其实是考察你对数组的理解。
实际工作上,一般用List。区别在于,List可动态分配空间,数组长度是定死的。
List其实是对数组的封装,底层也是数组。
解决这个问题的思路(假设删除一个元素):
创建一个新的数组,长度为原来数组减1;
循环复制,匹配的不复制,不匹配的复制到新数组;
代码如下:
public class $ {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 };
System.out.print("删除前:");
show(arr);
// ///////////////////////////////////
int[] brr = new int[arr.length - 1];
int idx = 0;
for (int i : arr) {
if (i != 3) {
brr[idx++] = i;
}
}
// ///////////////////////////////////
System.out.print("删除后:");
show(brr);
}
private static void show(int[] arr) {
for (int i : arr) {
System.out.print(i + ",");
}
System.out.println();
}
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流