본문 바로가기

기술면접대비

(11)
[JAVA] 동작원리 자바는 OS에 독립적인 특징을 가지고 있는데, 그것이 가능한 이유는 JVM(Java Vitual Machine) 상에서 실행되기 때문 ! JVM에 대해 간략하게 설명하자면, 자바 소스코드 컴파일 후 생성된 파일이 해석(Interpret)과 Link없이 바로 JVM에 적재되고, OS로 부터 메모리를 할당받아 GC(Garbage Collection)를 통해 스스로 메모리 관리를 한다는 특징이 있습니다. 우선 위의 그림을 토대로 간략하게 동작원리에 대해 짚고 넘어가보겠습니다. 작성한 자바 소스(.java)를 자바 컴파일러를 통해 자바 바이트 코드(.class)로 컴파일합니다. 자바 바이트 코드 : JVM이 이해할 수 있는 코드로 아직 컴퓨터는 읽을 수 없는 반기계어입니다. 자바 바이트 코드의 각 명령어는 1바..
[JAVA] 리터럴(literal)이란? 리터럴(literal)이란? 프로그램에서 직접 표현한 값 소스 코드의 고정된 값을 대표하는 용어 (1) 종류 : 정수, 실수, 문자, 논리, 문자열
[WEB] SPA(Single Page Application)란? SPA(Single Page Application)란? 단일 페이지로 구성된 웹 어플리케이션으로 현재 웹 개발의 트랜드라고 합니당. 기존 웹 서비스는 요청시마다 서버로부터 리소스들과 데이터를 해석하고 화면에 렌더링하는 방식이다. SPA형태는 브라우저에 최초에 한번 페이지 전체를 로드하고, 이후부터는 특정 부분만 Ajax를 통해 데이터를 바인딩하는 방식이다. SPA의 장점 (1) 사용자 친화적 (빠른 반응성, 화면 전환 애니메이션) : client rendering, router (2) 서버 요청이 적음 (3) 개발이 간단하고 능률적 : 페이지를 렌더링 하기 위해 서버에 코딩할 필요가 없다. : 서버 이용 없이 파일로부터 개발을 시작할 수 있기 때문에 쉽다. (4) 네트워크 작업을 모니터링하고 페이지 요소..
[JAVA] Call by Value? Call by reference? 자바는 Call by Value 일까? Call by reference일까? => Call by Value 함수의 호출 방식 크게 2가지 (메소드로 인자값을 넘기는 방법) (1) Call by value (값에 의한 호출) : 인자로 받은 값을 복사하여 처리한다. 장점 : 복사하여 처리하기 때문에 안전. 원래의 값이 보존 단점 : 복사를 하기 때문에 메모리 사용량이 늘어남 (2) Call by reference (참조에 의한 호출) : 인자로 받은 주소를 참조하여 직접 값에 영향을 준다. 장점 : 복사하지 않고 직접 참조 하기에 빠름 단점 : 직접 참조를 하기에 원래의 값이 영향을 받음 1. 인자값으로 기본형을 사용했을 때 package 개념; public class Callby { public stat..
[JAVA] 접근 제어자 (public, private, protected, default) 접근 제어자(access modifier)란? 멤버들은 객체 자신들만의 속성이자 특징이므로 대외적으로 공개되는 것이 결코 좋은 것은 아니다. 그런 이유로 프로그래머가 객체의 멤버들에게 접근 제한을 걸 수가 있는데 자바에서는 이를 접근 제어자라 합니다. 종류 내부 클래스 하위 클래스 동일 패키지 모든 클래스 private O X X X (default) O X O X protected O O O X public O O O O 접근자 설명 public 모든 클래스에서 접근이 가능하다 protected 동일 패키지에 속하는 클래스와 하위 클래스 관계의 클래스에 의해 접근이 가능하다. (default) 같은 패키지 내에서만 접근이 가능하다 private 클래스 내에서만 접근이 가능하다 제어자(modifier) ..
[JAVA] 클래스/객체/인스턴스 클래스(Class)란? (1) 객체를 만들어 내기 위한 설계도 혹은 틀 (2) 연관되어 있는 변수와 메서드의 집합 객체(Object)란? (1) 소프트웨어 세계에 구현할 대상 (2) 클래스에 선언된 모양 그대로 생성된 실체 (3) '클래스의 인스턴스'라고도 부름 (4) 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖는다 (5) OOP(객체 지향 프로그래밍)의 관점에서 클래스의 타입으로 선언되었을 때 '객체'라고 부른다. 인스턴스(Instance)란? (1) 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체 => 즉, 객체를 소프트웨어에 실체화하면 그것을 '인스턴스'라고 부른다. (2) 실체화된 인스턴스는 메모리에 할당된다. (3) 인스턴스는 객체에 포함된다고 볼 수 있다. (4) OOP(객체 ..
[JAVA]오버로딩(Overloading) / 오버라이딩(Overriding) 자바에서 다형성을 지원하는 방법 => 메소드 오버로딩(Overloading)과 오버라이딩(Overriding) 오버로딩(Overloading) 같은 이름의 메소드를 여러 개 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술 static class Human { String name; String sex; int age; // 오버로딩 public Human() {} public Human(String name) {} public Human(String name, String sex) {} //public human(String sex, String name) {} 순서가 다르면 같은걸로 인정띠 public Human(String name, String sex, int age) {} public Hum..
[JAVA] StringTokenizer와 String split() 차이 Java에서 문자열을 원하는 구분자를 사용하여 분리하는 방법으로 StringTokenizer와 String의 메소드 split()를 사용한다. StringTokenizer - java.util에 포함되어있는 메소드 - 지정한 한가지 구분자로 문자열을 나눌 수 있다 - 구분자를 생략하면 공백이 기본 구분자 split() - String 클래스의 메소드로 지정한 구분자로 문자열을 나눠 배열에 저장 - 공백 문자열도 포함 StringTokenizer와 String.split()의 차이 - String.split()은 정규식을 사용하기 때문에 StringTokenizer가 속도 측면에서 성능이 좋다. - 가변적인 요소가 많은 문자열이나 정확한 분리가 필요할 땐 split() 사용이 유용 => split()은 다..