210525~220812

#20 오늘 한것들 210613

hansssi 2021. 6. 13. 23:35

1. 조건문

흠... 난 switch문을 잘 안쓰는데, if문이 더 편해서이다(?)

파이썬에는 switch가 없기도 하고...... 언제 어떤걸 쓰는게 나은지 모르겠다고 할까.. 그래서 일단 편한 if문을 쓰고 본다. 그리고 나중에 해설에는 switch썼구나... 하고

 

어느정도는 연습해보는게 좋을 것 같다. 

 

2. null 

자바에서 null은 참조형 변수만 가질 수 있는 값이라 한다. null을 보관하고 있는 변수의 메소드를 호출하려 하면 전에 봤던 NullPointerException 오류가 난다. 이를 방지하기 위해서는 호출하기 전에 null인지 먼저 확인해주면 된다고...

 

3. 숏서킷 연산

boolean newBoolean = m1() && m2() && m3();

이라는 식이 있을 때, newBoolean이 ture가 되려면 m1(), m2(), m3이 모두 true가 되야 한다. 반대로 m1()이 false라면 m2(), m3()의 결과와 상관 없이 newBoolean은 false라는 것이다. 

자바는 효율성을 위해 m1()이 false라면 m2()와 m3()를 실행하지 않고, 이처럼 식의 결과값이 이미 결정된 경우 미리 멈추는 것을 숏서킷 연산이라고 한다. 

 

4. 기본형 vs 참조형 퀴즈

기본형 중 int의 기본값은 0, 참조형의 기본값은 null 

a[0] = 0;
Person person = new Person();
people[0] = person;
person.age = a[0];
a[0] = 26;
System.out.println(person.age);

위와 같은 코드가 있을 때, 출력되는 값은 마지막에 a[0]에 들어간 26이 아니라 0이다. 그 이유는 person.age는 int형, 즉 기본형이기 때문에 a[0]의 값이 복사되었기 때문이다. 복사된 후에 a[0]의 값이 바뀌어도 person.age에 영향을 미치지 않는다. 

 

5. null 퀴즈

String s가 null일 때, s.isEmpty()를 쓰면 오류. 

+)보통 is로 시작하는 메소드는 불린값 반환