(TIL) 20210702

2021. 7. 3. 00:17TIL(Today I learned)

반응형

📕Facts(한 것)


  • 프로그래머스 문제 풀기
  • Java 공부하기

📕Feeling(느낀 점)


 

Java로 프로그래머스 level1 문제를 거의 다 풀었다.(10문제 정도 남았는데, 내일 다 풀어야지...)

C++에서 되는 것이 Java에서 안되는 것이 많다.

 

예를 들어 String을 배열처럼 생각해서, String[0] 처럼 접근하는 방법이 불가능하다.

물론 String.charAt(0)과 같은 방법을 쓸 수 있지만, C++에서는 string.at(0)과 string[0] 모두 가능한 반면,

Java는 하나 뿐이라 불편하다.

 

문자열 직접 비교가 불가능하다.

이 말이 무엇이냐

public class Main{

	String s = "Hello, world";
    String str = "Hello, world";
    
    // 기대한 값 = "equals"
    // 출력된 값 = "Not eqauls"
   	if(s == str) {
    	System.out.println("equals");
    } else{
    	System.out.prinln("Not equals");
    }
    
  
    
}

 

위와 같은 방식으로 문자열을 비교하면, 오류가 발생한다.(정확히는 비교가 안 된다.)

그 이유는 비교 방식의 차이에 있다.

 

==을 통해 비교하면, java 에서는 주소값을 비교하기 때문에, 두 변수의 주소값이 다르므로 Not equals를 출력한다.

하지만 str.equals(s) 로 비교하면 값을 문자열 값 자체를 비교하기 때문에 올바르게 출력된다.

 

자바 역시 C처럼 단순 배열에 값을 추가할 수 없는데, 

C++이 이를 vector로 극복한 것 처럼, Java는 ArrayList로 극복했다.

(다만 아쉬운 것은 프로그래머스 배열 문제들이 전부 array로 리턴을 해야해서, 그 과정이 귀찮다.)

 

 

📕Affirmation(자기 선언)


  • 인생은 그리디처럼!

📕여담


 

반응형

'TIL(Today I learned)' 카테고리의 다른 글

(TIL) 20210704 + 네이버 웹툰 시험 후기  (0) 2021.07.04
(TIL) 20210703  (0) 2021.07.03
(TIL) 20210701  (0) 2021.07.01
(TIL) 20210630  (0) 2021.06.30
(TIL) 20210629  (0) 2021.06.29