language

객체란?세상에 존재하는 모든 것사물, 생명체 등등객체지향언어 (Object-oriented Language)컴퓨터 프로그래밍의 한가지 기법으로 객체를 만들고 객체를 사용하는 프로그래밍 방법프로그래밍에서 필요한 데이터와 동작을 객체로만들어 구현하는 기법을 의미클래스와 객체를 기반으로, 객체지향의 주요 특징인 추상화, 캡슐화, 상속, 다형성등의 기법을 사용해서, 프로그래밍을 하는 것이 일반적객체지향언어의 특징캡슐화데이터와 코드의 형태를 외부로부터 알 수없게 하고, 데이터의 구조와 역할, 기능을 하나의 캡슐형태로 만드는 방법상속상위 클래스의 모든걸 하위 클래스가 모두 이어 받는것다형성상속과 연관이 있는 개념으로 한 객체가 다른 여러형태(객체)로 재구성 되는 것추상화추상화는 객체의 공통적인 속성과 기능을 추출하..
JVM(Java Virtual Machine)에 대해서 알아보자.JDK자바 개발 환경으로 자바 어플리케이션을 개발하기 위해 필요한 도구를 제공자바 언어를 바이트 코드로 컴파일 해주는 자바 컴파일러(javac), 자바 클래스 파일을 해석해주는 역 어셈블리어(javap) 등이 있다.자세한 내용은 Tools and Commands Reference 에서 확인 가능JREJRE는 자바 실행 환경으로 JVM,자바 클래스 라이브러리, 기타 자바 어플리케이션 실행에 필요한 파일들을 포함JAVA 동작 과정소스는 .java로 저장된다javac 컴파일러가 바이트코드로 바꿔줘서 .class파일로 저장됨작성한 코드를 일시적으로 숨기는 차원바꿔씀으로써 문법 검사 같은 작업을 이후에는 하지않게 됨으로서 시간단축but, 이 방법은 ..
substringpublic String substring(int beginIndex) { return substring(beginIndex, length());}charAtpublic char charAt(int index) { if (isLatin1()) { return StringLatin1.charAt(value, index); } else { return StringUTF16.charAt(value, index); }}replacepublic int solution(String s) { String[] arr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "..
filter// int[] arrint[] result = Arrays.stream(arr).filter(idx -> idx%divisor==0).toArray();sorted// int[] arrint[] result = Arrays.stream(arr).sorted().toArray(); // 새로운 배열을 리턴// 비교String[] names = {"Queen", "Tod","Kim"};Arrays.sort(names); // 배열을 직접 변경indexOfString[] names = {"Queen", "Tod","Kim"};Arrays.asList(names).indexOf("Kim");
제네릭을 사용하면 담을 수 있는 타입을 컴파일러에 알려주어 클래스나 인터페이스가 사용할 데이터 타입을 나중에 지정할 수 있다. 이러면 컴파일러가 알아서 형변환 코드를 추가해주어 코드의 재사용성을 높이고 엉뚱한 타입 객체를 넣으려는 시도를 차단해 안정성 높은 프로그램을 만들어준다.제네릭 지원 전의 컬렉션import java.util.ArrayList;public class NonGenericExample { public static void main(String[] args) { // 비제네릭 컬렉션 생성 ArrayList list = new ArrayList(); // 컬렉션에 요소 추가 list.add("Hello"); ..
Exception 내용Duplicate key 001 (attempted merging values sample.cafekiosk.spring.domain.product.Product@6b5fdbd0 and sample.cafekiosk.spring.domain.product.Product@2100b770)java.lang.IllegalStateException: Duplicate key 001 (attempted merging values sample.cafekiosk.spring.domain.product.Product@6b5fdbd0 and sample.cafekiosk.spring.domain.product.Product@2100b770) at java.base/java.util.stream.Co..
서론 프로그래밍을 하다 보면 메모리 관리는 필수적인 작업이다. 프로그램이 실행되는 동안 새로운 객체를 생성하고 데이터를 저장하기 위해서는 메모리 공간이 지속적으로 필요하기 때문이다. 하지만 일정 시간이 지나면서 더 이상 사용되지 않는, 불필요한 메모리 공간들이 발생하게 된다. 이렇게 남아있는 사용되지 않는 메모리를 '가비지(garbage)'라고 부른다. 과거에는 프로그래머가 직접 이러한 가비지 메모리를 수동으로 해제해야 했다. 하지만 수동 메모리 관리에는 메모리 해제를 잊어버리면 메모리 누수(memory leak)가 발생하고, 이는 시스템 성능 저하와 심지어 프로그램 다운까지 초래하는 등의 문제점이 있다. 가비지 컬렉터(Garbage Collector) 수동 메모리 관리의 어려움을 해결하기 위해 등장한 ..
메서드 오버라이딩(Overriding)과 메서드 오버로딩(Overloading)은 객체 지향 프로그래밍에서 다형성을 구현하는 두 가지 중요한 개념이다. 오버라이딩과 오버로딩에 대해서 알아보자. 메서드 오버라이딩 (Method Overriding) 메서드 오버라이딩은 서브클래스(subclass)에서 부모 클래스(superclass)의 메서드를 재정의하는 것이다. 서브클래스에서 부모 클래스의 메서드를 동일하게(메서드 이름, 매개변수 유형 및 반환 유형) 다시 구현하는 것이다. 오버라이딩은 런타임 시에 메서드 호출 시 객체의 실제 유형에 따라 동적으로 결정된다. class Animal { public void sound() { System.out.println("Animal makes a sound"); } ..
목적Comparator과 Comparable의 뜻은 각각 '비교기', '비교할 수 있는' 이다.Java에서는 이 두 가지가 인터페이스로 정의되어 있다. 이 두 인터페이스 Comparator과 Comparable은 배열이나 List들을 정렬할 때,정렬의 기준을 쉽게 커스터마이징할 수 있도록 도와주는 인터페이스이다.두 인터페이스를 활용할 때 어떠한 차이점이 있는지와 활용 방법에 대해 알아보고자 한다.Comparator먼저 Comparator 인터페이스에 대해 알아보고자 한다.Comparator 인터페이스는 자바에서 제공하는 인터페이스 중 하나로, 객체들의 정렬에 사용되는 메소드를 정의한다.이 인터페이스를 구현함으로써 사용자가 원하는 방식으로 객체를 비교하고 정렬할 수 있다.public interface Co..
je-pa
'language' 카테고리의 글 목록