분류 전체보기 159

[인프런] 기본형과 참조형의 공유

자바의 데이터 타입을 가장 크게 보면 기본형과 참조형으로 나눌 수 있다.기본형 : 하나의 값을 여러 변수에서 절대로 공유하지 않는다.참조형 : 하나의 객체를 참조값을 통해 여러 변수에서 공유할 수 있다.기본형 변수는 하나의 값을 절대로 공유하지 않는다. 따라서 값을 변경해도 변수 하나의 값이 변경된다.참조형 변수들은 같은 참조값을 통해 인스턴스를 참조할 수 있다. 자바에서 모든 값 대입은 변수가 가지고 있는 값을 복사해서 전달한다. 변수가 int와 같은 숫자값을 가지고 있으면 숫자값을 복사해서 전달하므로 같은 인스턴스를 참조하게 된다. 😮참조형 변수는 참조값을 통해 같은 객체( 인스턴스 )를 공유할 수 있다.반면 기본형 변수는 절대로 같은 값을 공유하지 않는다.  공유 참조와 사이드 이펙트사이드 이펙트..

Java 2024.06.06

SELECT

테이블 컬럼의 정보 조회(') 홑따옴표 : 문자열일 때(") 쌍따옴표 : 컬럼명일 때SELECT 데이터를 조회할 때 사용하는 구문>> RESULT SET : SELECT문을 통해 조회되 결과물 ( 조회된 행들의 집합 )[표현법]SELECT 조회하려는 컬럼명, 조회하려는 컬럼명, ...FROM 테이블명  컬럼 값을 통한 산술 연산: SELECT절 컬럼명 작성 부분에 산술 연산 기술 가능 ( 이때 산술 연산된 결과 조회 ) 컬럼명에 별칭 지정하기: 산술 연산 시 산술에 들어간 수식 그대로 컬럼명이 된다. 이때 별칭을 부여하면 깔끔하게 처리가 가능하다.[표현법]컬럼명 별칭 / 컬럼명 AS 별칭 / 컬럼명 "별칭" / 컬럼명 AS "별칭"별칭에 띄어쓰기나 특수문자 포함되면 반드시 (") 쌍따옴표를 넣어줘야 한다..

Oracle 2024.06.04

데이터베이스

1. 데이터 ( data ): 현실 세계에서 단순히 관찰하거나 측정하여 수집한 사실이나 값2. 정보 시스템: 조직 운영에 필요한 데이터를 수집하여 저장해두었다가 필요할 때 유용한 정보를 만들어 주는 수단3. 데이터베이스 ( DB ): 정보 시스템 안에서 데이터를 저장하고 있다가 필요할 때 제공하는 역할 담당  특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장한 운영 데이터 집합공유 데이터 : 특정 조직의 여러 사용자가 함께 소유하고 이용할 수 있는 공유 데이터통합 데이터 : 최소의 중복과 통제 가능한 중복만 허용하는 데이터저장 데이터 : 컴퓨터가 접근할 수 있는 매체에 저장된 데이터운영 데이터 : 조직의 주요 기능을 수행하기 위해 지속적으로 꼭 필요한 데이터특징실시간 접근성계속적인 변화..

Oracle 2024.06.04

DB

데이터베이스 ( DB : database )는 통합하여 관리되는 데이터의 집합체를 의미한다.중복된 데이터를 없애고, 자료를 구조화하여 효율적인 처리를 할 수 있도록 관리된다.  데이터베이스의 특징사용자의 질의에 대하여 즉각적인 처리와 응답이 이루어진다.생성, 수정, 삭제를 통하여 항상 최신의 데이터를 유지한다.사용자들이 원하는 데이터를 동시에 공유할 수 있다.사용자가 원하는 데이터를 주소가 아닌 내용에 따라 참조할 수 있다.응용프로그램과 데이터베이스는 독립되어 있으므로, 데이터의 논리적 구조와 응용 프로그램은 별개로 동작된다. SQL데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어이다. 1. DDL ( Data Definition Language ) : 데이터베이스나 테이블 등을 생성,..

SQL 2024.06.03

Labelled Loop ( 이름을 가지는 반복문 )

반복문에 이름(label)을 설정하고 이를 사용하여 특정 반복문을 빠져나가는 방법은 Java에서 중첩되 반복문을 효율적으로 관리할 때 매우 유용하다. 이 기능을 이용하면 여러 반복문이 중첩된 상황에서 일반적인 break문은 단 하나의 반복문만을 빠져나가게 해주므로, 단순한 break문으로는 해결할 수 없는 복잡한 제어 흐름을 간단하게 처리할 수 있다. 기본 개념Labelled Loop는 반복문 앞에 이름을 붙여서 특정 반복문을 식별할 수 있게 한다.break 문이나 continue문과 함께 사용하여 특정 반복문을 제어할 수 있다.  구문이름은 반복문의 키워드 바로 앞에 위치해야 한다.이름과 반복문의 키워드 사이에 다른 명령문이 들어가면 컴파일 오류가 발생한다. 예시public class LabelledB..

Java 2024.06.03

Enhanced for문

자바의 향상된 for문은 배열이나 컬렉션을 순회하기 위해 사용되는 구문으로, for-each loop라고도 불린다.기존의 for문에 비해 코드가 간결하고 읽기 쉬워서 반복적인 작업을 처리할 때 많이 사용된다. 기본 구조for (타입 변수명 : 배열 또는 컬렉션) { // 반복할 코드} 타입 : 배열 또는 컬렉션에 포함된 요소의 타입변수명 : 반복되는 각 요소를 참조할 변수의 이름배열 또는 컬렉션 : 순회할 배열 또는 컬렉션int[] numbers = {1, 2, 3, 4, 5};for (int number : numbers) { System.out.println(number);} 위 코드는 numbers 배열의 각 요소를 순회하며, 순회하는 각 요소의 값을 number 변수에 할당하고 그 값을..

Java 2024.06.03

[인프런] equals( )

정적 의존관계와 동적 의존관계정적 의존관계 : 컴파일 시간에 결정되며, 클래스 간의 관계를 의미한다. 프로그램을 실행하지 않고, 클래스 내에서 사용하는 타입들만 보면 쉽게 의존관계를 파악할 수 있다.동적 의존관계 : 프로그램을 실행하는 런타임에 확인할 수 있는 의존관계이다. 런타임에 어떤 인스턴스를 사용하는지를 나타내는 것을 말한다. 단순히 의존관계 또는 어디에 의존한다고 하면 주로 정적 의존관계를 의미한다.  자바는 두 객체가 같다라는 표현을 2가지로 분리해서 제공한다.동일성(Identity) :  == 연산자를 사용해서 두 객체의 참조가 동일한 객체를 가리키고 있는지 확인동등성(Equality) : equals( ) 메서드를 사용하여 두 객체가 논리적으로 동등한지 확인동일성은 물리적으로 같은 메모리에..

Java 2024.06.02

[인프런] toString( )

Object.toString(  ) 메서드는 객체의 정보를 문자열 형태로 제공하여 디버깅과 로깅에 유용하게 사용된다.Object가 제공하는 toString(  )메서드는 기본적으로 패키지를 포함한 객체의 이름과 객체의 참조값(해시코드)를 16진수로 제공한다.  toString(  ) 오버라이딩 Object.toString(  ) 메서드가 클래스 정보와 참조값을 제공하지만 이 정보만으로 객체의 상태를 적절히 나타내지 못하므로, toString(  )을 오버라이딩 해서 정보를 제공하는 것이 일반적이다. 오버라이딩 하지 않으면 16진수로 나옴위와 같은 모양으로 출력됨 toString(  )을 오버라이딩 하면, @Overridepublic String toString() { return "Dog{" + ..

Java 2024.06.02

[인프런] Object 클래스

자바에서 모든 클래스의 최상위 부모 클래스는 Object 클래스이다.부모가 없을 경우 묵시적으로 Object 클래스를 상속받는다. ( extends Object 가 있는 것과 같다. ) 묵시적 ( Implicit ) : 개발자가 직접 기술하지 않아도 시스템 또는 컴파일러에 의해 자동으로 수행되는 것을 의명시적 ( Explicit ) : 개발자가 직접 기술해서 작동하는 것을 의미 자바에서 Object 클래스가 최상위 부모 클래스인 이유공통 기능 제공객체의 정보를 제공하고, 이 객체가 다른 객체와 같은지 비교하고, 객체가 어떤 클래스로 만들어졌는지 확인하는 기능은 모든 객체에게 필요한 기능이다. 이렇게 모든 객체에 필요한 공통 기능을 제공하여 모든 객체에서 해당 기능을 상속받아 사용할 수 있다.객체의 정보를..

Java 2024.06.02

[인프런] java.lang 패키지

자바가 기본으로 제공하는 라이브러리 중 가장 기본이 되는 것이 java.lang 패키지이다.여기서 lang은 Language의 줄임말로, 자바 프로그래밍 언어의 핵심을 구성하는 클래스들을 포함하고 있다. java.lang 패키지의 대표적인 클래스Object : 모든 자바 객체의 부모 클래스String : 문자열Integer, Long, Double : 래퍼 타입, 기본형 데이터 타입을 객체로 만든 것Class : 클래스 메타 정보System : 시스템과 관련된 기본 기능들을 제공 java.lang 패키지는 모든 자바 애플리케이션에 자동 임포트 되기 때문에 임포트 구문을 사용하지 않아도 된다.          공부 내용: [인프런] 김영한의 실전 자바 - 중급 1편

Java 2024.06.02

[인프런] 객체 지향

객체 지향 특징객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 이용된다.역할과 구현을 분리하면,클라이언트는 대상의 역할(인터페이스)만 알면 된다.클라이언트는 구현 대상의 내부 구조를 몰라도 된다.클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다.클라이언트는 구현 대상 자체를 변경해도 영향을 받지 않는다. 자바 언어의 다형성을 활용역할 = 인터페이스구현 = 인터페이스를 구현한 클래스, 구현 객체객체를 설계할 때 역할과 구현을 명확히 분리객체 설계시 역할을 먼저 부여하고, 그 역할을 수행하는 구현 객체 만들기수 많은 객체 클라이언트와 객체 서버는 서로 협력 관계를 가진다.( 클라이언트 : 요청, 서버 : 응답 )자바 언어의 다형성오버라..

Java 2024.05.28

[인프런] 인터페이스

인터페이스자바는 앞서 공부한 순수 추상 클래스를 더 편리하게 사용할 수 있는 인터페이스라는 기능을 제공한다.인터페이스는 class가 아니라 interface라는 키워드를 사용하면 된다.인터페이스의 메서드는 모두 public, abstract이다.메서드에 public abstract를 생략할 수 있으며, 생략이 권장된다.인터페이스는 다중 구현( 다중 상속 )을 지원한다.인터페이스와 멤버 변수인터페이스에서 멤버 변수는 public, static, final이 모두 포함되어 있다고 간주된다.클래스, 추상 클래스, 인터페이스는 프로그램 코드, 메모리 구조상 모두 똑같다. 모두 자바에서는 .class로 다루어지고 인터페이스를 작성할 때도 .java에 인터페이스를 정의한다.인터페이스는 순수 추상 클래스와 비슷하다고..

Java 2024.05.28

[인프런] 추상 클래스

추상 클래스추상 클래스는 이름 그대로 추상적인 개념을 제공하는 클래스이다. 따라서 실체인 인스턴스가 존재하지 않는다.대신 상속으로 사용되고, 부모 클래스 역할을 담당한다.추상 클래스는 클래스를 선언할 때 앞에 추상이라는 의미의 abstract  키워드를 붙여주면 된다.추상 클래스는 기존 클래스와 완전히 같으나, new를 사용해 직접 인스턴스를 생성하지 못하는 제약이 추가된 것이다. 추상 메서드부모 클래스를 상속 받는 자식 클래스가 반드시 오버라이딩 해야 하는 메서드를 부모 클래스에 정의할 수 있다.이를 추상메서드라고 한다. 추상메서드는 추상적인 개념을 제공하는 메서드로 실체가 존재하지 않고, 메서드 바디가 없다.추상 메서드는 선안할 때 메서드 앞에 abstract 키워드를 붙인다.추상 메서드가 하나라도 ..

Java 2024.05.28

[인프런] 다형성과 메서드 오버라이딩

오버라이딩 된 메서드가 항상 우선권을 가진다. 기존 기능을 덮어 새로운 기능을 재정의 한다는 뜻의 오버라이딩이다.// 부모 변수가 자식 인스턴스 참조Parent poly = new Child();System.out.println("Parent -> Child");System.out.println("value = " + poly.value); // 변수는 오버라이딩Xpoly.method(); // 메서드 오버라이딩poly변수는 Parent 타입이므로 poly.value, poly.method( )를 호출하면 Parent타입에서 기능을 찾아서 실행한다.따라서 poly.value는 Parent타입에 있는 value값을 읽는다.poly.method( )는 Parent 타입에 있는 method(  )를 실행하려고..

Java 2024.05.28

instanceof

프로그래밍에서 다형성은 하나의 객체가 여러 타입의 특성을 가질 수 있음을 의미한다. 자바에서는 이를 통해 하나의 참조 변수로 여러 타입의 객체를 참조할 수 있다. 이런 유연성은 객체 지향 프로그래밍의 효율성을 크게 향상시킨다. 그러나 때로는 참조하고 있는 구체적인 객체의 타입을 알아야 할 필요가 있다. 이럴때 instanceof를 사용한다 !instanceof의 역할 주어진 객체가 특정 클래스나 인터페이스의 인스턴스인지 여부를 확인하는데 사용된다. 이 연산자는 참조형 변수가 실제로 참조하고 있는 객체의 타입을 확인할 때 매우 유용하다.안전한 다운캐스팅다운캐스팅을 수행하기 전에 먼저 instanceof를 사용해서 원하는 타입으로 변경이 가능한지 확인한 다음에 다운캐스팅을 수행하는 것이 안전하다. 다운캐스팅..

Java 2024.05.27