Burninghering's Blog
article thumbnail
CH01.객체지향
Spring 2022. 2. 18. 02:18

터미널에서 GUI로 넘어오면서 점차 프로그래밍이 복잡해지기 시작 함수를 활용하다 새로운 시각으로 프로그래밍 시작! 객체지향 현실에 존재하는 사물을 있는 그대로 모델링하여, 이들의 행위와 속성을 정의, 절차적 X, 객체가 중심이 되어 실제 사물이 동작하는 방식으로 설계 이는 사물에 대해서 "객체" 해당 사물이 하는 행위 "메소드" 해당 사물이 가지는 속성 "변수" 장점 자바는 가비지 콜렉터로 자동으로 사용하지 않고 있는 메모리를 해제 JVM만 있으면 어떤 운영체제에서도 독립적으로 실행 가능하도록 설계 -> 여러 플랫폼에서 호환성을 제공하는 장점 객체의 3가지 요소 상태 유지(객체의 상태) 객체는 상태 정보 저장/유지되어야 하며 이러한 속성은 변수로 정의되어져야 함 속성값 바뀌면 객체 상태가 변경되어야 한다..

5-3.연결 리스트 (LinkedList)
JAVA 2022. 2. 16. 03:31

LinkedList 특징 동일한 데이터 타입을 순서에 따라 관리하는 자료 구조 자료를 저장하는 노드에는 자료와 다음 요소를 가리키는 링크(포인터)가 있음 자료가 추가 될때 노드 만큼의 메모리를 할당 받고 이전 노드의 링크로 연결함 (정해진 크기가 없음) 연결 리스트의 i 번째 요소를 찾는게 걸리는 시간은 요소의 개수에 비례 : O(n) jdk 클래스 : LinkedList

5-2.배열(Array)
JAVA 2022. 2. 6. 02:46

Array의 특징 동일한 데이터 타입을 순서에 따라 관리하는 자료 구조 정해진 크기가 있음 요소의 추가와 제거시 다른 요소들의 이동이 필요함 배열의 i 번째 요소를 찾는 인덱스 연산이 빠름 jdk 클래스 : ArrayList, Vector MyArray.java package ch02; public class MyArray { int[] intArr; //int array int count; //개수 public int ARRAY_SIZE; public static final int ERROR_NUM = -999999999; public MyArray() { count = 0; ARRAY_SIZE = 10; //배열 사이즈 10 intArr = new int[ARRAY_SIZE]; //사이즈 10으로 시..

article thumbnail
5-1.자료구조
JAVA 2022. 2. 4. 04:39

1. 자료구조란? (Data Structure) 프로그램에서 사용할 많은 데이타를 메모리 상에서 관리하는 여러 구현방법들 효율적인 자료구조가 성능 좋은 알고리즘의 기반이 됨 자료의 효율적인 관리는 프로그램의 수행속도와 밀접한 관련이 있음 여러 자료 구조 중에서 구현하려는 프로그램에 맞는 최적의 자료구조를 활용해야 하므로 자료구조에 대한 이해가 중요함 2. 자료구조의 종류 1) 한 줄로 자료를 관리하기 (선형 자료구조 - 앞과 뒤가 1:1관계) - 배열 (Array) : 선형으로 자료를 관리, 정해진 크기의 메모리를 먼저 할당받아 사용한다. 자료의 물리적 위치와 논리적 위치가 같으므로 인덱싱 속도가 빠르다. 자료 추가할 때 -> O(n) 인덱싱 -> 시간이 짧게 걸린다 - 연결 리스트 (LinkedList..

article thumbnail
4-3.String, StringBuilder, StringBuffer 클래스, text block
JAVA 2022. 1. 28. 00:07

1. String 클래스 String 선언하기(사용하는 방법) String str1 = new String("abc"); //1.첫 번째 방법 : 힙 메모리에 잡힌다 String str2 = "abc"; //2.두 번째 방법 : 상수 풀에 잡히며, //abc라는 string이 있고, 그 곳의 주소만 가리킨다 힙 메모리에 인스턴스로 생성되는 경우와 상수 풀(constant pool)에 있는 주소를 참조하는 두 가지 방법 힙 메모리는 생성될때마다 다른 주소 값을 가지지만, 상수 풀의 문자열은 모두 같은 주소 값을 가짐 public class StringTest { public static void main(String[] args) { String str1 = new String("abc"); //힙에 각각..

article thumbnail
4-2.Object 클래스의 다른 메서드들 활용하기
JAVA 2022. 1. 26. 15:25

인스턴스가 생성되면, 동적(힙)메모리에 메모리 공간이 생기고 인스턴스의 이름은 그 메모리를 가리키는 참조변수가 된다. 만약 두 개의 인스턴스의 주소값을 찍었을 때, 같은 값이 나온다면 같은 객체인 것이다. 1. equals() 메서드 -> 저장 주소 비교 두 인스턴스의 주소 값(hash code,물리적인 저장 주소)을 비교하여 true/false를 반환 우리가 재정의 하여 두 인스턴스가 논리적으로 동일함의 여부를 구현함(hashCode()도 오버라이딩해줘야함) 인스턴스가 물리적으로(메모리상에서의 주소) 다르더라도, 논리적으로(인스턴스의 값) 동일한 경우 true를 반환하도록 재정의 할 수 있음 (같은 학번, 같은 사번, 같은 아이디의 회원.... 을 유일한 키로 지정하여 hashCode값이 학번/사번/아..

article thumbnail
4-1.Object 클래스
JAVA 2022. 1. 26. 13:20

Object 클래스 - 모든 클래스의 최상위 클래스 1. java.lang 패키지안에 들어있음 프로그래밍시 import 하지 않아도 자동으로 imort됨 import.java.lang.*; 많이 사용하는 기본 클래스들이 속한 패키지 String, Integer, System... 2. 모든 클래스는 Object 클래스를 상속 받는다 java.lang.Object 클래스 모든 클래스의 최상위 클래스는 모든 클래스는 Object에서 상속받고, Object 클래스의 메서드 중 일부는 재정의해서 사용할 수 있음 컴파일러가 extends Object를 추가함 class Student => class Student extends Object 모든 클래스는 Object 클래스를 상속받는다. 그렇기 때문에 모든 클래스..

article thumbnail
3-15.객체 지향 핵심 - 여러 인터페이스 구현하기, 인터페이스의 상속
JAVA 2022. 1. 24. 22:08

여러 인터페이스 구현하기, 인터페이스의 상속 1. 여러 인터페이스 구현 자바의 인터페이스는 구현 코드가 없으므로 하나의 클래스가 여러 인터페이스는 구현 할 수 있음 디폴트 메서드가 중복 되는 경우는 구현 하는 클래스에서 재정의 하여야 함 (인스턴스가 있어야 사용 가능해서) 여러 인터페이스를 구현한 클래스는 인터페이스 타입으로 형 변환 되는 경우, 해당 인터페이스에 선언된 메서드만 사용 가능 함 * Diamond Problem 자바의 다중 상속이 안되는 이유는 diamond problem이다. 자바는 이러한 모호성을 없애버리고, 단일 상속만 가능하도록 하게 만들었다. 하지만 인터페이스는 구현 코드가 없기 때문에 다중 상속이 가능하다. Buy.java package ch15; public interface ..