BACK/JAVA 37

[JAVA] 실전 자바 - 클래스와 데이터

클래스와 객체 public class Student { String name; int age; int garde; } 클래스는 사용자 정의 타입을 만들기 위한 설계도이다. 클래스에 정의한 변수들을 멤버 변수, 또는 필드라 한다. 클래스를 사용해 실제 메모리에 만들어진 실체를 객체 또는 인스턴스라고 한다. ⇒ 클래스는 설계도이고, 이 설계도를 기반으로 실제 메모리에 만들어진 실체를 객체 또는 인스턴스라고 한다. -클래스: 객체를 생성하기 위한 설계도. 객체가 가져야할 속성(변수)와 기능(메서드)를 정의 -객체: 클래스에서 정의한 속성과 기능을 가진 실체 -인스턴스: 특정 클래스로부터 생성된 객체 (객체가 어떤 클래스에 속해있는지 강조할 때 사용) 객체 생성 Student student1 = new Stud..

BACK/JAVA 2024.01.30

[JAVA] String, StringBuilder, StringBuffer 차이

String String과 다른 클래스(StringBuffer, StringBuilder)의 차이점은 String은 불변(immutable) 하다는 점이다. String 객체는 한번 생성되면 할당된 메모리 공간이 변하지 않는다. ‘+’ 연산자 또는 concat 메서드를 통해 기존에 생성된 String 클래스 객체 문자열에 다른 문자열을 붙여도 기존 문자열에 새로운 문자열을 붙이는 것이 아니라, 새로운 String 객체를 만든 후, 새 객체에 연결된 문자열을 저장하고 그 객체를 참조하도록 한다. 즉, 한번 생성된 객체의 내부 내용을 변화시킬 수 없다. String str = "hello"; // String str = new String("hello"); str = str + " world"; // [ h..

BACK/JAVA 2023.04.20

[JAVA] 컬렉션 프레임워크 정리

컬렉션 프레임 워크란? 여러 개의 데이터 묶음 자료를 효과적으로 처리하기 위해 구조화된 클래스 또는 인터페이스의 모음 컬렉션의 특성에 따라 크게 List, Set, Map으로 나눌 수 있고 메모리의 입출력 특성에 따라 기존 컬렉션 기능을 확장한 Stack, Queue가 있다. Map의 경우 Collection 인터페이스를 상속받고 있지 않지만 Collection으로 분류된다. 1. List 컬렉션 인터페이스 배열과 반대로 저장 공간의 크기가 동적으로 변화(메모리 동적 할당) 데이터의 추가, 변경, 삭제 등 가능 내부에 이미 클래스가 구현되어 있어 직접 인터페이스를 구현할 필요가 없음 구현 클래스(ArrayList, Vector, LinkedList..)를 이용하면 List 객체 생성 가능 구현 클래스(자..

BACK/JAVA 2023.02.15

객체지향 프로그래밍의 특징

객체지향 프로그래밍이란? 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고,그 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 객체지향 프로그래밍의 장단점 장점 코드 재사용이 용이 기존에 만들어진 클래스를 재사용할 수 있고 상속을 통해 확장 가능 유지보수가 쉬움 수정해야할 부분이 클래스 내부에 있으므로 해당 부분만 수정하면 됨 대형 프로젝트에 적합 클래스 단위로 모듈화시켜 개발 -> 업무 분담하기에 쉬움 단점 처리 속도가 상대적으로 느림 객체가 많으면 용량이 커질 수 있음 설계시 많은 시간과 노력이 필요 객체지향 프로그래밍의 특징 1.추상화 복잡한 시스템으로부터 핵심적인 개념 또는 기능을 간추려 내는 것 2.캡슐화 객체의 속성과 메서드를 하나로 묶고 일부를 외부에..

BACK/JAVA 2022.11.13

[JAVA] 자바 프로그램의 구조와 실행 과정

자바의 플랫폼 독립성 자바의 가장 큰 특징은 플랫폼 독립성이다. 플랫폼 독립성이란 하나의 프로그램이 모든 플랫폼(윈도우, 맥 리눅스..)에서 실행 가능한 것을 말한다. 자바의 가상머신 JVM이 이를 가능하게 해준다. 자바의 실행 파일(.class)은 이 가상머신이 사용하는 기계어의 집합으로 구성되어 있어, 가상머신을 이용하면 어떤 플랫폼에서도 .class파일을 실행할 수 있다. JVM 이란? JVM은 JavaVirtual Machine의 줄임말로 wirte once, run erveywhere. 즉 OS마다 따로 코드를 작성해야 하는 번거로움 없이 Java가 플랫폼에 독립적일 수 있게 만들어준다. 그리고 가비지 컬렉션을 통해 자동적인 메모리 관리를 해준다. (가비지 컬렉션: JVM의 메모리 관리 기법 중..

BACK/JAVA 2022.11.11

[JAVA] 디자인 패턴 정리

디자인 패턴이란 ? 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 "규약" 형태로 만들어 놓은 것을 의미한다. 1. 싱글톤 패턴 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어드는 장점이 있다. 하지만 의존성이 높아지고 테스트가 서로 독립적인 단위 테스트를 주로 하는 TDD를 할때 걸림돌이 된다는 단점이 있다. 스프링 컨테이너 객체 관리, DB 커넥션, 스레드 풀 객체 생성시 사용된다. class Singleton{ private static class singleInstanceHolder{ private static fi..

BACK/JAVA 2022.11.11