본문 바로가기

Java23

[Java] 구동방식 정리 eclipse 나 inteli J 같은 통합 구동 프로그렘을 사용하는 것이 아니라 터미날 등에서 자바의 파일을 실행시키고자 할때 컴파일 명령어를 알아야 한다. 자바의 파일의 폴더에는 bin 폴더와 src 폴더가 있는데 src 폴더에는 소스파일이 들어있으며 bin 폴더에는 실행이 가능한 파일이 들어있다. 여기서 bin에 들어있다는 자바의 실행파일은 확장자가 .exe 로 되어있는 실행파일이 아니다. 실행 파일이 아니기 때문에 더블클릭해서 실행하는건 불가능하다. 자바에서 만든 파일은 byte code 라고 실행시킬 수 있는 직전의 파일 정도라고 생각하면 된다. 바로 실행할 수 없는 파일이기 때문에 별도로 실행파일을 실행해주는 엔진이 필요하고 이것이 바로 JVM (Java virtual machine)이다. 가.. 2023. 2. 11.
<Java> ArrayList 를 객체 지향 관점으로 이해하기. 💡 1. ArrayList 를 살펴보자. ArrayList는 java.util 이라는 Java 에서 제공해주는 API이다. 메소드로는 다음과 같이 있다. ➡add(); 배열에 값을 추가해 주는 메소드. ➡get(); 배열에 데이터를 조회해 값을 반환하는 메소드 ➡size(); 배열에 몇개의 데이터가 담겨있는지 크기를 반환하는 메소드 ArrayList 객체를 생성하면 Object 배열을 담을 공간과 메서드들이 함께 heap영역에 생긴다. ArrayList 안에 Book 이라는 사용자 정의 객체를 넣는다고 해보자. book 이라는 객체를 생성해 메모리에 만들어지고 해당 번지(주소)를 ArrayList 에 담아준다. get을 통해 책의 정보를 조회하고자 할때 빠져나오는 값이 Object 타입으로 나오기 때문에.. 2023. 2. 6.
[Java] package에 대해서(패키지) 💡 1. package( 패키지 ) 패키지 ➡ 기능이 비슷한 클래스를 모아서 관리하기 쉽게 하기 위해 / package 외부에서 접근하는 것을 막을 때 사용한다. 외부에서 package 클래스 내부에 접근하는 방법! ➡ class, full name 을 알아야 한다. ➡ 접근 권한을 알아야 한다.(public) ➡ import 구문을 이해해야 한다. 🔍 클래스의 이름은 2가지이다. ➡ 기본 이름 :OOClass ➡ 패키지를 포함한 이름(class full name): OO. OOO. OOClass 🔍 package 내부에 있는 클래스의 접근권한이 생략되면 기본적으로 default 접근권한을 가진다. default 접근권한 1️⃣ package 내부에 있는 클래스에게는 public 접근권한을 갖는다. 2️.. 2023. 2. 6.
[Java] Object 개념 활용하기! // 다형성 관련 개념 총정리 💡 Object 클래스 Object 클래스는 java 에서 만든 api 이다. 상속 관계에 있는 맨위(최상위)의 클래스가 Object 클래스 이다. Object 클래스를 잘 활용하면 프로그램을 유연하게 만들 수 있다. 모든 클래스의 부모클래스? Object로 모든 클래스 객체에 접근이 가능하다라는 말이다. 단! downcasting을 기본 전제하에 메소드에 접근해야한다. (Object 클래스에 자식 클래스의 메소드가 없으므로.) 클래스를 설계할 때 디폴트로 생략되어있는 3곳이 있다. 1. import java.lang.* 2. 생성자 메소드와 그 내부의 super(); 3. extends Object Object 클래스로 A의 객체를 만들었을 때 obj 자체에 display 라는 메소드가 없으므로 접근하.. 2023. 2. 6.
[Java] 인터페이스의 활용 예시!(feat.JDBC) 💡 1. 인터페이스(규약)와 JDBC의 관계. 인터페이스 자체는 기능이 없지만 자식(하위)클래스를 만나면 기능을 100% 발휘 할 수 있다. 예를 들어 리모콘 하나 있다고 쓸 용도가 없지만 리모컨이 티비를 만나면 용도를 100% 활용 할 수 있는 것처럼. 인터페이스가 가지고 있는 기능(추상메서드)를 자식(하위)클래스는 반드시 재정의 해야만 한다. 그렇기 때문에 하위 클래스의 동작방식을 모르더라도 부모 클래스의 추상메서드로 100% 실행이 가능하다. Java에서 데이터베이스(db)와 연동해서 프로그래밍을 하는 분야를 JDBC Programming 이라고 한다. Java에서 JDBC 프로그래밍을 하기 위해서는 벤더(공급업체)에서 제공하는 클래스를 이용해야 한다. Oracle 과 My-SQL는 각 벤더(공급업.. 2023. 2. 5.
[Java] 인터페이스 활용(100% 다형성 보장!) 💡 1. 인터페이스의 경우 100% 다형성을 보장한다. 인터페이스는 모든 메서드가 추상 메서드로 이루어 져 있다. 구현 메서드를 가지고 있을 수 없다. 반드시 무조건 100% 추상 메서드로 구성해야 한다. 그리고 interface 는 class 형태가 아니다! 그래서 다중상속이 가능하다. 인터페이스는 메서드의 경우는 abstract 키워들 써주고(생략이 가능하다.) 클래스의 경우에는 interface를 써준다. 자식 객체의 경우 extends를 써주는 것이 아닌 implement 를 써준다. 자식 클래스의 경우도 마찬가지로 메서드들은 abstract를 생략해 줘도 된다. ❗ 인터페이스는 구현된 메서드를 가지고 있을 수 없다. 반드시 구현부가 없는 추상 메서드만 가지고 있어야 한다. interface 클래.. 2023. 2. 4.