본문 바로가기

Java

[ Java ] EJB와 POJO 프로그래밍 💡 EJB(Enterprise Java Bean)와 POJO 프로그래밍 [ POJO의 등장 ] EJB란 엔터프라이즈 개발을 단순화하기 위해 썬 사에서 만든 Java 스펙이다. 스프링이 등장하기 이전에는 EJB가 독점을 하고 있었기 때문에 코드들이 EJB 기술에 지나치게 종속되있었다. import javax.ejb.EJBException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; public class OrdersService implements SessionBean { private SessionContext ctx; public Orders placeOrder(String menuName) { Orders orders = new O.. 더보기
[Java] JVM 메모리 구조 자바 가상 머신이라고 불리는 JVM은 자바 프로그램을 실행하고, 다른 언어로 작성된 것도 자바 btye code로 컴파일하여 실행할 수 있도록 만들어주는 소프트웨어이다. 자바로 개발된 프로그램을 실행하면 JVM은 OS로부터 메모리를 할당한다. 자바 컴파일러(Javac)가 자바 소스코드(.java)를 자바 바이트코드(.class)로 컴파일 한다. Class Loader를 통해 JVM Runtime Data Area로 로딩한다. Runtime Data Area로 로딩된 .class들은 Execution Engine을 통해 해석한다. 해석된 바이트 코드는 Runtime Data Area의 각 영역에 배치되어 수행하며 이 과정에서 Execution Engine에 의해 GC의 작동과 스레드 동기화가 이루어진다. .. 더보기
[자바의정석/7] 객체지향에 대하여 상속(Inheritance) 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것. 적은 양의 코드로 새로운 클래스를 작성할 수 있고 공통적으로 관리할 수 있다 -> 추가 및 변경이 매우 용이 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여 자손 클래스는 조상 클래스의 모든 멤버를 상속 받으므로 항상 조상 클래스보다 같거나 많은 멤버를 갖는다. 그래서 상속을 받는다는 것은 조상 클래스를 확장(extends)한다는 의미로 해석할 수 있다. 생성자와 초기화 블럭은 상속되지 않는다. 멤버만 상속된다. 자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다. super 자손 클래스에서 조상 클래스로부터 상속받은 멤버를 참조하는데 사용되는 참조 변수이다. 멤버변수와.. 더보기
[자바의정석/6]객체지향 프로그래밍이란 객체지향언어 코드의 재사용성이 높다. 코드의 관리가 용이하다. 제어자와 메서드를 이용한 신뢰성이 높은 프로그래밍을 가능하게 한다. 상속, 다형성과 같은 객체지향개념을 학습할 때 재사용성과 유지보수 그리고 중복된 코드의 제거, 이 세가지 관점에서 보면 보다 쉽게 이해할 수 있다. 객체지향 프로그래밍은 프로그래머에게 거시적 관점에서 설계할 수 있는 능력을 요구하기 때문에 어렵다. 너무 객체지향개념에 얽매여서 고민하기 보다는 일단 프로그램을 기능적으로 완성한 다음 어떻게 하면 보다 객체지향적으로 코드를 개선할 수 있을지를 고민하여 점차 개선해나가는 것이 좋다. 클래스와 객체 클래스 클래스란 객체를 정의해 놓은 것이다. 클래스는 객체를 생성하는데 사용된다. 객체 실제로 존재하는 것. 사물 또는 개념. 객체가 가.. 더보기
[자바의정석/5]배열이란 배열(array) 배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 타입[] 변수이름, 타입 변수이름[] 과 같이 배열을 선언할 수 있다. 배열을 선언하는 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어질 뿐이고, 배열을 생성해야만 비로소 값을 저장할 수 있는 공간이 만들어지는 것이다. 변수 이름 = new 타입[길이]; 인덱스는 배열의 요소마다 붙여진 일련번호로 범위는 0~배열길이-1 까지이다 배열의 길이는 거의 제약이 없다고 할 수 있고, 0이 될수 있다 int[] score = new int[]{5,6,7,8,9}; int[] score = {5,6,7,8,9};//new int[] 생략 가능 int[] score; score = new int[]{5,6,7,8,9}; .. 더보기
[자바의정석/4]조건문과 반복문이란 조건문 - if, switch 만일(if) 조건식이 참(true)이면 괄호 {} 안의 문장들을 수행해라 //if문에 사용되는 조건식을 일반적으로 비교연산자와 논리연산자로 구성된다. if(90 더보기
[자바의정석/3]연산자란 연산자 Operator 연산자 - 연산을 수행하는 기호 (+, -, *, / 등) 피연산자 - 연산자의 작업 대상 (변수, 상수, 리터럴, 수식) 연산자 결합규칙 종류 결합규칙 연산자 우선순위 단항 연산자 * / % -------> +. - -------> 비교 연산자 -------> . =. instanceof -------> == != 논리 연산자 -------> & -------> ^ -------> | -------> && -------> || 삼항 연산자 -------> ? : 대입 연산자 좌변 값이 크면 true 아니면 false = 좌변 값이 크거나 같으면 true 아니면 false 1, 1 -> 0 쉬프트 연산자 x > n 은 x / 2^n 결과와 같다. 어떠한 알고리즘 문제를 풀 때, 비.. 더보기
[자바의정석/2]변수란 변수(variable) 프로그래밍언어에서의 변수란, 값을 저장할 수 있는 메모리상의 공간을 의미한다. "변수란, 단 하나의 값을 저장할 수 있는 메모리 공간" 변수의 선언과 초기화 int age; //age 라는 이름의 변수를 선언 int - 변수타입은 변수에 저장될 값이 어떤 타입인지를 지정하는 것이다. age - 변수이름 int age = 25; // 변수 age를 선언하고 25로 초기화한다. int x=0; int y=0; int x=0, y=0; //변수를 한번에 선언하기도 한다. "변수의 초기화란, 변수를 사용하기 전에 처음으로 값을 저장하는 것" 두 변수의 값 교환하기 temp = x; x = y; y = temp; //두 변수를 교환하기 이해 임시값을 저장할 변수를 지정한다. 변수의 명명규칙.. 더보기