
📌 230810 TIL : HashSet, TreeSet, Comparable와 Comparator 차이 1. HashSet Set 인터페이스를 구현한 클래스 멤버의 중복 여부를 위해, 인스턴스의 동일 여부를 확인해야함. 즉 equals, hashcode 재정의가 필수! Member. class public class Member { private int memberId; //회원 아이디 private String memberName; //회원 이름 public Member(int memberId, String memberName){ //생성자 this.memberId = memberId; this.memberName = memberName; } /* memberId가 같으면 같은 객체라고 판단하도록 설..

📌 230808 TIL : 제네릭 프로그래밍, 제네릭 메소드 제네릭 프로그래밍이란? 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 방법을 제네릭이라고 한다. 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있는 기술에 중점을 두어 재사용성을 높일 수 있는 프로그래밍 방식이다. 를 자료형 매개변수 대신 작성한다. 이 클래스를 사용하는 시점에 실제 사용할 자료형을 지정한다. static 변수는 사용할 수 없는데, 이유는 자료형이 결정되기 전에 메모리에 적재될 수 없는 논리적이 이유 때문이다. T: type, E : element, K : key, V: value : 여러 알파벳을 의미에 따라 사용이 가능하다. 제네릭을 사용하는 이유 JDK 1.5 이전에는 여러 타입을 ..

📌 230807 TIL : Class 클래스 1. Class 클래스 클래스와 인스턴스의 메타 데이터를 얻을 수 있다. 메타데이터란, 클래스의 이름, 생성자, 필드, 메소드 정보를 포함한다. 로컬 메모리에 객체 없는 경우, 원격 프로그래밍, 객체의 타입을 알 수 없는 경우에 사용한다. java.lang.reflect 패키지에 있는 클래스를 활용하여 프로그래밍 일반적으로 자료형을 알고 있는 경우에는 사용하지 않는다. 보통 클래스 이름으로 얻는 방법과 만들어놓은 객체로부터 얻는 방법이 있다. 객체를 new 키워드를 쓰지 않고 newInstance() 를 이용하여 생성이 가능하다. 2. 클래스 이름으로 클래스 정보 얻는 방법 컴파일 된 class 파일을 로드하여 객체를 동적 로드하고, 정보를 가져오는 메소드가 ..

📌 230804 TIL : String, StringBuilder, StringBuffer, text block String 메소드 String str1 = new String("abc"); 힙에 인스턴스를 생성한다. String str2 = "abc" 상수풀에 있는 값의 주소값을 참조한다. 한번 생성된 String은 내부적으로 final로 선언되어있기 때문에 불변이다. 그렇기 때문에 concat 메소드를 사용하여 문자열을 만드는 방법은 메모리 낭비가 될 수 있다. StringBuilder, StringBuffer 내부적으로 가변적인 char[]를 멤버변수로 가진다. 그래서 문자열을 여러번 연결 혹은 변경시 사용하면 유용하다. 새로운 인스턴스를 생성하지 않고 char[]을 변경한다. 단, StringBu..

📌 230804 Object 클래스의 다양한 메소드들 Object 클래스 모든 클래스의 최상위 클래스로, java.lang 패키지 안에 있다. String, Integer, System 등이 포함되었으며, 모든 클래스는 위 클래스를 상속받는다. 개발자가 상속 표시를 안 해줘도 컴파일러가 자동으로 extends Object 를 추가한다. toString() 메소드 객체의 정보를 String으로 바꾸어서 사용할 때 쓰인다. String이나 Integer 클래스는 이미 재정의되어있다. equals 메소드 두 인스턴스의 주소값을 비교하여 true/false를 반환해주는 함수이다. 그렇지만 재정의하여 필요시에 논리적으로 동일함의 여부를 구현할 때 쓰인다. 예를 들어 같은 학번을 가진 객체들은 논리적으로 같은 객체..

📌 230803 TIL : 상속 및 추상클래스와 인터페이스의 차이 1. 추상클래스와 인터페이스 📝 공통점 ? 메서드의 선언만 있고, 구현 코드가 없다는 공통점이 있다. 둘을 상속받은 클래스는 반드시 메소드를 구현해야한다. 📝 차이점 ? 1) 개념적 차이점 추상클래스는 extends 키워드를 통해 상속할 수 있다. 그래서 단 한개의 클래스만 상속이 가능하다. 그리고 일반변수, 생성자, 메소드, 추상메소드를 모두 가질 수 있다. 인터페이스는 implements 키워드를 통해 상속하며, 다중 상속이 가능하다. 상수와 추상메소드만 가질 수 있으며 일반 메소드를 사용할려면 default 키워드를 붙여 사용해야한다. 2) 어디서 사용해야하는지 추상클래스는 확장의 느낌으로, 자신의 기능을 하위클래스로 확장시키는 것이..

📌 230802 TIL : 자바 인터페이스 정리 1. 인터페이스는 왜 쓰는가. 인터페이스의 모든 변수는 final로 선언된다. 클래스나 프로그램이 제공하는 기능을 명시적으로 선언하기 때문에, 일종의 클라이언트 코드와의 약속이다. 클라이언트 프로그램은 인터페이스에 선언된 메서드 명세만 보고 이를 구현한 클래스를 사용할 수 있다. 또한 어떤 객체가 하나의 인터페이스 타입이라는 것은 그 인터페이스가 제공하는 모든 메소드를 구현했다는 뜻이다. 2. Jdbc 인터페이스? 오라클 DB나 MYSQL 같은 데이터베이스와 자바와 연결하기 위해서는 connection이라는 인터페이스가 필요하다. 자바는 connection 인터페이스를 선언해놓고, 오라클같은 데이터베이스 기업은 그 인터페이스의 기능을 구현한다. 이렇듯 인터..

📌 230801 TIL : 업캐스팅 이유, 템플릿 메소드, 프레임워크와 라이브러리의 차이 1. 업캐스팅 하는 이유 Animal -> Human 을 상속받는다 할 때, 1️⃣ Animal human = new human(); 2️⃣ Human human = new human(); 2️⃣가 기능적인 면에서는 Human 클래스의 모든 메소드에 접근이 가능하다는 점에서 밑이 더 나은데 왜 위의 업캐스팅된 버전을 쓰는지 궁금했다. //1번 그냥 선언(?) Human[] humans = new Human[2]; humans[0] = new Human(); humans[1] = new Human(); Tigar[] tigars = new Tigar[2]; tigars[0] = new Tigar(); tigars[1]..
- Total
- Today
- Yesterday
- 국비지원캠프
- qjzl
- Java
- 그룹스터디
- springboot
- 백준
- 커리어멘토링
- 국비지원
- 백엔드
- 자료구조
- 채팅기능개발
- 패스트캠퍼스
- 과정중간회고
- boj
- 야놀자
- 백엔드부트캠프
- 야놀자X패스트캠퍼스부트캠프
- 백엔드개발자
- #국비지원취업
- 부트캠프
- 그룹스터디워크샵
- 카카오API
- 데이터베이스
- 국비지원취업
- TiL
- 프로젝트후기
- 패스트캠퍼스강의
- 자료구조 #스택 #큐 #덱 #선형자료구조
- 스터디후기
- be
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |