📚 TIL
자바 객체 지향 프로그래밍
🧶 문제 해결 능력 기르기
콘솔 입력 받기
import java.util.Scanner;
...
Scanner scanner = new Scanner(System.in);
int age = scanner.nextInt();
String name = scanner.next();
🧶 자바, 더 정확하게!
기본형과 참조형
기본형(Primitive Type) | 참조형(Reference Type) |
변수가 값자체를 보관 | 변수는 값이 보관되어 있는 영역을 가리킴 |
int, boolean, char, double 등 | Person, String, int[] 등 |
null
'비어있음'을 표현하는 값
참조형 변수만 가질 수 있음
null 보관 변수 메소드 호출 → NullPointerException 오류
숏 서킷 연산(Short-Circuit Evaluation)
식의 결과값이 이미 결정된 경우 미리 멈추는 것
boolean newBoolean = m1() && m2(); 에서
m1()이 false를 리턴하면 m2()의 결과와 상관 없이 newBoolean은 false가 된다.
이 때 자바는 효율성을 위해서 m2()를 실행하지 않는다.
boolean newBoolean = m1() || m2(); 에서
m1()이 true를 리턴하면 m2()를 실행하지 않고 newBoolean은 true가 된다.
final
변수를 정의할 때 final을 써주면, 이 변수는 '상수'가 되어 다시 바꿀 수 없다.
기본형 | 참조형 |
final double pi = 3.14; pi = 2.54; 이 코드는 오류가 난다. |
public class Person { public final String name; ... name을 바꿀 수 없다. |
try-catch 예외 처리(Exception Handling)
try {
.... // 오류를 발생시킬 수 있는 코드
} catch (Exception e) {
... // 오류가 발생한 경우 해결
}
클래스 변수, 메소드
정의 : static 키워드
클래스 메소드 예시 : Math 클래스, main 메소드
인스턴스와 비교하여 공부하기!
🧶 자바, 더 간편하게!
String 클래스
toUpperCase : 모든 글자를 대문자로
toLowerCase : 모든 글자를 소문자로
equals : 문자열이 같은지 비교
Math 클래스
abs : 절댓값
max : 최댓값
min : 최솟값
Random 클래스
인스턴스를 생성해서 사용
import java.util.Random;
...
Random rand = new Random();
System.out.println(rand.nextInt(10)); // 0 이상 9 이하의 랜덤한 값
Wrapper 클래스
기본 자료형을 객체 형식으로 감싸는 역할
기본형을 참조형처럼 다루어야 할때 사용
인스턴스는 생성자로 생성할 수도 있고 리터럴로 생성할 수도 있음
Integer i = new Integer(123);
Integer i = 123;
ArrayList
배열의 단점 : 배열의 크기를 변경할 수 없음, 채워넣지 않은 값이 있으면 null이 출력됨
ArrayList<String> nameList = new ArrayList<>();
nameList.add("고구마");
nameList.add("삼겹살");
nameList.add("햄버거");
nameList.remove(2);
System.out.println(nameList.size());
System.out.println(nameList);
System.out.println(nameList.get(0));
2
{고구마, 삼겹살}
고구마
HashMap
key와 value를 같이 저장
HashMap<String, Food> foodName = new HashMap<>();
foodName.put("고구마", new Food("고구마"));
foodName.put("삼겹살", new Food("삼겹살"));
foodName.put("햄버거", new Food("햄버거"));
Food sweetpotato = foodName.get("고구마"); // 값 꺼내기
foodName.put("햄버거", new Food("새우버거")); // 원소 덮어쓰기
for (String key : fodName.keySet()) {
System.out.println(foodName.get(key));
} // 반복문을 통해 HashMap 탐색하기
고구마
삼겹살
새우버거
HashMap의 동작 원리 추가 공부 필요
😁 오늘 한 일
🎻 바이올린 학원 가서 레슨 받기
- 한 달 간 학원이 휴원했다가 이번 주부터 다시 열었어요!
- 오랜만에 하니까 까먹었는데 재밌어요 ㅋㅋ
- 이제 3개월째 배우는데 이제 한 곡에 현 두 개를 써요! 아직 초보예요 ㅎㅎ
🍲 샤브샤브먹기
- 서울까지 왔으니 저의 최애 메뉴인 샤브샤브를 먹었어요 ㅎㅎ
- 여기는 샤브보트예요! 1인 메뉴로 샐러드,육수,고기,야채,면이 나와요
- 저는 커리 육수가 제일 맛있더라고요!! 소스도 세 종류라 질리지 않고 먹을 수 있어서 좋아요!!
📁 모니터 받침대로 책상 정리하기
- 집가는 길에 모니터 받침대를 샀어요! 키보드를 아래 넣고 책상에서 노트북도 쓰려고요 ㅎㅎ
- 왼쪽이 원래 모습이고 오른쪽이 정리한 모습이에요! 오른쪽 모니터는 아직 책으로 받쳐놨어요 ㅎㅎ
- 고등학생때부터 쓰던 10년된 마우스패드도 바꿨어요 ㅋㅋ
🔑 42서울 테스트하기
- 테스트가 1월 7일 시작인줄 알았는데 테스트는 미리 응시해야 되더라고요!
- 빨리 봐야겠다해서 준비없이 그냥 봤는데 어렵던데요..?
- 좀 풀다보니 막혀서 2시간 홀랑 보냈어요.. 다들 어떻게 그렇게 잘 풀었는지
- 알고리즘 공부를 해둘걸 그랬어요 바로 광탈할 점수 에라이~~
🍁 메이플하기
- 예전에 시간 많을 땐 코인도 모으고 보스도 잡았는데!
- 오늘 한 것 우르스, 데일리 기프트 끝 ㅠ-ㅠ 하루가 너무 짧아요
📕 코드잇 공부하기
- 오늘은 이론 내용이 어려워서 여러번 반복해서 봤어요
- 원래 블로그에 내용을 이렇게까지 안적는데 이번엔 자세히 적었어요
- 나중에도 또 복습해야겠어요!
📺 드라마 펜트하우스 보기
- 오늘 드디어 펜트하우스 최종회가 방영됐어요!!
- 허.. 시즌1이 끝났는데 제 기준 너무 마지막화같지 않은 결말....
- 이거 시즌2 보라는거죠? 근데 보고나면 머리가 아파요 ㄷㄷ
🎫 코드숨 신청하기
- 1월 18일부터 시작하는 코드숨 리액트 3기에 등록했어요!
- 스프링이 배우고 싶었는데 지금 수준으론 따라가기 어려울거라하셔서 리액트를 신청했어요
- 오늘 자바 강의 들으면서도 아.. 자바 이래서 어렵다는거구나 했어요 ㅎ..ㅠ
- 목표는 풀스택이니 최대한 열심히 많이 꾸준히 배우려고요!!
- 자바 기초 수업 끝나면 자바스크립트 공부 더 하고 이제 코드숨에서 열심히 공부할겁니다!
- 하루에 10시간씩 공부해야될거래요.. 휴.. 할 수 있다! 파이팅..!
'코딩 > TIL' 카테고리의 다른 글
TIL #210107 (0) | 2021.01.07 |
---|---|
TIL #210106 (0) | 2021.01.06 |
TIL #210104 (0) | 2021.01.04 |
TIL #210103 (0) | 2021.01.03 |
TIL #210102 (0) | 2021.01.02 |