我很困惑何时使用Thread.join()
以及何时synchronization
在多线程应用程序中使用.
根据我的说法,他们都阻止或等待执行由其他一些线程完成.
这个例子必须依次按顺序模式输出10 A,10 B和10 C:
1 : A
2 : A
3 : A
4 : A
5 : A
6 : A
7 : A
8 : A
9 : A
10 : A
1 : B
2 : B
3 : B
4 : B
5 : B
6 : B
7 : B
8 : B
9 : B
10 : B
1 : C
2 : C
3 : C
4 …
Run Code Online (Sandbox Code Playgroud) I was practicing my Java 8 skills. I came across a strange (for me) code. I have my bean class Person
with overridden equals
method. Then I tried to implement BiPredicate
with equals method. It ran successfully. Can anyone explains how's that possible..because in my opinion equals method takes 1 argument and BiPridicate's test
method takes two arguments. How is it satisfying this condition?
My code--
Method_Ref1
package method_referencing;
import java.util.function.BiPredicate;
import method_referencing.Person;
//1. static ....
//2. instance ...
//3. …
Run Code Online (Sandbox Code Playgroud) 下面的代码是否使用了hashCode
我Scooter
类的方法:
void using_ArrayList(){
List coll=new ArrayList();
Scooter s1=new Scooter();
s1.setNumber("HR26KC345352344");
s1.setHorse_power(123.321);
s1.setYear_of_made(1997);
Scooter s2=new Scooter();
s2.setNumber("HR26KC34535");
s2.setHorse_power(123.321);
s2.setYear_of_made(1997);
Scooter s3=new Scooter();
s3.setNumber("HR26KC345352344");
s3.setHorse_power(123.321);
s3.setYear_of_made(1997);
coll.add(s1);
coll.add(s2);
coll.add(s3);
Scooter s=new Scooter();
s.setNumber("HR26KC345352344");
System.out.println(coll.contains(s));
}
Run Code Online (Sandbox Code Playgroud)
滑板车类别:
class Scooter{
private String number;
private double horse_power;
private int year_of_made;
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public double getHorse_power() {
return horse_power;
}
public void setHorse_power(double horse_power) {
this.horse_power = horse_power; …
Run Code Online (Sandbox Code Playgroud) 朋友们,我是Java-Collection的新手.我想问一下这个Collections.sort()
方法只用于/是List
类型的集合.我无法对以下代码进行排序:
Collection collection=new HashSet();
collection.add("zebra");
collection.add("frog");
collection.add("bison");
collection.add("puma");
Collections.sort(collection); //error...why??
Run Code Online (Sandbox Code Playgroud)
我知道这HashSet
用于独特的元素.但有没有办法对这个系列进行排序?
我做了一个项目java
,jsp
,servlets
.我已经完成了登录和注销过程的会话管理.我在这里面临一个问题.当我不从应用程序注销并停止我apache tomcat server
并重新启动它时,我的会话不会被杀死.我希望我的会话在停止服务器时消失.我可以.xml
在apache tomcat
目录中的一些可配置文件中执行此操作吗?
我创建了一个JSP页面,其中包含一些文本字段.单击提交按钮,它调用Ajax调用将数据发布到Spring控制器.现在,在将数据保存到数据库中之后,控制器会创建一个JSON响应.我希望这个响应在JSP文件中可用.下面是我的文件的代码......
JSP文件:
$(document).ready(function(){
$("#submitButton").click(function(e){
var formData = getFormData();
$.ajax({
type: 'POST',
'url': 'http://localhost:8080/Test_ReportingUI/addDb.htm',
data: {jsonData: JSON.stringify(formData)},
dataType: 'json',
success: function(response){
try{
var strResponse=jQuery.parseJSON(response);
}catch(err){}
if(response.status=='ok')
{
alert("details added");
}
else
{
alert("error happened");
}
},
timeout: 10000,
error: function(xhr, status, err){
if(status=='timeout')
{
alert('Request time has been out','');
}
console.log(status,err);
}
});
});
});
Run Code Online (Sandbox Code Playgroud)
弹簧控制器方法:
@Autowired RWCustomerService rwCustomerService;
@RequestMapping (value="addDb.htm", method=RequestMethod.POST)
String addEditCustomer(@RequestParam String jsonData)
{
System.out.println("hello world");
System.out.println("-----------------\n"+jsonData);
ModelAndView modelAndView=new ModelAndView("custDB_setup");
JSONObject jsonResponse = new JSONObject();
try{
JSONObject requestedJSONObject …
Run Code Online (Sandbox Code Playgroud) 我不了解TypeToken
Google的GSON
api fromJson
方法。下面的代码对我来说很复杂...
Gson gson = new Gson();
ArrayList<ID_Name_Address> al = new ArrayList<ID_Name_Address>();
al = gson.fromJson(json, new TypeToken<List<ID_Name_Address>>(){}.getType());
Run Code Online (Sandbox Code Playgroud)
这里到底发生了什么: new TypeToken<List<ID_Name_Address>>(){}.getType()
这是一个匿名班吗?对此代码进行一些说明。
我已经成功地在我的linux
系统上安装了 java 。当我从桌面运行 hello world 测试示例时,它运行成功,但是几天后,当我再次尝试使用javac
命令从终端运行它时,它给了我以下响应:
The program 'javac' can be found in the following packages:
* default-jdk
* ecj
* gcj-5-jdk
* openjdk-8-jdk-headless
* gcj-4.8-jdk
* gcj-4.9-jdk
* openjdk-9-jdk-headless
Try: sudo apt install <selected package>
Run Code Online (Sandbox Code Playgroud)
当我测试我的环境时JAVA_HOME
。使用echo $JAVA_HOME
其显示的变量:
/usr/lib/jvm/java-8-openjdk-amd64
它也有PATH
变量。当我运行一个which java
命令时,它显示:
/usr/lib/jvm/java-8-openjdk-amd64/bin/java
并使用命令whereis java
显示:
java: /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/share/man/man1/java.1.gz
所以,我不明白这个问题,因为我自己应用了 env。变量,它显示一切都很完美,那么为什么javac
命令没有运行?任何人都可以看看这个问题。
我对阵列的工作方式感到困惑.如果我将数组引用传递给某个方法,那么该方法可以更改先前存储在数组中的索引值.但是,如果对包装类对象执行相同操作,则该方法无法更改该值.这是代码:
public class TestArray {
public static void main(String[] args) {
ChangeValues ch=new ChangeValues();
int intArr[]={1,2,3};
Integer iWrapper=new Integer(123);
ch.changeArray(intArr);
for(int i:intArr){
System.out.print(i);// o/p: 789
}
System.out.println("\n-----------------");
ch.changeWrapper(iWrapper);
System.out.println(iWrapper);// o/p: 123
}
}
class ChangeValues{
void changeArray(int i[]){
i[0]=7;
i[1]=8;
i[2]=9;
}
void changeWrapper(Integer i){
i=789;
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
789
-----------------
123
Run Code Online (Sandbox Code Playgroud)
为什么数组能够更改而不是包装对象.谁能清除我的怀疑?谢谢.
我正在使用TreeSet
以下代码处理该集合:
import java.util.*;
public class Employee implements Comparable<Employee>{
private int ID;
public Employee(int iD) {
ID = iD;
}
@Override
public int compareTo(Employee obj) {
return this.ID-obj.ID;
}
private static void intoTreeSet() {
Employee e1=new Employee(4);
Employee e2=new Employee(2);
Employee e3=new Employee(1);
Employee e4=new Employee(5);
Employee e5=new Employee(3);
Employee eTemp=new Employee(3);
Set<Employee> set=new TreeSet();
set.add(e1);set.add(e2);set.add(e3);set.add(e4);set.add(e5);
System.out.println("output says: ");
for(Employee e:set){
System.out.print(e.ID+" ~ ");
}
System.out.println();
if(set.contains(eTemp)){
System.out.println("C O N T A I N S !!!");
}
if(e5.equals(eTemp)){
System.out.println("E …
Run Code Online (Sandbox Code Playgroud) 我对Java中的内存管理感到困惑。到处都写有局部变量被赋予堆栈的内存。而且,如果该局部变量是对象类型,那么将在堆中为其分配内存。我想知道JVM在哪里为值为null的本地对象引用变量分配内存。
public void show(){
Animal animal = null;
}
Run Code Online (Sandbox Code Playgroud)
JVM在哪里为动物对象分配内存。它在堆栈中吗?否则它不提供任何内存,因为它被标记为null。我确定它没有在堆中分配内存。
任何人都可以消除我的疑虑。