본문 바로가기
반응형

Java20

Java - 컬렉션(Collection) By Ji Min-Jae 17 분읽는 시간 컬렉션(collection)이란? 많은 데이터를 그 사용 목적에 적합한 자료구조로 묶어 하나로 그룹화한 객체를 말한다. 컬렉션은 배열, 리스트, 세트, 맵 등 다양한 형태로 구현될 수 있으며, 각각의 형태는 다른 종류의 데이터를 효과적으로 저장하고 관리하기 위해 사용됩니다. 💡 배열(Array)이 있는데 왜 Collection을 사용하는 걸까? 배열은 정적 메모리 할당이고, Collection은 정적 메모리 할당이 아닌 동적 메모리 할당을 하게 된다. 배열은 new int[2]는 2개 공간으로 제한되고, 미리 선언을 통해 4개의 공간을 만들어야 하지만(정적 메모리), Collection 공간이 계속 필요한 만큼 추가할 수 있다(동적 메모리) 컬렉션 프레임워크의 .. 2024. 4. 17.
Java - 배열을 문자열로 합치기 배열을 문자열로 합치는 방법 기본 String[] color = {"red", "bule", "green", "orange", "yellow"}; String joinString = String.join(", ", color); List 타입 List color = List.of("red", "bule", "green", "orange", "yellow") String joinString = String.join(", ", color); 실행결과 : red, bule, green, orange, yellow Arrays.toString String[] color = {"red", "bule", "green", "orange", "yellow"}; String str = Arrays.toString(com.. 2023. 2. 3.
싱글톤 패턴의 이점과 단점 싱글톤 패턴 최초 한번의 new 연산자를 통해서 고정된 메모리 영역을 사용하기 때문에 추후 해당 객체에 접근할 때 메모리 낭비를 방지할 수 있다. 그리고 생선된 인스턴스를 사용하기 때문에 속도 면으로도 이점이 있다고 한다. 또 다른 이점은 다른 클래스 끼리 데이터 공유가 쉽다 싱글톤 인스턴스가 전역으로 사용되는 인스턴스이기 때문에 다른 클래스의 인스턴스들이 접근하여 사용할 수 있다. 싱글톤 패턴의 문제점 싱글톤 패턴을 구현하기 위해 코드가 많이 필요하다. 정적 팩토리 메서드에서 객체 생성을 확인하고 생성자를 호출하는 경우 멀티스레딩 환경에서 발생할 수 있는 동시성 문제 해결을 위해 syncronized 키워드를 사용해야 한다. 매번 인스턴스를 초기화 해주지 않으면 어플리케이션 전역에서 상태를 공유하기 때.. 2022. 8. 15.
상속(Java) 상속 자바 문법으로 상속을 구현할 때는 extends 예약어를 사용합니다. 객체 지향 프로그램에서도 마찬가지로 B클래스가 A클래스를 상속받으면 B클래스는 A클래스의 메서드를 사용할 수 있습니다. 객체 지향 프로그램은 유지보수하기 편하고 프로그램을 수정하거나 새로운 내용을 추가하는 것이 유연한데, 그 기반이 되는 기술이 상속입니다. 부모 클래스(parent class)를 '상위클래스', 자식 클래스를 '하위 클래스' 등으로 부르기도 합니다. 아래 코드는 B클래스가 A 클래스를 상속합니다. class B extends A { } 상속을 사용하여 고객 관리 프로그램 구현하기 package study02; public class Tmember { private int TmemberID; //고객 아이디 priv.. 2022. 7. 18.
static 변수 (Java) package study02; public class StudentTest3 { public static void main(String[] args) { Student3 studentLee = new Student3(); studentLee.setStudentName("이지원"); System.out.println(studentLee.serialNum); // serialNum 변수의 초깃값 출력 studentLee.serialNum++; // static 변수 값 증가 Student3 studentSon = new Student3(); studentSon.setStudentName("손수경"); System.out.println(studentSon.serialNum); //증가된 값 출력 System... 2022. 7. 13.
this(Java) this 예약어 자바에서 this 는 인스턴스 자기 자신을 가리키는 키워드이다. 인스턴스를 가리키는 변수가 참조변수 이며, 참조변수를 출력하면 '클래스 이름@메모리 주소' 문자열 값이 나옵니다. 출력 결과를 보면 myNum.printThis()메서드를 호출하여 출력한 this 값이 참조 변수 myNum를 출력한 값과 같습니다. 즉, 클래스 코드에서 사용하는 this는 생성된 인스턴스 자신을 가리키는 역할을 합니다. this.num3 = num3; 문장으로 참조하면 동적메모리에서 생성된 인스턴스 num3 변수 위치를 가리키고 그 위치에 매개변수 값을 넣어 주는 것입니다. package study02; class ThisExample { int num1; int num2; int num3; public vo.. 2022. 7. 12.
Java 복습_10 함수 호출과 스택 메모리 함수를 호출하면 그 함수만을 위한 메모리 공간이 할당되는데, 이 메모리 공간을 스택(stack)이라고 부릅니다. add()함수를 호출하면 메모리를 생성하는 과정 함수가 호출되면 그 함수가 사용할 메모리 공간이 스택에 생성됩니다. 프로그램을 시작할 때 main() 함수부터 호출하기 때문에 가장 먼저 main()함수에 포함된 변수 num1, num2, sum을 저장할 메모리 공간이 생성됩니다. main()함수에서 add()함수를 호출하면 add() 함수를 저장할 메모리 공간이 스택에 새롭게 생성됩니다. add()함수 수행이 끝나고 함수에 할당했던 메모리 공간을 해제하는 과정 add() 함수 수행이 끝나고 결과 값이 반환되면 add()함수가 사용하던 메모리 공간은 자동으로 사라집니다... 2022. 7. 10.
Java 복습_09 객체 지향 프로그래밍과 클래스 객체와 객체 지향 프로그래밍 국어사전에서 객체의 뜻을 찾아보면 '의사나 행위가 미치는 대상'이라고 설명합니다. 우리 주위에 있는 객체를 생각해 보면 사람, 자동차, 건물 등이 있습니다. 즉, 눈에 보이는 사물은 모두 객체라고 할 수 있습니다. 눈에 안보이는 것도 객체가 될 수 있습니다. 주문, 생산, 관리등 어떤 행동을 나타내는 단어도 객체가 될 수 있습니다. 자바 객체 지향 프로그래밍(Object-Oriented Programming: OOP)은 객체를 기반으로 하는 프로그램입니다. 객체지향 프로그램이란 '어떤 대상(객체)'을 가지고 프로그래밍한다는 것 객체 지향 프로그래밍과 클래스 객체와 객체 지향 프로그래밍 국어사전에서 객체의 뜻을 찾아보면 '의사나 행위가 미치는 대상.. 2022. 7. 6.
Java 복습_08 배열이란? 자료를 순차적으로 관리하는 구조, 배열 학교에 학생이 100명 있습니다. 학번의 자료형을 정수라고 하면 학생이 100명일 때 int studentID1, int studentID2, int studentID3,...,int studentId100 이렇게 변수 100개를 선언해서 사용해야 합니다. 그런데 학번에 대한 여러 개 변수들을 일일이 쓰는 것은 번거로운 일입니다. 이때 사용하는 자료형이 **배열(array)**입니다. 배열을 사용하면 자료형이 같은 자료 여러개를 한 번에 관리할 수 있습니다. 배열은 자료가 연속으로 나열된 자료구조입니다. 배열 선언과 초기화 배열을 사용하려면 먼저 배열을 선언해야 합니다. 배열도 변수와 마찬가지로 자료형을 함께 선언합니다. 자료형[] 배열이름 = new 자.. 2022. 7. 4.
Java 복습_7 반복문 while문 while(조건식) { 수행문1; // 조건식이 참인 동안 반복 수행 } package selfstudy; public class WhileEx1{ public static void main(String[] args) { int num = 1; int sum = 0; while(num 2022. 6. 29.
LIST