본문 바로가기

전체 글

(203)
19.12.19) Java - Calendar 프로젝트 ArrayList 자바에서 제공하는 기본 배열과는 차이가 있다. 크기를 지정할 필요가 없고, add() 통해서 추가하면 동적으로 늘어난다. 선언 방법 ArrayList arrayList = new ArrayList(); arrayList.add(1); // push 기능 arrayList.add(2); arrayList.add(1, 10); // 지정 인덱스에 추가 가능. 한 칸씩 밀린다. for (int i : arrayList) { System.out.println(i) // 1, 10, 2 } HashMap Hash라는 이름이 들어간 자료형은 거의 key와 value쌍으로 이루어져 있다. 파이썬의 dict와 비슷하다. 선언 방법 HashMap map= new HashMap(); map.put("ju..
19.12.19) Java - 변수와 배열 목차 배열이란? 2차원 배열은 아파트다. 2차원 배열 생성 및 출력 핵심 배열은 여러 개의 변수를 쉽게 이동시키기 위한 자료형이다 배열이란? 만약 정수 5개를 사용해야 한다면 int 변수를 5개를 만들어야 한다. 그런데 이 변수들을 이동시켜야 하는 상황이 발생할 수 있다. 예) 메서드에 인자로 들어갈 때 그럼 이 5개 변수를 하나 하나씩 옮겨야 한다. 이런 불편함을 줄이기 위해 배열을 쓸 수 있다. 배열은 여러 개의 기억공간이 하나로 합쳐진 구조이다. 같은 자료형만 사용할 수 있다. 아까 말한 5개의 정수도 하나의 배열에 넣어두면 이 배열 하나만 들고 다니면 된다.장바구니에 들어간 과일들처럼 여러 개의 변수가 모여있다고 하니 객체랑 비슷하지 않은가? 전에 객체를 덩어리라고 표현했다. 그럼 객체처럼 배열을..
19.12.19) Java - 기본 자료형과 객체 자료형 목차 기본 자료형과 객체 자료형 객체는 덩어리다 객체는 어떻게 할당하지? 객체의 다른 이름 핵심 class는 새로운 자료형을 만드는(모델링하는) 도구이다 기본 자료형과 객체 자료형 자바에서 제공하는 기본 자료형만 잘 쓰면 되지. 왜 객체 자료형이 필요할까? 그 이유는 기본 자료형만으로는 프로그램을 제대로 만들 수 없기 때문이다. 간단 예를 들면, 정수 1개를 담는 자료형을 선언하세요! 책 1개를 담는 자료형을 선언하세요! 정수는 담을 수 있는데 책은 어떻게 담지? 정수는 int라는 자료형이 있어서 메모리의 크기와 종류를 정할 수 있다. 하지만 책이라는 자료형은 없기 때문에 설계해야 한다. 이때 필요한 도구가 Class이다. 객체란 덩어리다. 책을 담기 위해선 'Book'이라는 자료형이 필요하다. 하지만 ..
19.12.19) Java - 변수와 메서드 목차 메서드 매개변수 전달 기법(parameter passing) 핵심 메서드는 매개변수를 받아 동작한 후 결괏값을 변수처럼 가지고 있는다 메서드 변수는 하나의 데이터를 담고 있다. 2개 이상의 데이터를 담을 땐 그 데이터의 주소를 담지, 데이터를 담는 것이 아니다. 메서드도 비슷한 맥락이다. 인자 값을 받아서 기능을 수행한다. 그다음 결과 값을 메서드 이름에 저장한다. public int sum(int a, int b) { return a + b; } int c = sum(3+5); // 3 + 5의 결과값이 sum에 담기고 그 값이 c에 할당된다. 매개변수 전달 기법(parameter passing) 메서드를 호출할 때 메서드의 선언부로 매개변수를 전달하는 방법은 크게 2가지가 있다. 총 5가지 정도..
19.12.18) Java - Calendar 프로젝트 삼항 연산자(if) if문을 간결하게 작성할 수 있다. int count = 7; int delim = (count > 6) ? 0 : count; // delim == 0 Double to int int x = (int)Math.floor(year / 4);달력 계산 알고리즘 생각 외로 달력이라는 녀석이 쉽지는 않다는 것을 깨달은 오늘.. 하지만 개념만 이해한다면 충분히 구현할 수 있었다. 피하지 않는다면 시간이 걸리더라도 해낼 수 있다. 개념 - 1년 1월 1일부터 입력받은 현재 년도와 날짜까지 전체 날짜의 수를 구한다. - 윤년 구하는 식 : (year / 4) - (year / 100) + (year / 400) - 윤년일 때는 1일을 추가해야 한다 기준 날짜 (1970.1.1)를 정한 뒤, 기준..
19.12.18) Java - 변수, 자료형, 선언 목차 변수 자료형 선언 변수 메모리 속 기억공간이라 한다. 컴퓨터에게 1+1 연산을 시키려면 어떻게 해야 할까? 먼저 알려줘야 한다. 컴퓨터에게 알려주려면 메모리에 1+1을 넣어야 한다. 기억공간이라 했으니 공간의 특징이 있다. 크기가 있다 들어가는 데이터의 종류가 있다. 자료형(Data type) 기억 공간의 크기와 들어가는 데이터의 종류를 결정하는 자료형이다. 자바에는 int, char, String, boolean 등 자료형이 있다. 자료형과 그 기억공간의 이름을 붙이면 기억공간이 만들어진다. 아파트도 평 수가 나눠져있는 것처럼 자료형의 크기 int : 4byte, 32bit, 2^32개 정수 표현 가능. 42억 개 long : 8byte, 64bit, 매우 큼 float : 4byte, 32bit..
19.12.17) Java - 구동 방식 목차 byte code JVM 자바의 불편함 byte code, 중간어, .class 인텔리J에서 코드를 실행하면 먼저 java파일은 class파일로 컴파일된다. 이때 컴파일을 1차 컴파일이라 하자. 이 때 자바로 작성된 코드는 byte code로 바뀐다. 하지만 완벽한 기계어는 아니기 때문에 중간어라고도 한다고 함. 왜? 그럼 왜? 중간어로 한번 바꿀까? 오히려 번거로울 텐데,, 그 이유는 어떤 OS에서 프로그램이 작동될지 모르기 때문이다. 어떤 OS든 자바 프로그램이 운영될 수 있게 1차적으로 byte code로 준비시킨다고 이해하면 된다. 예시) 어디에서나 먹을 수 있는 즉석조리식품 느낌. 바로 먹을 수 있는 요리라 할 순 없지만 약간의 조리만 필요한 상태 JVM(Java Virtual Machin..
19.12.17) Java - Calendar 프로젝트2 목차 static %d String.equals(), '==' 차이 Static 정확한 개념은 아니지만 하나의 클래스에서 모두 사용할 수 있게 선언하는 도구? 라 느껴진다. 아래 개념 수정 정확한 개념) static 키워드가 있으면 클래스가 실행될 때 JVM이 가장 먼저 메모리에 저장한다. 그렇기 때문에 따로 객체 생성을 하지 않더라도 언제든지 static를 호출할 수 있다. -2019.12.25 수정- static을 붙이면 따로 참조 안 해도 언제든 사용해!라는 느낌. %d %3d는 입력받는 정수를 세 자릿수로 만들어준다. for(int i=1; i