Java 7

오버로딩(overloading) & 오버라이딩(overriding)

이름이 너무 비슷해서 헷갈리기 쉬운부분이다. 하지만 서로 완전히 다른 기술이다. 쉽게말해, 오버로딩 = 기존에 없던 새로운 메소드를 만드는것(이름만 같고 아예 다른 메소드) 오버라이딩 = 상속받고 있는 메소드를 자손클래스에서 메소드 내용을 변경하는것. class Car{ void carMethod(){} } class superCar extends Car{ void carMethod(){}//조상의 메소드를 오버라이딩 void carMethod(int i){}//같은 클래스의 carMethod()를 오버로딩 void superCarMethod(){} void superCarMethod(int i){} //superCarMethod()를 오버로딩 } 이처럼 오버로딩은 메소드 이름은 같지만, 매개변수를 추가..

Java 2024.02.01

Java 상속(inheritance)

상속이란? 기존에 사용하고 있던 클래스를 이용하여서 새로운 클래스를 작성하는 것이다. 왜 사용하나? 상속을 통해서 클래스를 작성하면 적은 양의 코드로 새로운 클래스를 작성할 수 있고, 코드를 공통으로 관리하기 때문에 코드의 추가및 변경이 매우 용이하기 때문이다. Chile 클래스와 Parent 클래스가 있다고가정하면 class Child extends Parent { // ... } 이렇게 작성하면 된다. 이 두 클래스는 서로 상속 관계에 있다고 한다. 상속해주는 오른쪽 클래스를 "조상 클래스" 라고 하며, 왼쪽에 상속받는 클래스를 "자손 클래스"라고한다. 조상 클래스 부모(parent)클래스, 상위(super)클래스, 기반(base)클래스 자손 클래스 자식(chile)클래스, 하위(sub)클래스, 파생..

Java 2024.01.24

형변환(캐스팅,casting)이란?

형변환이란, 변수 또는 상수의 타입을 다른 타입으로 변환하는것이다. 예를들어, int타입의 값과 float타입의 값을 더하는 경우, 먼저 두값을 같은 타입으로, 즉, 둘다 float타입으로 변환한 다음에 더해야한다. 형변환방법 형변환하고자 하는 변수나 리터럴의 앞에 변환하고자 하는 타입을 괄호와 함께 붙혀준붙혀주면된다. (타입)피연산자 예를들어, double d = 112.8; int score = (int)d; //double타입의 변수를 int타입으로 형변환 int score = (int)112.8;//변수 d의 값을 읽어와서 형변환한다. int score = 112;//형변환의 결과인 112를 변수 score에 저장한다. 변환 수식 결과 int -> char (char) 65 'A' char -> ..

Java 2024.01.19

JVM(Java Virtual Machine) 이란?

JVM이란 Java virtual machine을 줄인것으로 "자바를 실행하기 위한 가상 컴퓨터" 라고 할수 있다. JVM의 역할은 자바 바이트 코드를 운영체제가 인식할 수 있도록 해석해주는 소프트웨어이다. 아무리 컴퓨터라고해서 실제하는 컴퓨터가 아닌, 소프트웨어로 구현된 컴퓨터라는 뜻으로 컴퓨터 속의 컴퓨터 라고 생각하면 편할 것 이다. 자바로 작성된 애플리케이션은 모두 이 가상 컴퓨터(JVM)에서만 실행되기 때문에, 자바 애플리케이션이 실행되기 위해서는 반드시 JVM이 필요하다. 위 이미지를 보면 일반 애플리케이션은 운영체제와 바로 붙어 있어서 운영체제에 종속적이다. 그래서 Windows가 아닌 다른 운영체제에서 실행시키기 위해선 그 운영체제에 맞게 애플리케이션을 변경해야된다. 그에 반해, Java ..

Java 2024.01.17

자바 특징 정리

Java의 특징 1. 운영체제에 독립적이다. 기존의 언어는 한 운영체제에 맞게 개발된 프로그램을 다른 종류의 운영체제에 적용하기 위해서 많은 노력이 필요하였지만, 자바는 그렇지 않다. JVM이라는 자바가상머신을 통해 가능한 것인데, 자바 응용프로그램이 운영체제나 하드웨어가 아닌 JVM하고만 통신하고 JVM이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환해준다. 2024.01.17 - [Java] - JVM(Java Virtual Machine) 이란? 자바로 작성된 프로그램은 운영체제에 독립적이지만, JVM은 운영체제에 종속적이어서 썬에서는여러 운영체제에 설치할 수 있는 서로 다른 버전의 JVM을 제공하고 있다. 2.객체지향 언어이다. 자바는 유명한 객체지향 프로그래밍 ..

Java 2024.01.17

[Java] 트랜잭션(transaction)에 대해서

1.트랜잭션이란? 트랜잭션이란 데이베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위를 설명한다. A가 B에게 만원을 보낸다고 가정한다. 우선 A의 통장에서 만원을 출금하고, B의 통장에 만원을 입금한다. 그 순간, 출금과 입금을 합쳐서 "송금"이라고 하나의 논리적 기능을 이루는 것이다. 2.트랜잭션의 성질(ACID) 1.원자성(Atomicity) 트랜잭션은 데이터베이스에 모두 반영되거나 전혀 반영되지 않아야한다. 예) 송금 과정에서 A에게서 만원을 출금했지만, B에게 만원을 입금하지 않는 경우가 발생하면 안된다. 2.일관성(Consistency) 트랜잭션이 성공적으로 완료되면 일관적인 데이터를 유지한다. 예) 데이터베이스에서 정한 무결성 제약 조건을 항상 만족해야한다. 3.독립성..

Java 2024.01.16

싱글톤 패턴(Singleton Pattern)

싱글톤 패턴은 오직 하나의 유일한 객체를 만들기 위한 코드 패턴이다. 다시 말해, 여러가지 이유를 이점으로 . 객체가 필요할 때 똑같은 객체를 새로 만들지 않고,기존의 객체를 가져와 활용하는 기법을 말한다. 싱글톤 패턴을 사용하는 이유 1. 메모리 측면의 이점 싱글톤 패턴을 사용하게 된다면 한개의 인스턴스만을 고정 메모리 영역에 생성하고 추후 해당 객체를 접근할 때 메모리 낭비를 방지할 수 있다. 2. 속도 측면의 이점 생성된 객체를 사용할 때는 이미 생성된 객체를 활용하여 속도 측면에 이점이 있다. 3. 데이터 공유가 쉽다 *_전역으로 사용하는 객체이기 때문에 다른 여러 클래스에서 데이터를 공유하며 사용할 수 있다. 하지만 동시성 문제가 발생할 수 있어 이점은 유의하여 설계하여야 한다. 싱글톤 패턴를 ..

Java 2024.01.15