자료에 따라서 최적화되어있는 구조가 따로 존재한다. 자바는 이 자료구조를 프로그래머가 일일히 구현하지 않아도 되게끔 미리 구현해놓은 객체를 제공한다. ⭐ 컬렉션의 의의 일정 작업을 빠르게 하기 위해서는 자료구조를 만들어서 이용해야함 자바는 컬렉션을 통해 자료구조의 세세한 구현방법에 신경쓰지 않고, 미리 구현된 객체를 통해 논리구조에만 신경쓰면 될 수 있게 해줌 ⭐ 각종 자료구조 📚 리스트 리스트는 슌서가 존재하는 인터페이스이다. 리스트는 특정 위치에 요소를 직접 삽입할 수 있다. 중복된 요소들을 허용한다. 리스트 요소의 위치값에 접근할 수 있는 네 가지 메소드를 제공한다. 💬 리스트의 여러가지 메서드 리스트의 크기 리스트가 비어있는지 여부 리스트의 특정 위치에 어떤 요소가 들어가있는지 리스트가 특정 요소..
인터페이스와 추상클래스는 사용하는 방법이 비슷해서 항상 비교당한다. 하지만 사용하는 목적이 다르기 때문에 생각보다 다른 점이 많다. 이번 글에서는 인터페이스와 추상클래스의 정의, 특징에 대해서 알아보고 그 차이점에 대해서 비교해본다. ⭐인터페이스란 인터페이스를 사용하는건 게임의 컨트롤러를 쓰는 것과 같다 옛날 콘솔게임의 컨트롤러는 십자키와 A,B키밖에 존재하지 않았다. 콘솔기기에 새로운 게임을 꽃으면, 기존에 있는 버튼에 게임에 따라 동작이 변화한다. 마리오의 경우 위로 키를 누르면 점프를 한다. 체스게임의 경우 위로 키를 누르면 체스말을 놓을 포인트를 위로 옮긴다. 위 예시의 컨트롤러가 인터페이스를 사용하는 클래스 마리오, 체스게임이 인터페이스를 구현하는 클래스라고 생각하자 💬 인터페이스의 변수선언 인..
클래스는 객체지향 언어가 가지는 가장 대표적인 구조이다. 클래스를 통해 자바의 모든 객체를 생성한다 ⭐ 클래스 클래스라는 것은 템플릿이다. 템플릿을 바탕으로 객체(인스턴스)를 생성한다. 📚 객체의 상태 객체는 멤버 변수를 가지고 있는데, 인스턴스 별로 다른 값을 가질 수 있다. 객체의 멤벼 변수를 객체의 상태라고도 부른다. 하지만, 상태는 계속해서 변화한다. 📚 객체의 행동 위와 같은 상태는 객체의 메서드를 통해 접근이 가능하다. 보통 멤버 변수와 같은 경우, primary로 선언이 되기 때문에, 접근하기 위해서는 메서드가 필요해 진다. 이런 메서드를 객체의 행동이라고 한다. 📚 클래스를 설계할 때 고려해야 하는 것 객체의 상태 (멤버 변수) 객체의 생성자 객체의 행동 (메서드)
Date객체는 LocalDate, LocalDateTime, LocalTime과 같이 날짜별, 날짜 및 시간, 시간만 나타내는 객체로 나뉘어지지만, 메서드는 비슷하다. 📚 패키지 임포트 위 객체는 기본적으로 제공하는 패키지가 아니므로 임포트를 해야 사용할 수 있다. import java.time.*와 같이 임포트해야 한다. 📷 LocalDate 2023-12-21 과 같이 날짜를 값으로 가질 수 있는 객체 📖 LocalDate의 메서드 LocalDate.getYear,getDayOfWeek,getDayOfMonth,getDayOfYear 각각 년도, 요일, 달의 몇번째 날인지(날짜), 이 해의 몇번째 일자인지를 알 수 있다. isLeapYear, lengthOfYear, lengthOfMonth 각각 윤..
⭐ 래퍼클래스를 생성하는 두가지 방법 new Integer()와 같이 생성자로 생성하는 방법 Integer.valueOf()와 같이 메서드를 이용하는 방법이 있다. 📚 무엇을 사용해야할까? Wrapper.valueOf()를 사용해서 클래스를 사용하는 것이 좋다.📚 이유는? 생성자로 생성하게 되면 같은 값을 가지고 있어도 새로운 객체로 생성하게 되지만, valueOf를 통해서 생성하게 된다면 같은 값을 가진 객체가 있는지 먼저 검사한 뒤, 객체가 존재하는 경우 변수에 기존 객체의 메모리 주소를 할당하여 새로운 객체의 생성을 막는다. ⭐ 오토박싱이란? Wrapper.valueOf함수를 암묵적으로 사용하여 래퍼클래스를 작성하는 방법 Integer seven = Integer.valueOf(7); 과 같은 식을..
⭐ 래퍼클래스란? 기본타입변수를 한번 감싼 클래스(int,boolean,byte,char,double,float,long,short) 각각 대응하는 래퍼클래스가 있다.📚 왜 래퍼클래스가 사용되는가? 추가적인 옵션을 제공한다. String에서 boolean값 또는 int값을 생성하고 싶은 경우에 사용 또는 유틸리티 메서드를 사용하고 싶은 경우에 사용된다. ex) Float값을 int로 바꾸고 싶은 경우 Float.intValue()를 통해 정수값을 받을 수 있다. ex) String으로 되어있는 이진수를 십진수로 바꾸거나, 십진수를 이진수로 바꿀 수 있다. 컬렉션에 저장이 가능하다.
⭐ 왜 String을 사용하면 안되는가? 📚 필요없는 객체생성을 막기 위함 String은 불변객체이기 때문에 항상 객체가 새로 생성되게 된다. "123"+"1234"+"1235"과 같이 문자열을 더하는 코드를 작성했을 경우, 객체가 총 5개나 생성되게 된다. 쓸데없이 메모리가 낭비된다는 뜻이다. 📚 StringBuffer의 등장 String을 생성할 수 있는 또다른 클래스 객체를 새로 생성하지 않고, StringBuffer의 append 메서드를 사용하여 문자열을 결합할 수 있음 또는 변경할 때, setCharAt(idx,"바꾸고싶은문자")을 사용해 해당 인덱스의 문자를 바꾸고싶은문자로 바꿀 수 있음 📚 StringBuilder StringBuffer이후 최신 자바 버전에서 등장한 String 생성 클래..
✅ String char(문자) 타입의 집합 'w' 'o' 'r' 'd'가 문자(char) 이라면 그 집합인 word가 바로 String타입. 우리가 평소에 쓰는 단어가 전부 String이라고 봐도 무방하다.✅ 주요 메서드 아래 예시에 있는 str은 임의의 String 타입 변수라고 생각하면 됨(실제 변수에서 사용을 어떻게 하는지 알기쉽게 하기 위함)str.length() 문자열의 길이를 구하는 메서드 ex) "word".length();의 결과값은 4가 나오게 된다.str.charAt(index) index에 있는 문자를 구하는 메서드 ex) "word".charAt(3);의 결과값은 'd'가 나오게 된다. str.substring..
- Total
- Today
- Yesterday
- 일대다
- security
- ModelAttribute
- JPA
- Python
- 취업
- SSAFY
- 커맨드객체
- 코딩테스트
- @BaseEntity
- QueryDSL
- 11기
- dto
- notion
- Java
- Config
- 배열
- 데이터베이스 설계
- 작업 순서정리
- test
- 다대일
- spring data JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |