자바 초급 질문 드려요

  • #3653743
    외노자 208.***.145.251 680

    String a = “hello”;
    String b = new String(“hello”);

    이 두 문단의 차이가 뭔가요? String은 primitive case인데 왜 new를 쓰나요?

    • 그르게 174.***.195.96

      자바 스트링은 빌트인이고 자체로 가비지 컬렉터도 있는데 c++도 아니고 왜 그르나 그건 아닐쎄.

    • 0000 68.***.3.209
    • …. 66.***.124.6

      Is String a primitive type?
      https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

      String a = “string”;
      String b = “string”;
      String c = new String(“string”);
      String d = new String(“string”);

      System.out.println((a==b) + “, ” + (c==d) + “, ” + (b==c)); // –> true, false, false. 위의 stackoverflow에 설명되어 있네요.

    • 123 108.***.4.205

      대부분의 랭귀지에서 스트링은 immutable
      string result = “aaa” 이렇게 해도 내부적으로 새로 생성되는 것이고
      result = “bbb” 로 바꾸는 문법을 써도 교체가 아니고 aaa는 사라지고 bbb 를 새로 생성함.
      다만 편하게 프로그래밍 하게 해주기 위해서 제공하는 편의사항임

    • A 73.***.59.2

      걍 a를 쓰면댐

    • 졸업자 205.***.210.104

      String 도 클래스이여서 원래는 new operator 을 써야하는데 자바에서 스트링을 많이 쓰다보니 new 없이도
      String a = “Hello”; 만 써도 되게 되어있어요

Cancel