코딩/TIL

TIL #210105

나동 2021. 1. 5. 23:44

📚 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시간씩 공부해야될거래요.. 휴.. 할 수 있다! 파이팅..!