728x90 반응형 SMALL Java50 [JAVA] 자바 - 자료구조 자료구조란 무엇인가? (Data Structure) 프로그램에서 사용할 많은 데이터를 메모리 상에서 관리하는 여러 구현 방법들입니다. 효율적인 자료구조가 성능 좋은 알고리즘의 기반이 됩니다. 자료의 효율적인 관리는 프로그램의 수행 속도와 밀접한 관련이 있습니다. 여러 자료 구조 중에서 구현하려는 프로그램에 맞는 최적의 자료구조를 활용해야 하므로 자료구조에 대한 이해가 중요합니다. 자료구조의 종류 선형 자료구조 배열 (Array) 선형으로 자료를 관리, 정해진 크기의 메모리를 먼저 할당받아 사용하고, 자료의 물리적 위치와 논리적 위치가 같습니다. 몇 번째 항을 찾가아가는데에 걸리는 시간이 빠릅니다. 자료의 추가/삭제에 드는 비용이 많습니다. 하지만 위치를 알 경우 자료를 꺼내오거나 검색하는 데에 드는 비용.. 2022. 1. 4. [JAVA] 자바 - Class 클래스 사용하기 Class 클래스 자바의 모든 클래스와 인터페이스는 컴파일 후 class 파일이 생성됩니다. CLass 클래스는 컴파일된 class 파일을 로드하여 객체를 동적 로드하고, 정보를 가져오는 메서드가 제공됩니다. Class.forName("클래스 이름") 메서드로 클래스를 동적으로 로드합니다. Class c = Class.forName("java.lang.String"); 클래스 이름으로 직접 Class 클래스 가져오기 Class c = String.class; 생성된 인스턴스에서 Class 클래스 가져오기 String s = new String(); Class c = s.getClass(); // Object 메서드 동적 로딩 컴파일 시에 데이터 타입이 binding 되는 것이 아닌, 실행(runtime).. 2022. 1. 4. [JAVA] 자바 - String, StringBuilder, StringBuffer 클래스, text block String 클래스 String 선언하기 String str1 = new String("abc"); // 힙 메모리에 생성 String str2 = "abc"; // 상수 풀에 생성. 상수 풀에 abc라는 string이 있고 그거에 주소만 가리키는 것. // 즉 위의 두 개의 인스턴스는 다른 것이다. 힙 메모리에 인스턴스로 생성되는 경우와 상수 풀(constant pool)에 있는 주소를 참조하는 두 가지 방법이 있습니다. 힙 메모리는 생성될 때마다 다른 주소 값을 가지지만, 상수 풀의 문자열은 모두 같은 주소 값을 가집니다. String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1 == str2); .. 2021. 12. 14. [JAVA] 자바 - Object 클래스의 메서드 활용 equals() 메서드 두 인스턴스의 주소 값을 비교하여 true / false를 반환합니다. 재정의하여 두 인스턴스가 논리적으로 동일함의 여부를 구현합니다. 인스턴스가 다르더라도 논리적으로 동일한 경우 true를 반환하도록 재정의할 수 있습니다. (같은 학번, 같은 사번, 같은 아이디의 회원, ...) hashCode() 메서드 hashCode()는 인스턴스의 저장 주소를 반환합니다. 힙 메모리에 인스턴스가 저장되는 방식이 hash방식입니다. hash : 정보를 저장, 검색하는 자료구조입니다. 자료의 특정 값(키 값)에 대한 저장 위치를 반환해주는 hash함수를 사용합니다. public class Student { private int studentNum; private String studentNam.. 2021. 12. 14. [JAVA] 자바 - Object 클래스 - 모든 클래스의 최상위 클래스 java.lang 패키지 프로그래밍 시 import하지 않아도 자동으로 import 됩니다. import.java.lang.*; 많이 사용하는 기본 클래스들이 속한 패키지 String, Integer, System, ... 모든 클래스는 Object클래스를 상속받습니다. java.lang.Object클래스 모든 클래스의 최상위 클래스 모든 클래스는 Object에서 상속받고, Object 클래스의 메서드 중 일부는 재정의해서 사용할 수 있습니다. 컴파일러가 extends Object를 추가합니다. class Student => class Student extends Object toString() 메서드 객체의 정보를 String으로 바꾸어서 사용할 때 쓰입니다. String이나 Integer 클래스는 이.. 2021. 12. 14. [JAVA] 자바 - 여러 인터페이스 구현하기, 인터페이스의 상속 여러 인터페이스 구현 자바의 인터페이스는 구현 코드가 없으므로 하나의 클래스가 여러 인터페이스를 구현할 수 있습니다. (자바에서 클래스는 다중 상속이 가능하지 않습니다. - Diamond Problem) 디폴트 메서드가 중복되는 경우는 구현하는 클래스에서 재정의 하여야 합니다. 여러 인터페이스를 구현한 클래스는 인터페이스 타입으로 형 변환되는 경우 해당 인터페이스에 선언된 메서드만 사용 가능합니다. Buy.java public interface Buy { void buy(); default void order() { System.out.println("buy order"); } } Sell.java public interface Sell { void sell(); default void order() {.. 2021. 12. 14. [JAVA] 자바 - 인터페이스의 여러가지 요소 상수 모든 변수는 상수로 변환됩니다. (public static final) double PI = 3.14; int ERROR = -999999; 추상 메서드 모든 선언된 메서드는 추상 메서드 (public abstract) 디폴트 메서드 (자바 8 이후) 구현을 가지는 메서드, 인터페이스를 구현하는 클래스들에서 공통으로 사용할 수 있는 기본 메서드입니다. default 키워드를 사용합니다. default void description() { System.out.println("정수 계산기를 구현합니다."); myMethod(); } 구현하는 클래스에서 재정의 할 수 있습니다. @Override public void description() { System.out.println("CompleteCalc에.. 2021. 12. 3. [JAVA] 자바 - 인터페이스가하는 일과 다형성 구현 인터페이스가 하는 일 클래스나 프로그램이 제공하는 기능을 명시적으로 선언합니다. 일종의 클라이언트 코드와의 약속이며 클래스나 프로그램이 제공하는 명세입니다. 클라이언트 프로그램은 인터페이스에 선언된 메서드 명세만 보고 이를 구현한 클래스를 사용할 수 있습니다. 어떤 객체가 하나의 인터페이스 타입이라는 것은 그 인터페이스가 제공하는 모든 메서드를 구현했다는 의미입니다. 인터페이스를 구현한 다양한 객체를 사용합니다. (다형성) 예) JDBC 인터페이스 인터페이스를 활용한 다형성 구현 (dao 구현하기) 인터페이스와 다형성 하나의 인터페이스를 여러 객체가 구현하게 되면 클라이언트 프로그램은 인터페이스의 메서드를 활용하여 여러 객체의 구현을 사용할 수 있습니다. (다형성) 인터페이스를 활용한 dao구현하기 DB.. 2021. 12. 3. [JAVA] 자바 - 인터페이스(interface) 인터페이스란? 모든 메서드가 추상 메서드로 선언됩니다. public abstract 모든 변수는 상수로 선언됩니다. interface 인터페이스 이름 { public static final float pi = 3.14F; public void makeSomething(); } 자바 8부터 디폴트 메서드(default method)와 정적 메서드(static method) 기능의 제공으로 일부 구현 코드가 있습니다. 인터페이스 정의와 구현하기 선언된 메서드들은 당연히 구현코드가 없습니다. Calc.java public interface Calc { double PI = 3.14; int ERROR = -9999999; int add(int num1, int num2); int substract(int nu.. 2021. 12. 1. 이전 1 2 3 4 5 6 다음 728x90 반응형 LIST