Programming Languages 21

[JAVA] 자바의 컴포넌트 - 자바 빈(Bean) 조건과 필요성

재사용성을 높이기 위한 방법으로 인스턴스를 꼽았었다.이것을 조금 더 큰 덩어리, 즉 컴포넌트로도 활용이 가능하다. (자바의 클래스를 컴포넌트화)자바에서는 재사용을 위한 컴포넌트를 자바 빈(Bean)이라고 부른다.    1. 자바 빈(Bean) 조건💡 [ JavaBean 조건 ]public classpublic 생성자() : 매개변수 없어야 함property용 멤버변수(멤버필드)는 public이면 안됨property용 public setXXX/getXXX 메소드가 필요   이 형태를 취해야 클래스가 자바 빈의 형태를 띄게 된다.   2. 자바 빈(Bean) 필요성 그냥 인스턴스 만들어 쓰는 것으론 부족할까?다 이유가 있다. 그 중 하나가 바로, ■ 필터링 기능 (in 제공자 관점) -Case1 : 나쁜 ..

[JAVA] 절차지향 언어와 가장 큰 차이점

대표적인 절차지향 언어인 C언어.자바 프로그램과 C언어의 가장 큰 차이점은 바로, 이다.환경에 종속적인 C언어와 달리, 자바는 wirte once - run erveywhere의 특징을 가져어떤 OS 환경에서도 실행될 수 있으며 플랫폼에 독립적일 수 있다.  => 이것은 C언어와 자바의 컴파일 방식의 차이가 있어 가능하다. C언어의 경우 : A.c —(compile)—> A.obj(binary체계의 기계어: 리눅스 기반으로 환경에 종속적이다. 윈도우 실행X)반면 자바 컴파일은 run하는 환경 기계어 다 다르니, 어느 환경에서든 돌아갈 수 있는 .class를 만든다.기계에 독립적인 중간 코드를 만드는 과정인 것이다.JAVA의 경우 : A.java —(compile)—> A.class(byte code체계의..

[JAVA] 자바 컴파일 특징을 JDK 구성 요소를 통해 알아보자

0. 서론  [JAVA] 절차지향 언어와 가장 큰 차이점대표적인 절차지향 언어인 C언어.자바 프로그램과 C언어의 가장 큰 차이점은 바로, 이다.환경에 종속적인 C언어와 달리, 자바는 wirte once - run erveywhere의 특징을 가져어떤 OS 환경에서도 실행될 수hansjour.tistory.com      1. 자바 프로그램의 구성요소와 특징JDK의 구성을 보자. JDK > JRE > JVM 의 포함관계로 구성되어있다.  JDK (Java Development Kit)자바 소스 코드를 컴파일하여 실행 가능한 프로그램을 생성하는 개발 도구 세트-포함 항목컴파일러 (javac), 디버거, 개발 도구 (java, javac, javadoc, jar)JDK는 자바 개발자가 소스 코드를 작성하고, ..

[JAVA] 자바 기본형 타입 종류와 크기

자바의 기본형 변수는 메모리 스택 영역에 그 값을 바로 저장한다.(별도의 힙 메모리 영역에 값을 저장하고, 스택 영역의 변수가 이를 참조하는 참조형 변수와 차이) 이 기본형 변수의 크기 단위는 바이트(1바이트=8비트)로 표시한다. 8비트는 2^8 = 256개의 값을 표현할 수 있다.이 값들은 부호가 있을 때와 없을 때 범위가 달라지는데,각 자료형이 얼마의 값 범위를 내포하는지 알아보자.  1) 부호가 있는 경우 (Signed)-부호가 있는 형 종류 : byte, short, int, long-가장 왼쪽의 비트를 부호 비트로 사용한다.-정수형 데이터 타입에서 음수와 양수를 모두 표현 가능-부호 비트가 0이면 양수, 1이면 음수(= 2의 보수(2's complement) 표기법)-범위 계산법 :  -2^(n..

[JAVA] BufferedReader, BufferedWriter 사용해야 하는 이유

자바에서 입력은 Scanner 통해 받고,출력은 System.out.println("") 을 통해 한다. 평상시에는 이러한 입,출력이 문제가 되지 않지만 특정 상황의 경우 이것을 쓰는 것이 적합하지 않을 때가 있다. 바로 코딩테스트와 같은 시간 제한이 주어진 상황에서 컴파일이 완료되어야 하는 경우이다.원래 쓰던 대로 하면 시간 초과 오류가 뜬다.이 때 오류를 해결할 수 있는 방법은 입, 출력을 더 빠르게 받는 것이다!나는 코딩 테스트로 인해 이 방법을 알아보면서StringBuffer가 성능이 좋은 이유가 있듯이, BufferReader가 더 빠른 이유가 궁금해졌다. ■ 버퍼링 개념버퍼링은 데이터를 한 번에 조금씩 읽거나 쓰는 대신, 더 큰 덩어리로 읽거나 쓰는 방법이다. 이렇게 하면 디스크나 네트워크 같..

[JavaScript] this 키워드 쓰임 정리 / this를 변수에 저장하는 이유

JavaScript의 this 키워드 이해하기javascript에서 this 키워드는 매우 유용하지만, 동시에 혼란을 초래할 수 있는 요소이다.this는 함수가 호출되는 방식에 따라 달라지기 때문에, 이를 올바르게 이해하는 것이 중요하다.이번 글에서는 this가 어떤 경우에 어떻게 바뀌는지, 그리고 각 상황에서의 장단점을 설명하고자 한다. 1. 전역 컨텍스트에서의 this전역 컨텍스트에서 this는 전역 객체를 참조한다. 브라우저 환경에서는 window 객체가, Node.js 환경에서는 global 객체가 된다.console.log(this); // 브라우저에서는 window 객체, Node.js에서는 global 객체 장점: 전역 객체에 접근할 수 있다.단점: 전역 객체를 의도치 않게 수정할 위험이 있..

[Java] 자바 상속 구현 / extends, implements의 차이? / 개념과 사용법 정리

자바는 객체 지향 언어다. 객체 지향 언어 중 가장 큰 특징은 인데, 이러한 상속을 구현하는 형태를 간단히 정리하고자 한다. (객체 지향 언어에 대한 개념은 아래 글을 참고하면 좋다.) [JAVA] 객체 지향 언어(Object-Oriented Programming, OOP) 란? 자바는 객체 지향 언어(Object-Oriented Programming, OOP)이다. 객체 지향 언어(Object-Oriented Programming, OOP) 란? 현실 세계의 개체를 프로그램으로 표현하고 이러한 개체 간의 상호 작용을 통해 소프트웨어 hansjour.tistory.com 1. extends와 implements 개념 설명 자바에서 클래스와 인터페이스 간의 관계를 나타내는 방식이다. 1) extends :..

[JAVA] 객체 지향 언어(Object-Oriented Programming, OOP) 란?

자바는 객체 지향 언어(Object-Oriented Programming, OOP)이다. 객체 지향 언어(Object-Oriented Programming, OOP) 란? 현실 세계의 개체를 프로그램으로 표현하고 이러한 개체 간의 상호 작용을 통해 소프트웨어를 개발하는 방법론. 클래스를 사용하여 데이터와 해당 데이터를 처리하는 메서드를 하나의 단위로 묶고, 이를 통해 모듈화되고 재사용 가능한 소프트웨어를 구축할 수 있다. -절차적 프로그래밍 방식 => 순서대로만 처리하고 결과를 내는 방식 -구조적 프로그래밍 방식 => 프로그램을 함수단위로 나누고 함수끼리 호출하는 방식으로, 큰 문제를 해결하기 위해 문제를 작은 단위들로 나누어 해결한다. (Top-Down 방식) -객체 지향 프로그래밍 방식 => 구조적 ..

[JAVA/알고리즘] 깊이 우선 탐색 (DFS) 이란? / 자바 사용 예시 총 정리

탐색 : 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 어떤 메모리 구조를 가졌느냐에 따라 효율적인 탐색 방법이 갈리긴 하지만, 일반적으로 탐색에 쓰이는 알고리즘 중 대표적인 DFS에 대해 알아보도록 하겠다. 깊이 우선 탐색(DFS)은 이진 트리 구조를 기반의 효율적인 탐색 방법 중 하나이다. Depth First Search = 깊이 우선 탐색이라고도 부르며, 그래프와 트리의 깊은 부분을 우선적으로 탐색하는 알고리즘이다. ▷ 깊이 우선 탐색(DFS) 의 특징 -다음 분기로 넘어가기 전 해당 분기를 완벽하게 탐색하는 방식이다. -스택 메모리 구조에 기초하여 구현이 간단하다. -검색 대상 그래프가 크거나 경로의 특징을 저장해둬야 하는 문제에 유리 리프 노드(시작 정점)부터 시작해 정점과 연결 된 모든..

[JAVA/자료구조] Iterator와 반복문 / 자바에서 Iterator 사용하기

오늘은 자바의 Iterator의 개념과 장/단점을 알아보려고 한다. 먼저, Iterator가 무엇을 말하는지 살펴보자. 1. 개념 JAVA Iterator란? : 컬렉션 프레임워크(Collection Framework)에 저장된 데이터를 순회하는 인터페이스이다. 컬렉션 프레임워크는 List, Set, Map, Queue, ArrayList, Stack, LinkedList 등을 뜻한다. 2. 의의 -우리가 쓰는 웬만한 자료구조의 상위 개념에 속하는 인터페이스로, Iterator 문법 하나로 자료 구조의 일반적인 순회가 가능하다. 3. 대표 메소드 .hasNext() //다음 요소가 있는지 확인, return값 true/false .next() //다음 요소 호출 .remove() //요소 삭제 선언은 I..