전체 글
-
JVM 구조 (자바 가상 머신)Java 2022. 11. 22. 20:35
JVM - 자바 가상 머신 - 자바가 OS에 무관하게 실행될 수 있도록 해준다. - Garbage Collector를 사용해 메모리를 관리한다. - Stack 기반으로 작동 JVM의 구조 - Garbage Collector / Class Loader / Execution Engine / Runtime Data Area로 나뉨 1. Garbage Collector : Heap 메모리의 객체 중 참조하지 않는 객체를 탐색해 제거 2. Class Loader : Runtime 시 동적으로 클래스를 로드, 링크를 통해 배치 작업을 한다. 3. Execution Engine : Runtime Data Area에 배치된 바이트 코드들을 명령어 단위로 읽어서 실행 4. Runtime Data Area : 메모리 영역..
-
자바(JAVA) 기술 면접Java 2022. 11. 16. 21:22
자바 - 객체 지향 프로그래밍 언어 : 데이터를 추상화해 객체를 만들어 그 객체간의 상호작용으로 프로그램을 만드는 언어 객체 지향 프로그래밍 특징 - 다형성 : 어떤 객체를 참조하는지에 따라 해석이 가능하고 다양하게 쓰임 - 상속 : 객체 간의 부모 자식 관계를 정립해 기능을 주고 받음 - 캡슐화 : 변수나 함수를 하나의 단위로 묶기가 가능 / 정보은닉(public, private, protect) 자바의 메모리 영역 - 메소드 영역 : 전역변수와 static 변수를 저장, 프로그램이 종료될 때까지 메모리에 남아있다. - 스택 영역 : 지역변수와 매개변수 저장, 새로운 데이터가 할당되면 이전 데이터는 지워진다. - 힙 영역 : new로 생성되는 객체가 저장, 가비지 컬렉션에 의해 메모리 관리 JVM - ..
-
자바스크립트 화살표 함수JavaScript 2022. 10. 27. 20:50
기본적인 함수 표현식만 쓰다가, 갑자기 화살표함수를 읽거나 쓰려고 하니 이질감이 있는 분들이 읽으면 좋은 글입니다. 기본적인 함수의 형태 function func() { // code } // callback setTimeout(function() { // code }, 1000); 화살표 함수 형태 1. 함수의 이름을 변수명으로 잡기 (함수의 이름이 있는 경우) 2. 기본적인 구조에서 function을 =>로 치환 3. 화살표를 () 뒤에서 앞으로 이동 let func = () => { // code } // callback setTimeout(() => { // code }, 1000);
-
자바스크립트 set으로 배열 만들기JavaScript 2022. 10. 27. 20:24
* set - 고유의 배열을 만들 수 있다. - 중복없이 유일한 값을 저장할 때 사용한다. - 이미 존재하는지 확인할 때 유용하다. - 모든 타입이 저장 가능하다. let setArr = new Set(); console.log(toString.call(setArr));// 변수의 타입이 set이다. setArr.add("kkk"); setArr.add("set"); setArr.add("set"); console.log(setArr.has("kkk"));// 존재여부를 boolean으로 반환 setArr.forEach(function(e) { console.log(e);// 3개를 add했지만, 2개가 나온다. - 중복을 허용하지 않음 }); setArr.delete("set");// 요소를 삭제한다.
-
자바스크립트 Destructuring objectJavaScript 2022. 10. 26. 20:42
Destructuring object - 객체의 속성을 고유한 변수로 압축하고 해제 할 수 있다. let character = { name : "kkk", age : 20 } let {name, age} = character; console.log(name, age);// kkk , 20 * 활용 1) 배열에서 필요한 변수의 값을 사용하는 것도 가능 let arr = [ { "one" : "a", "two" : "b" }, { "one" : "c", "two" : "d" } ]; // #1 let [,aa] = arr; console.log(aa); // {one: 'c', two: 'd'} // #2 let {one, two} = aa; console.log(one, two);// c d let arr..
-
자바스크립트 spread operatorJavaScript 2022. 10. 25. 20:55
spread operator - 배열을 펼쳐서 배열안에 넣는다. let arr = ["a","b","c"]; let newArr = [...arr];// arr을 펼쳐서 배열을 만듬 console.log(arr === newArr); // false : 값은 같지만, 참조하는 부분이 다르다. * 활용 function plusVal(a, b, c) { return a+b+c; } let plusArr = [10, 11, 12]; console.log(plusVal(...plusArr));// 33
-
자바스크립트 객체 생성 방법JavaScript 2022. 10. 25. 20:47
es6에서의 객체 생성 방법 1번째 방법 const name = "kkk"; const age = "20"; const obj = { name : name, age : age } console.log(obj); 2번째 방법 function getObj() { const name = "kkk"; const getName = function() { return name; } return { getName : getName, setName : setName } } var obj2 = getObj(); console.log(obj2); console.log(obj2.getName());
-
자바 listJava 2022. 10. 24. 21:23
- 래퍼 클래스(wrapper class) : 기본 자료형을 클래스로 만들어 놓은 것을 의미한다. ex) int - Integer / char - Character / boolean - Boolean # list - 배열은 한번 선언하면 프로그램에서 그 크기를 바꿀 수 없다. - ArrayList 클래스는 데이터가 입력되면, 자동으로 크기가 커지고, 데이터가 제거되면, 자동으로 크기가 작아진다. - 중간에 데이터가 삽입되면, 데이터가 삽입될 위치부터 모든 데이터가 뒤로 이동되고, 중간의 데이터가 제거된 다음 위치부터 모든 데이터가 앞으로 이동한다. - 기본 자료형 데이터를 저장하는 ArrayList를 만들어야 하는 경우에는 래퍼 클래스를 사용한다. 기본 구조 및 활용 // 기본 구조 ArrayList l..