小编JPG*_*JPG的帖子

Thread.join和Synchronized有什么区别?

我很困惑何时使用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)

java multithreading thread-synchronization

11
推荐指数
3
解决办法
1万
查看次数

confusion in java 8 method referencing for equals method implementation with BiPredicate

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)

java java-8

6
推荐指数
1
解决办法
89
查看次数

ArrayList添加对象时是否使用了添加对象的hashCode方法

下面的代码是否使用了hashCodeScooter类的方法:

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 arraylist hashcode

4
推荐指数
1
解决办法
8225
查看次数

collections.sort方法只用于List类型的集合?

朋友们,我是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 collections

4
推荐指数
1
解决办法
3613
查看次数

如何在停止服务器时终止会话

我做了一个项目java,jsp,servlets.我已经完成了登录和注销过程的会话管理.我在这里面临一个问题.当我不从应用程序注销并停止我apache tomcat server并重新启动它时,我的会话不会被杀死.我希望我的会话在停止服务器时消失.我可以.xmlapache tomcat目录中的一些可配置文件中执行此操作吗?

java session jsp tomcat

3
推荐指数
1
解决办法
2169
查看次数

如何从spring控制器接收json响应到jsp页面

我创建了一个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)

java spring json jsp spring-mvc

3
推荐指数
1
解决办法
1万
查看次数

Google gson fromjson()TypeToken

我不了解TypeTokenGoogle的GSONapi 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()

这是一个匿名班吗?对此代码进行一些说明。

java json gson

3
推荐指数
1
解决办法
2314
查看次数

javac命令在linux环境中不起作用

我已经成功地在我的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命令没有运行?任何人都可以看看这个问题。

java linux jvm

3
推荐指数
2
解决办法
2万
查看次数

Array对象与其他对象有何不同

我对阵列的工作方式感到困惑.如果我将数组引用传递给某个方法,那么该方法可以更改先前存储在数组中的索引值.但是,如果对包装类对象执行相同操作,则该方法无法更改该值.这是代码:

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)

为什么数组能够更改而不是包装对象.谁能清除我的怀疑?谢谢.

java

2
推荐指数
1
解决办法
91
查看次数

equals和contains方法之间有什么区别

我正在使用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 collections treeset

1
推荐指数
1
解决办法
5411
查看次数

JVM是否将内存提供给值为null的本地引用变量

我对Java中的内存管理感到困惑。到处都写有局部变量被赋予堆栈的内存。而且,如果该局部变量是对象类型,那么将在堆中为其分配内存。我想知道JVM在哪里为值为null的本地对象引用变量分配内存。

public void show(){
Animal animal = null;
}
Run Code Online (Sandbox Code Playgroud)

JVM在哪里为动物对象分配内存。它在堆栈中吗?否则它不提供任何内存,因为它被标记为null。我确定它没有在堆中分配内存。

任何人都可以消除我的疑虑。

java memory-management

0
推荐指数
1
解决办法
92
查看次数