사전지식 function ghost() { this.name = "유령" this.getName = function () { return this.name; } } g = new ghost(); //ghost 객체 g를 생성 // console.log(g); 위와 같은 코드를 작성하면 new를 통해 ghost객체를 생성할 수 있다. 그러나 이렇게 코드를 작성하면 new를 통해 ghost객체를 생성할 때마다 this.getName이라는 함수를 계속 만들기 때문에 메모리를 많이 잡아먹을 수 있다. 이를 해결하기 위해 this.getName을 prototype을 이용하여 부모에게 넘긴다. function Ghost(){ this.name = "유령"; } Ghost.prototype.getName = func..
컬렉션(collection) JDK는 자료구조 과목에서 배운 많은 것들을 컬렉션으로 만들어 제공한다. 이것들은 매우 유용하게 사용되기 때문에 꼭 알아둘 필요가 있다. 컬렉션에는 Vector, ArrayList, LinkedList, HashMap등이 있다. 컬렉션의 특징 - 컬렉션은 제네릭으로 만들어져 있다. - 요소는 객체만 가능하다 ( int X, Integer O) Vector v = new Vector(); 제네릭의 개념 ArrayList 라는 것을 본 적이 있을 것이다. 여기서 E는 여러 종류의 타입으로 변신할 수 있도록 컬렉션을 일반화시키기 위해 사용한다. ArrayList라고 하면 ArrayList에 Integer도 String도 모두 넣을 수 있다. 를 구체화시켜서 ArrayList라고 하..
java11의 위치를 바꾸었더니 intellij에서 못 찾아 Found invalid Gradlle JVM configulation이라는 오류가 났다. File > project structure에 들어간다. project settings > project 에 sdk를 자신에게 맞는 java 버전으로 설정해준다. 이번에는 밑에 있는 Platform Settings > SDKs 에 들어간다 JDK home path에 맞는 위치를 지정해준다. ok를 누르고 밑에를 보면 뭔가 돌아가면서 잘 작동하는 것을 볼 수 있다!
mybatis에서 쿼리 여러개 한꺼번에 실행하는 방법은 아래에 있습니다. 그래도 개념을 잡고 가는 것을 추천합니다. PL/SQL Oracle’s Procedural Language extension to SQL의 약자 SQL과 절차적 언어의 특징을 결합한 것, pascal 에서 파생되었다. 조건문, 반복문 등을 지원 오라클에 내장된 Procedural Language 이다. 프로시저 다른 언어의 함수와 비슷하다. 그러나 특정한 로직을 처리하기만 하고 결과 값을 반환하지 않는다. 자주 사용하는 로직을 프로시저로 만들고 필요할때마다 호출할 수 있다. 여러가지 쿼리를 한번에 처리할 때, 또는 복잡한 처리를 할 때 사용할 수 있다. PL/SQL을 통해 프로시저를 만들 수 있다. PL/SQL을 이용하여 프로시저 ..
const obj = { 1:사과, 2:배, 3:바나나 } number = 1; //오류 obj.number; //undefiend //원인 //obj.1로 접근한 것과 같기 때문, 1을 숫자로 인식 //해결 obj[number.toString()]; // 문자로 바꿔줌 // 사과 //비슷한 예 find-number = 1; obj.find-number; //오류 -를 minus로 인식 //해결 obj[find-number]; //사과 javascript에서 object에 접근할 때 obj.1 처럼 숫자로 접근할 수 없습니다. 따라서 obj.number로 접근시 number = 1이라면 undefined로 오류가 납니다. 비슷하게 obj.find-number의 형식도 오류가 납니다. -를 minus로 인..
추상메소드 추상 메소드는 abstract를 사용하여 껍데기만 작성한 메소드다. 추상메소드가 있는 class를 추상클래스라고 한다. 추상클래스는 미완성 설계도에 비유하며, 인스턴스화 할 수 없다. 예를 들어 TV를 만드는데 대부분의 TV는 90%가 같은 기능이라고 하자. 그렇다면 설계도의 90%는 같으므로, 미리 90%가 만들어진 설계도를 작성해놓는 것이 좋을 것이다. 이때 쓰는 것이 바로 추상 클래스이다. 추상메소드의 디테일한 내용은 추상클래스를 상속받아 오버라이딩하여 구현해야 한다. abstract class Shape { // 추상 클래스 선언 public Shape() { } // 생성자 public void paint() { draw(); } // 일반적인 메소드도 구현할 수 있다. abstrac..
상속의 개념 상속(inheritance)은 실세계의 유전과 비슷하다. 상속을 받으면 부모의 모든 필드와 메소드를 자식이 그대로 받는다. 예를 들어 사람은 먹기, 자기를 할 수 있다. 사람을 상속받은 학생은 부모의 특성을 물려받아 먹기, 자기도 할 수 있을 뿐만 아니라 공부하기도 할 수 있다. 이처럼 상속을 통해 기능을 확장(extends)할 수 있다. 상속을 표현할 때는 extends를 사용한다. class Person { public void eat(){ System.out.println("eat"); }; public void sleep(){ System.out.println("sleep"); }; } class Student extends Person{ public void study(){ Syst..