목차
1. 동등 방법이란 무엇입니까?
1.1 equals方法:
2. 为什么要重写equals方法?
2.1 举个例子吧~
3. 分析equals源码:
1.1 같음 메서드:
2.1 예를 들어보겠습니다~
4. 正确重写equals方法:
Java java지도 시간 Java에서 equals 메소드를 올바르게 재정의하는 방법

Java에서 equals 메소드를 올바르게 재정의하는 방법

May 09, 2023 am 11:19 AM
java equals

1. 동등 방법이란 무엇입니까?

먼저 객체 클래스Java, 즉 의 모든 클래스의 상위 클래스(슈퍼 클래스/기본 클래스)라는 것을 알아야 합니다. Java code>에서는 모든 클래스가 기본적으로 Object 클래스를 상속받습니다. 즉, Object 클래스에 구현된 모든 메소드를 직접 사용할 수 있습니다. equals 메서드는 객체 클래스가 구현하는 많은 메서드 중 하나입니다. Object类Java中所有类的父类(超类/基类),也就是说,在Java中,所有的类都是默认继承自Object类的,换言之,Object类中所实现的方法我们都可以直接拿来用。而equals方法便是Object类所实现的众多方法之一。

以下截图自Java11 API

Java에서 equals 메소드를 올바르게 재정의하는 방법

Object类的所有方法:

Java에서 equals 메소드를 올바르게 재정의하는 방법

1.1 equals方法:

  • equals:是Object类中的方法,只能判断引用类型,等下可以带大伙看看jdk源码

  • 默认判断的是地址是否相等(因为引用类型变量底层本质就是来存储对象地址的,有C/C++知识的小伙伴应该很了解 ),在子类中往往会重写该方法,用于判断对象的内容是否相等。比如等下会简单了解到的IntegerString(在IDEA里看源码实现 )

2. 为什么要重写equals方法?

我们有Object类实现的equals方法能用不就行了?为啥还得重写equals方法呢?这就要看看Object类equals方法实现机制了。

Java에서 equals 메소드를 올바르게 재정의하는 방법

我们可以清楚地看到,Object类equals方法底层是用 == 来实现的,也就是说它的用法跟我们平常用来比较基本数据类型的 == 用法一致。我们首先来看一下 == 的语法:

  • == 只能用来比较基本数据类型是否相等,也就是单纯的值比较;

  • == 在比较浮点数的时候也可能存在失效的情况,这是因为浮点数的存储机制跟整型家族不一样,浮点数本身就不能表示一个精确的值(具体原因可自行查看IEEE 754规则,这里不再展开)

所以我们在单纯的进行基本数据类型的值比较时可以用 == ,而比较引用数据类型就不能这么做,前面有提到,引用数据类型本质上是来引用/存储对象的地址的,所有你完全可以把它当做C/C++的指针来看待(这里杠一句说Java没有指针的,个人觉得只是叫法不同罢了 )
注: 不要把Java引用跟C++引用搞混了,C++引用其实是指针常量,即int* const,这也是C++的引用只能作为一个变量的别名的原因。

2.1 举个例子吧~

比较两个int时可以直接用 == ,当它们相等时结果为true,而当new了两个属性完全一样的对象时,再用 == 来进行比较就会出现错误,如我们所见,明明我们应该想要得到true的,结果却是false
源码:

Java에서 equals 메소드를 올바르게 재정의하는 방법

运行结果:

Java에서 equals 메소드를 올바르게 재정의하는 방법

到这里,我们应该大致清楚为啥要在比较对象时重写equals方法了,因为Object类提供给我们的不好使~~

3. 分析equals源码:

在进行重写之前,我们依旧来看看Java API中的定义:
public boolean equals(Object obj)
作用:指示某个其他对象是否“等于”此对象。

equals方法在非null对象引用上实现等价关系:

  • 自反性 :对于任何非空的参考值xx.equals(x)应该返回true

  • 对称性 :对于任何非空引用值xyx.equals(y)应该返回true当且仅当y.equals(x)回报true

  • 传递性 :对于任何非空引用值xyz ,如果x.equals(y)回报truey.equals(z)回报true ,然后x.equals(z)应该返回true

    다음 스크린샷은 Java11 API🎜🎜에서 가져온 것입니다. Java 같음 메서드를 올바르게 재정의하는 방법🎜🎜Object 클래스의 모든 메서드: 🎜🎜Java에서 같음 메서드를 올바르게 다시 작성하는 방법🎜

    1.1 같음 메서드:

    • 🎜같음code>: 예 <code>Object 클래스의 메서드는 참조 유형만 결정할 수 있습니다. 나중에 jdk 소스 코드를 보여드릴 수 있습니다🎜
    • 🎜기본적으로 , 주소가 Equality인지 여부를 결정합니다(참조 유형 변수의 기본 본질은 C/C++ 지식이 있는 친구가 매우 잘 알아야 하는 객체 주소를 저장하는 것이기 때문에). 이 메서드는 종종 하위 클래스에서 재정의되어 내용이 객체는 동일합니다. 예를 들어 IntegerString에 대해 간략하게 알아봅니다(IDEA의 소스 코드 구현 참조)🎜
    🎜2. 방법과 동일합니까? 🎜🎜Object 클래스에 구현된 equals 메서드를 사용할 수 있나요? 왜 equals 메서드를 재정의해야 합니까? 이는 Object 클래스equals 메서드 구현 메커니즘에 따라 다릅니다. 🎜🎜Java에서 equals 메소드를 올바르게 다시 작성하는 방법🎜🎜우리는 할 수 있습니다 이해 Object 클래스equals 메소드는 하단에 ==를 사용하여 구현된 것을 명확하게 볼 수 있는데, 이는 그 사용법이 우리가 일반적으로 사용하는 ==와 동일하다는 것을 의미합니다. 기본 데이터 유형을 비교하는 데 사용됩니다. 먼저 ==의 구문을 살펴보겠습니다. 🎜
    • 🎜==는 기본 데이터 유형의 동등성을 비교하는 데만 사용할 수 있습니다. 이는 간단한 값 비교입니다. 🎜 li>
    • 🎜== 부동 소수점 숫자를 비교할 때 오류가 발생할 수도 있습니다. 이는 부동 소수점 숫자의 저장 메커니즘이 정수 계열의 메커니즘과 다르기 때문입니다. 값 (구체적인 이유는 IEEE 754 규칙을 직접 확인하세요. 자세한 내용은 여기에 없습니다) 🎜
    🎜그래서 기본 데이터 유형의 값을 단순히 비교할 때 ==를 사용할 수 있지만 그렇게 할 수는 없습니다. 위에서 언급한 것처럼 참조 데이터 유형을 비교할 때 이렇게 하십시오. 참조 데이터 유형은 본질적으로 객체의 주소를 참조/저장하는 데 사용되므로 C/C++의 포인터로 처리할 수 있다고 언급했습니다. code> (여기서 Java에는 포인터가 없다고 합니다. 개인적으로는 이름이 다를 뿐이라고 생각합니다.)
    참고: Java 참조와 C++ 참조는 실제로 포인터 상수, 즉 <code> int* const이므로 C++의 참조는 별칭으로만 사용할 수 있습니다. 변수. 🎜

    2.1 예를 들어보겠습니다~

    🎜 두 정수를 비교할 때 ==를 직접 사용할 수 있습니다. 같으면 결과는 true이고, new이면 결과는 다음과 같습니다. 정확히 동일한 속성을 가진 두 개체를 얻은 경우 ==를 비교에 사용하면 오류가 발생합니다. 보시다시피 true , 결과는 <code>false
    소스 코드: 🎜🎜Java에서 equals 메소드를 올바르게 다시 작성하는 방법🎜🎜실행 결과: 🎜🎜Java에서 equals 메소드를 올바르게 다시 작성하는 방법🎜🎜이 시점에서 우리는 equals 메소드를 재정의해야 하는 이유에 대해 대략적으로 이해해야 합니다. 객체 비교, 우리에게 제공한 객체 클래스 코드>가 작동하지 않기 때문입니다~~🎜🎜3. 같음 소스 코드 분석: 🎜🎜다시 작성하기 전에 여전히 정의를 살펴보겠습니다. Java API:
    public boolean equals(Object obj)
    기능: 다른 개체가 이 개체와 "동일"한지 여부를 나타냅니다. 🎜🎜equals 메소드는 null이 아닌 객체 참조에 대한 동등성을 구현합니다: 🎜
    • 🎜재귀성: null이 아닌 참조 값 x , x.equals(x)true를 반환해야 합니다. 🎜
    • 🎜대칭: null이 아닌 참조 값 ​​xy의 경우 x.equals(y)y.equals(x)true를 반환하는 경우에만 true를 반환해야 합니다. 🎜
    • 🎜전이성: null이 아닌 참조 값 ​​x, yz의 경우, x .equals(y)true를 반환합니다. y.equals(z)true를 반환한 다음 x.equals를 반환합니다. ( z)true를 반환해야 합니다. 🎜
    • 일관성: null이 아닌 참조 값 ​​xy의 경우 x.equals(y)를 여러 번 호출하면 항상 반환됩니다. true이거나 객체에 대한 equals 비교에 사용된 정보가 수정되지 않은 경우 항상 false를 반환합니다. xy ,多次调用x.equals(y)始终返回true或始终返回false ,前提是未修改对象上的equals比较中使用的信息。

    • 对于任何非空的参考值xx.equals(null)应该返回false

    类Object的equals方法实现了对象上最具区别的可能等价关系; 也就是说,对于任何非空引用值x和y ,当且仅当x和y引用同一对象( x == y具有值true )时,此方法返回true 。

    注意:通常需要在重写此方法时覆盖hashCode方法,以便维护hashCode方法的常规协定,该方法声明相等对象必须具有相等的哈希代码。

    Java에서 equals 메소드를 올바르게 재정의하는 방법

    接下来看看String类中重写的equals方法和Integer类中重写的equals方法:

    Java에서 equals 메소드를 올바르게 재정의하는 방법

    //String类equals源代码:
    public boolean equals(Object anObject) {
            if (this == anObject) {
                return true;
            }
            if (anObject instanceof String) {
                String anotherString = (String)anObject;
                int n = value.length;
                if (n == anotherString.value.length) {
                    char v1[] = value;
                    char v2[] = anotherString.value;
                    int i = 0;
                    while (n-- != 0) {
                        if (v1[i] != v2[i])
                            return false;
                        i++;
                    }
                    return true;
                }
            }
            return false;
        }
    로그인 후 복사

    简单解读一下就是当对比的是同一个对象时,直接返回true,提高效率。当传进来的对象是当前类的实例时,进入进一步的判断,一个for循环依次遍历字符串每一个字符,只要有一个字符不同就返回false

    继续来看看Integer类的equals源代码:

    Java에서 equals 메소드를 올바르게 재정의하는 방법

    //Integer类的equals源代码:
     public boolean equals(Object obj) {
            if (obj instanceof Integer) {
                return value == ((Integer)obj).intValue();
            }
            return false;
        }
    로그인 후 복사

    Integer类equals源码简单许多,只要传入的对象是当前类的实例,就进行进一步的判断:当它们的值相等时,就返回true,不相等就返回false

    这里还是来实际演示一下⑧,就以Integer类为例:

    Java에서 equals 메소드를 올바르게 재정의하는 방법

    很明显,我们知道Integer类重写了equals方法且是引用类型。当直接用 == 来比较引用类型变量时,结果是false,而用equals判断结果为true。这便很好地说明了重写equals方法的必要性。String类大伙自己验证一哈⑧。

    4. 正确重写equals方法:

    (先说结论,getClass()instanceof更安全)

    到这里,我们基本把equals方法的各种源码都分析了一遍,接下来就是我们自己要来实现equals方法了。

    这里提供两个比较常见的equals重写方法:

    • instanceof实现重写equals方法

    • getClass实现重写equals方法

    假设有此场景:

    在已经创建好的长方形类中重写Object类中的equals方法为当长方形的长和宽相等时,返回TRUE,同时重写hashCode方法,重写toString方法为显示长方形的长宽信息。并测试类。

    package com.test10_04;
    
    import java.util.Objects;
    
    class Rectangle {
        private double length;
        private double wide;
    
        public Rectangle() {
            //空实现
        }
        public Rectangle(double length, double wide) {
            setLength(length);
            setWide(wide);
        }
    
        public double getLength() {
            return length;
        }
    
        public void setLength(double length) {
            assert length > 0.0 : "您的输入有误,长方形的长不能小于0";
            this.length = length;
        }
    
        public double getWide() {
            return wide;
        }
    
        public void setWide(double wide) {
            assert wide > 0.0 : "您的输入有误,长方形的宽不能小于0";
            this.wide = wide;
        }
    
        public double area() {
            return this.length * this.wide;
    
        }
        public double circumference() {
            return 2 * (this.wide + this.length);
        }
    
        public boolean equals(Object obj) {
            if (this == obj) { //判断一下如果是同一个对象直接返回true,提高效率
                return true;
            }
            if (obj == null || obj.getClass() != this.getClass()) { //如果传进来的对象为null或者二者为不同类,直接返回false
                return false;
            }
            //也可以以下方法:
    //        if (obj == null || !(obj instanceof Rectangle)) { //如果传进来的对象为null或者二者为不同类,直接返回false
    //            return false;
    //        }
            Rectangle rectangle = (Rectangle) obj; //向下转型
            //比较长宽是否相等,注意:浮点数的比较不能简单地用==,会有精度的误差,用Math.abs或者Double.compare
            return Double.compare(rectangle.length, length) == 0 && Double.compare(rectangle.wide, wide) == 0;
        }
    
        public int hashCode() { //重写equals的同时也要重写hashCode,因为同一对象的hashCode永远相等
            return Objects.hash(length, wide); //调用Objects类,这是Object类的子类
        }
    
        public String toString() {
            return "Rectangle{" + "length=" + length + ", wide=" + wide + &#39;}&#39;;
        }
    }
    
    public class TestDemo {
        public static void main(String[] args) {
    
            Rectangle rectangle1 = new Rectangle(3.0, 2.0);
            Rectangle rectangle2 = new Rectangle(3.0, 2.0);
            
            System.out.println(rectangle1.equals(rectangle2));
            System.out.println("rectangle1哈希码:" + rectangle1.hashCode() +
                    "\nrectangle2哈希码:" + rectangle2.hashCode());
            System.out.println("toString打印信息:" + rectangle1.toString());
        }
    }
    로그인 후 복사

    具体实现思路在代码中讲的很清楚了,我们这里重点分析一下getClassinstanceof两种实现方法的优缺点:

    Java에서 equals 메소드를 올바르게 재정의하는 방법

    将代码逻辑简化一下:
    我们就重点看这段简单的代码

    //getClass()版本
    public class Student {
    	private String name;
    	
        public void setName(String name) {
            this.name = name;
        }
    	@Override
    	public boolean equals(Object object){
    		if (object == this)
    			return true;
    		// 使用getClass()判断对象是否属于该类
    		if (object == null || object.getClass() != getClass())
    			return false;
    		Student student = (Student)object;
    		return name != null && name.equals(student.name);
    }
    로그인 후 복사
    //instanceof版本
    public class Student {
    	private String name;
    	
        public void setName(String name) {
           this.name = name;
       }
    	@Override
    	public boolean equals(Object object){
    		if (object == this)
    			return true;
    		// 通过instanceof来判断对象是否属于类
    		if (object == null || !(object instanceof Student))
    			return false;
    		Student student = (Student)object;
    		return name!=null && name.equals(student.name);
    	}
    }
    로그인 후 복사

    事实上两种方案都是有效的,区别就是getClass()限制了对象只能是同一个类,而instanceof却允许对象是同一个类或其子类,这样equals方法就变成了父类与子类也可进行equals操作了,这时候如果子类重定义了equals方法,那么就可能变成父类对象equlas子类对象为true,但是子类对象equlas父类对象就为false了,如下所示:

    class GoodStudent extends Student {
    
        @Override
        public boolean equals(Object object) {
            return false;
        }
    
        public static void main(String[] args) {
            GoodStudent son = new GoodStudent();
            Student father = new Student();
    
            son.setName("test");
            father.setName("test");
    
    		// 当使用instance of时
            System.out.println(son.equals(father)); // 这里为false
            System.out.println(father.equals(son)); // 这里为true
    
    		// 当使用getClass()时
            System.out.println(son.equals(father)); // 这里为false
            System.out.println(father.equals(son)); // 这里为false	
        }
    }
    로그인 후 복사

    注意看这里用的是getClass()

    Java에서 equals 메소드를 올바르게 재정의하는 방법

    返回值两个都是false,符合我们的预期,(连类都不一样那肯定得为false啊)

    Java에서 equals 메소드를 올바르게 재정의하는 방법

    而换成instanceof

    Java에서 equals 메소드를 올바르게 재정의하는 방법null이 아닌 참조 값 x의 경우 x.equals(null)false를 반환해야 합니다.

    🎜
🎜Object 클래스의 equals 메소드는 객체에 대해 가장 구별 가능한 동등 관계를 구현합니다. 즉, x와 y가 동일한 참조 값을 갖는 경우에만 null이 아닌 참조 값인 x와 y에 대해 구현합니다. object( 이 메서드는 x == y 값이 true인 경우 true를 반환합니다.) 🎜🎜참고: 동일한 개체에는 동일한 해시 코드가 있어야 한다는 hashCode 메서드의 일반 계약을 유지하려면 일반적으로 이 메서드를 재정의할 때 hashCode 메서드를 재정의해야 합니다. 🎜🎜Java에서 equals 메소드를 올바르게 다시 작성하는 방법🎜🎜다음 보기 String 클래스에서 재정의된 equals 메서드와 Integer 클래스에서 재정의된 equals 메서드를 살펴보세요. 🎜🎜 🎜rrreee🎜간단한 설명 동일한 객체를 비교할 때 true를 직접 반환하면 효율성이 향상됩니다. 전달된 객체가 현재 클래스의 인스턴스인 경우 추가 판단이 입력됩니다. for 루프는 문자열의 각 문자를 차례로 순회합니다. 한 문자가 다르면 false가 반환됩니다. 🎜🎜계속해서 <code>Integer 클래스의 equals 소스 코드를 살펴보세요: 🎜🎜Java에서 equals 메소드를 올바르게 다시 작성하는 방법🎜rrreee🎜Integer 클래스equals 소스 코드는 훨씬 간단합니다. 객체가 현재 클래스의 인스턴스인 경우 추가 판단이 내려집니다. 해당 값이 동일하면 true가 반환되고, 동일하지 않으면 true가 반환됩니다. 동일하면 false가 반환됩니다. 🎜🎜다음은 Integer 클래스를 예로 들어 실제 데모 입니다. 🎜🎜Java에서 equals 메서드를 올바르게 재정의하는 방법🎜🎜분명히 우리는 Integer 클래스equals 메서드를 재정의하고 참조 유형. ==를 사용하여 참조 유형 변수를 직접 비교하면 결과는 false이고, equals를 사용하여 결과가 true인지 확인하는 경우입니다. 이는 equals 메서드를 재정의해야 한다는 점을 잘 보여줍니다. 문자열 클래스를 직접 확인해 보세요. ???? 기본적으로 equals 메소드의 다양한 소스 코드를 분석한 후 다음 단계는 equals 메소드를 직접 구현하는 것입니다. 🎜🎜다음은 두 가지 일반적인 equals 재작성 방법입니다. 🎜
    🎜🎜 instanceof를 사용하여 equals 코드> 재작성을 구현하세요. code> 메서드🎜🎜🎜🎜<code>getClass를 사용하여 equals 메서드 재정의를 구현하세요🎜🎜
🎜다음 시나리오가 있다고 가정해 보세요. 🎜🎜생성된 후 재정의 직사각형 클래스의 Object 클래스에 있는 equals 메소드는 직사각형의 길이와 너비가 같을 때 TRUE를 반환하고 이를 다시 작성합니다. 동시에 hashCode 메서드를 사용하여 toString 메서드를 재정의하여 직사각형의 길이 및 너비 정보를 표시합니다. 그리고 수업을 테스트해 보세요. 🎜rrreee🎜구체적인 구현 아이디어는 코드에 명확하게 설명되어 있습니다. 여기서는 getClassinstanceof 두 가지 구현 방법의 장점과 단점을 분석하는 데 중점을 둡니다. 🎜🎜Java에서 equals 메소드를 올바르게 다시 작성하는 방법🎜🎜코드 로직 단순화:이 간단한 코드에 집중해 보겠습니다🎜rrreeerrreee🎜사실 두 솔루션 모두 유효합니다. 차이점은 getClass()가 객체를 동일한 클래스로만 제한하는 반면 인스턴스of code>는 객체가 동일한 클래스이거나 그 하위 클래스가 될 수 있도록 함으로써, equals 메소드가 부모 클래스가 되고, 하위 클래스도 동일 연산을 수행할 수 있도록 해준다. 이때, 하위 클래스가 equals 메소드를 재정의하면 가능해진다. 아래와 같이 상위 클래스 객체는 하위 클래스 객체와 동일하지만 하위 클래스 객체는 상위 클래스 객체와 동일하며 false입니다.🎜rrreee🎜여기에서는 <code>getClass()가 사용된다는 점에 유의하세요🎜🎜 Java에서 equals 메소드를 올바르게 다시 작성하는 방법🎜🎜반환값은 둘 다입니다. false, 이는 우리의 기대와 일치합니다(클래스도 다르기 때문에 false여야 함) 🎜🎜Java에서 equals 메소드를 올바르게 다시 작성하는 방법🎜🎜instanceof로 바꾸고 시도해 보세요: 🎜 🎜🎜 🎜

실행 결과: 하나는 true이고 다른 하나는 false입니다. 문제가 있는 것이 분명합니다. true一个为false,很明显出现问题了。

Java에서 equals 메소드를 올바르게 재정의하는 방법

这里的原因如下:
instanceof的语法是这样的:
当一个对象为一个类的实例时,结果才为true。但它还有一个特点就是,如果当这个对象时其子类的实例时,结果也会为true。这便导致了上述的bug。也就是说当比较的两个对象,他们的类是父子关系时,instanceof可能会出现问题。**需要深究的小伙伴可以自己去了解一哈,所以在这里建议在实现重写equals方法时,尽量使用getClass来实现。

在重写equals方法的同时需要重写hashCode

Java에서 equals 메소드를 올바르게 다시 작성하는 방법🎜🎜이유 여기 다음과 같습니다.
instanceof의 구문은 다음과 같습니다.
객체가 클래스의 인스턴스인 경우 결과는 true입니다. 그러나 이 객체가 하위 클래스의 인스턴스인 경우 결과도 true라는 특성도 있습니다. 이로 인해 위의 버그가 발생합니다. 즉, 비교되는 두 개체가 부모-자식 관계에 있을 때 instanceof가 문제를 일으킬 수 있습니다. **더 공부해야 하는 친구는 스스로 배울 수 있으므로 equals 메소드를 다시 작성할 때 getClass를 사용하여 구현해 보는 것이 좋습니다. 🎜🎜equals 메서드를 재정의하는 경우 hashCode 메서드를 재정의해야 합니다. 🎜

위 내용은 Java에서 equals 메소드를 올바르게 재정의하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

자바의 완전수 자바의 완전수 Aug 30, 2024 pm 04:28 PM

Java의 완전수 가이드. 여기서는 정의, Java에서 완전 숫자를 확인하는 방법, 코드 구현 예제에 대해 논의합니다.

자바의 웨카 자바의 웨카 Aug 30, 2024 pm 04:28 PM

Java의 Weka 가이드. 여기에서는 소개, weka java 사용 방법, 플랫폼 유형 및 장점을 예제와 함께 설명합니다.

Java의 스미스 번호 Java의 스미스 번호 Aug 30, 2024 pm 04:28 PM

Java의 Smith Number 가이드. 여기서는 정의, Java에서 스미스 번호를 확인하는 방법에 대해 논의합니다. 코드 구현의 예.

Java Spring 인터뷰 질문 Java Spring 인터뷰 질문 Aug 30, 2024 pm 04:29 PM

이 기사에서는 가장 많이 묻는 Java Spring 면접 질문과 자세한 답변을 보관했습니다. 그래야 면접에 합격할 수 있습니다.

Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까? Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까? Feb 07, 2025 pm 12:09 PM

Java 8은 스트림 API를 소개하여 데이터 컬렉션을 처리하는 강력하고 표현적인 방법을 제공합니다. 그러나 스트림을 사용할 때 일반적인 질문은 다음과 같은 것입니다. 기존 루프는 조기 중단 또는 반환을 허용하지만 스트림의 Foreach 메소드는이 방법을 직접 지원하지 않습니다. 이 기사는 이유를 설명하고 스트림 처리 시스템에서 조기 종료를 구현하기위한 대체 방법을 탐색합니다. 추가 읽기 : Java Stream API 개선 스트림 foreach를 이해하십시오 Foreach 메소드는 스트림의 각 요소에서 하나의 작업을 수행하는 터미널 작동입니다. 디자인 의도입니다

Java의 날짜까지의 타임스탬프 Java의 날짜까지의 타임스탬프 Aug 30, 2024 pm 04:28 PM

Java의 TimeStamp to Date 안내. 여기서는 소개와 예제와 함께 Java에서 타임스탬프를 날짜로 변환하는 방법에 대해서도 설명합니다.

캡슐의 양을 찾기위한 Java 프로그램 캡슐의 양을 찾기위한 Java 프로그램 Feb 07, 2025 am 11:37 AM

캡슐은 3 차원 기하학적 그림이며, 양쪽 끝에 실린더와 반구로 구성됩니다. 캡슐의 부피는 실린더의 부피와 양쪽 끝에 반구의 부피를 첨가하여 계산할 수 있습니다. 이 튜토리얼은 다른 방법을 사용하여 Java에서 주어진 캡슐의 부피를 계산하는 방법에 대해 논의합니다. 캡슐 볼륨 공식 캡슐 볼륨에 대한 공식은 다음과 같습니다. 캡슐 부피 = 원통형 볼륨 2 반구 볼륨 안에, R : 반구의 반경. H : 실린더의 높이 (반구 제외). 예 1 입력하다 반경 = 5 단위 높이 = 10 단위 산출 볼륨 = 1570.8 입방 단위 설명하다 공식을 사용하여 볼륨 계산 : 부피 = π × r2 × h (4

Spring Tool Suite에서 첫 번째 Spring Boot 응용 프로그램을 실행하는 방법은 무엇입니까? Spring Tool Suite에서 첫 번째 Spring Boot 응용 프로그램을 실행하는 방법은 무엇입니까? Feb 07, 2025 pm 12:11 PM

Spring Boot는 강력하고 확장 가능하며 생산 가능한 Java 응용 프로그램의 생성을 단순화하여 Java 개발에 혁명을 일으킨다. Spring Ecosystem에 내재 된 "구성에 대한 협약"접근 방식은 수동 설정, Allo를 최소화합니다.

See all articles