목록분류 전체보기 (38)
개발자 꼬부기의 성장일기
입력받은 배열의 첫 요소와 마지막 요소를 키와 값으로 하는 HashMap을 리턴하라는 HashMap의 간단한 예제였다. HashMap을 지난주에 배우고 오늘 다시 상기 시켜보니 어렴풋이 정의하고 put함수까지는.. 쓸줄 알겠음 근데 문법이 약간 틀린건지 length를 쓰는게 헷갈리는 건지 에러나서 다시 찾아봄 HashMap 선언문을 이용해서 다양하게 활용할 수 있음. //HashMap생성 가장 기본 선언법 HashMap hashmap1 = new HashMap(); //new에서 타입 파라미터 생략가능 HashMap hashmap2 = new HashMap(); //hashmap1의 모든 값을 가진 HashMap생성 HashMap hashmap3 = new HashMap(hashmap1); //초기 용량..
KPT 회고 Section 1은 독학도 했었지만 추상화 부터 좀 힘들었다. 단순한 개념만 배울때는 쉬웠는데 객체지향 기법으로 프로그래밍하기엔 아직 실력이... 모자라는 걸보며 그동안 개발자라면서 뭐했나 싶구만... 어제 배운 뒷부분은 아직 블로깅을 못했다. 블로깅후에도 계속 다시 봐야하는데 귀차니즘이... 그리고 공부는 역시 어릴때 해야.. 하는...ㅜㅜ 신입때처럼 머리가 말랑말랑해지지 않네 그래도 꾸준히가 중요하다는 생각으로 고고 Keep 작성을 위한 질문 목표를 달성하기 위해 시도했던 것 중 가장 효과적이었던 노력은 무엇인가요? 뭐니뭐니해도 매일 블로깅하기 목표를 달성하기 위해 했던 모든 노력 중 반드시 유지해야 할 것은 무엇인가요? 계속 블로깅하기 Problem 작성을 위한 질문 목표를 달성하기 위..

Thread 프로세스는 실행 중인 애플리케이션을 의미한다. 데이터, 컴퓨터 자원, 그리고 스레드로 구성. 스레드는 데이터와 애플리케이션이 확보한 자원을 활용하여 소스 코드를 실행. 메인스레드 자바 어플리케이션을 실행하면 가장 먼저 실행되는 main 메서드, 메인 스레드가 메인 메서드를 실행시켜줍니다. 메인 메서드의 코드를 처음부터 끝까지 차례대로 실행시키며, 코드의 끝을 만나거나 return문을 만나면 실행을 종료한다. 멀티스레드 하나의 프로세스는 여러 개의 스레드를 가질 수 있다. 여러개의 스레드를 가진다는 것은 동시에 작업을 수행할 수 있음을 의미한다. 스마트폰에서 메신저 사용시 사진을 업로드하면서 메시지 주고 받을때 멀티 스레드를 사용한 예이다. 작업스레드 모든 자바 코드는 클래스 안에 작성된다. ..
코플릿 문제풀기 (컬렉션) 컬렉션을 로직에 활용하면 프로그램이 정말 쉬울것 같다. ArrayList * Arrays.asList(arr) - Arrays.asList(배열) - 일반 배열을 List로 변환한다. * ArrayList.isEmpty() : 비어있는지 확인한다. * ArrayList 수정은 arr.set(index, value) * remove()는 삭제한 객체를 반환한다. * subList(from, to) : from~ to 전 까지 빼는 것 arrayList = {5,6,7,8} arrayList.sbuList(1,3) => 6, 7 * 배열복사 Array 클래스 함수 - Arrays.copyOf(원본배열, 복사할 길이) - Arrays.copyOfRange(원본배열, 복사할 시작인덱스..

컬렉션 열거형 제너릭 예외처리 컬렉션 프레임워크 2일 동안 OOP개념 실습을 마치고 컬렉션 파트로 들어왔다. 어렴풋이 사용만 해봤던 터라 개념강의 들으니 좀 더 알것 같다. 열거형(Enum) : 서로 연관된 상수들의 집합 상수 명이 중복되는 경우가 발생한다. 클래스를 구분하면 중복 문제는 해결 가능하지만 타입 안정성이라는 새로운 문제가 생긴다. => 객체를 생성해 주면, 상수 명 중복과 타입 안정성 문제를 모두 해결할 수 있다. 더 간결하고 가독성이 좋은 코드를 작성가능. enum 열거형이름 { 상수명1, 상수명2, 상수명3, ...} 상수는 대소문자로 모두 작성이 가능하지만, 관례적으로 대문자로 작성 각각의 상수들에는 따로 값을 지정해주지 않아도 자동적으로 0부터 시작하는 정수값이 할당됨. enum S..
다형성 & 추상화 다형성과 추상화 공부하니 더 머릿속이 복잡해졌다. 이걸 이용해서 어떻게 프로그래밍하지...내일 실습도 어떻게 하지... 걱정이 앞선다. 다형성 : 하나의 객체가 여러 가지 형태를 가질 수 있는 성질 - 한 타입의 참조 변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든 것. - 오버로딩과 오버라이딩 개념을 두가지 다 포함하고 있다. - 동적 바인딩 혹은 Late Binding이라고도 한다. - 상위 클래스 타입의 참조 변수로 하위 클래스의 객체를 참조하는 것 class Friend { public void friendInfo() { System.out.println("나는 당신의 친구입니다."); } } class BoyFriend extends Friend { public void..
상속 & 캡슐화 이론으로 알지만 이해하고 써본적이 없는.. 상속 캡슐화 getter 와 setter 왜 사용해야하는지 몰랐는데 이제야 알게됨.. 상속 기존 클래스를 재활용하여 새로운 클래스를 만드는 요소. 앞에서 배웠던 것 처럼 메인 클래스의 멤버를 내부클래스가 사용할 수 있는것과 비슷하다. 상속은 하위클래스가 자식, 상위클래스가 부모로 자식은 부모의 것을 물려받는 상속의 개념으로 볼 수 있다. 자식은 부모의 모든 것을 쓸 수 있고 거기서 더해서 자신만의 것을 가질 수 있다. 키워드는 extends 를 사용함으로써 확장의 의미가 있다. 상속을 사용하는 이유 1) 코드를 재사용, 중복 제거 2) 다형적 표현이 가능 예제) class Person { String name; int age; } class Pr..

회고 객체지향 OOP 개념.. 이론으로 배웠던 것보다 실습해보면서 간단한 프로그램을 만들어보니.... 쉽지 않았다. 여태까지 개발하면서는 거의 순차적으로 개발을 해왔던것 같아서 늘 부족하다고 생각했던것 같다. 자바 개발자는 생각보다 쉽지 않은 길일것 같다. 생성자와 내부클래스 생성자 생성자는 클래스의 구성요소로서 인스턴스가 생성될때 호출되는 메서드이다. new라는 연산자를 통해 생성자 함수가 호출된다. 생성자 함수는 클래스명과 같아야한다. 생성자는 리턴 타입이 없다. void 키워드도 사용하지 않는다. class Constructor { Constructor() { // (1) 생성자 오버로딩 System.out.println("1번 생성자"); } Constructor(String str) { // (..

클래스와 객체 클래스 클래스는 하나의 틀, 붕어빵 틀과 같다. 클래스라는 틀을 이용해 인스턴스가 생겨났다가 사라졌다 한다. 클래스를 통해 생성된 객체를 인스턴스라고 한다. 각 객체를 만드는 과정을 인스턴스화 라고 지칭한다. 객체는 모든 인스턴스를 포괄하는 넓은 의미 인스턴스는 해당 객체가 어떤 클래스로부터 생성된 것인지를 강조하며 두가지다 의미를 혼용해서 쓰기도한다. 클래스를 한번 정의해 놓으면, 매번 객체를 생성할 때마다 어떻게 객체를 만들어야 할지 고민하지 않고, 클래스로부터 객체를 생성해서 사용하기만하면 된다. 클래스의 구성요소와 기본 문법 public class ExampleClass { int x = 10; // (1)필드 void printX() {...} // (2)메서드 ExampleCla..