일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- SpringFramework
- C
- 자바
- 밤비노
- servlet
- msa개념
- DB
- html
- Doit알고리즘코딩테스트
- 웹개발
- Java
- 리액트프로젝트
- jsp
- Programming
- 웹개발자
- jvm메모리구조
- sql
- MSA
- Bambino
- coding test
- job
- 데이터베이스
- 안드로이드
- MVC
- 웹개발기초
- BCIT
- two pointers
- microservices
- mysql
- CSS
- Today
- Total
목록JAVA/Basic (23)
초보 개발자의 기록

매개변수가 있는 생성자(constructor) - 생성자도 메서드처럼 매개변수를 선언하여 호출 시 값을 넘겨받아 인스턴스의 초기화 작업에 사용가능 - 인스턴스마다 각기 다른 값으로 초기화되어야하는 경우가 많기 떄문에 매개변수를 사용한 초기화는 매우 유용 생성자에서 다른 생성자 호출 - 같은 클래스의 멤버들 간에 서로 호출할 수 있는 것처럼 생성자 간에도 서로 호출이 가능 조건 1. 생성자의 이름으로 클래스이름 대신 this를 사용 2. 한 생성자에서 다른 생성자를 호출할 떄는 반드시 첫 줄에서만 호출이 가능 - 생성자에서 다른 생성자를 첫 줄에서만 호출이 가능하도록 한 이유는 생성자 내에서 초기화 작업도중에 다른 생성자를 호출하게 되면, 호출된 다른 생성자 내에서도 멤버변수들의 값을 초기화를 할 것이므로..

import? - 소스코드를 작성할 떄, 다른 패키지의 클래스를 사용하려면 패키지명이 포함된 틀래스 이름을 사용해야함 - 클래스 코드를 작성하기 전에 import문으로 사용하조가 하는 클래스의 패키지를 미히 명시해주면 소스코드에 사용되는 클래스이름에서 패키지명 생략가능. - import문의 역할은 컴파일러에게 소스파일에 사용된 클래스의 패키지에 대한 정보를 제공하는 것 - 컴파일시에 컴파일러가 import문 통해 소스파일에 사용된 클래스들의 패키지를 찾아, 클래스명 앞에 패키지명 붙여줌 - 이클립스 단축키 : ctrl+shift+o 선언 - 모든 소스파일(.java)에서 import문은 package다음에 클래스 선언문 이전에 위치 - import문은 한 소스파일에 여러번 선언가능 - 단, 같은 패키지 ..

패키지? - 클래스의 묶음 - 클래스 또는 인터페이스를 포함시킬 수 있음 서로 관련된 클래스들끼지 그룹단위로 묶어놓아, 클래스를 효율적으로 관리가능 - 자신만의 패키지 체계를 유지함으로 다른 개발자가 개발한 클래스 라이브러리의 클래스와 이름이 충돌되는것 방지 - 패키지도 다른 패키지를 포함할 수 있느며, '.' 점으로 구분한다. -하나의 소스파일에는 첫 번째 문장으로 단 한번의 패키지 선언만을 허용 - 모든 클래스는 반드시 하나의 패키지에 속해야 함 - 패키지는 점 (.) 을 구분자로하여 계층구조로 구성가능 - 패키지는 물리적으로 클래스 파일(.class) 을 포함하는 하나의 디렉토리 선언 -클래스나 인터페이스의 소스파일(,java) 의 맨 위에 한줄 작성 package 패키지명; 조건 - 대소문자 모두..

생성자? - Object value setting - 인스턴스(객체) 가 생성될 때 호출되는 '인스턴스 초기화 메서드' - 인스턴수 변수의 초기화 작업에 주로 사용. 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용 - 클래스 내에 선언 - 메서드와 유사하지만 리턴값이 존재하지 않음 조건 - 이름은 클래스의 이름과 동일해야 함 - 리턴값이 없음 (생성자도 메서드 이기때문에 void 붙여야 하지만 모든 생성자가 리턴값이 없으므로 생략된 것임) - 생성자도 오버로딩이 가능하므로, 하나의 클래스에 여러개 존재 가능 - 기본 생성자(default constructor) 클래스 내부에 하나 이상의 생성자가 존재하지 않으면 자바 컴파일러가 컴파일시에 기본 생성자를 삽입 만약 하나 이상의 생성자가 클래스에 존재..

제어자란? - 클래스, 변수 또는 메서드의 선언부에 함꼐 사용되어 부가적인 의미를 부여 - 제어자의 종류는 접근 제어자, 그 외의 제어자로 나뉨 접근제어자 (access modifier) - 멤버 또는 클래스에 사용되아, 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할 - 접근 제어가사 지정되어있지 않다면, 접근 제어자가 default임을 의미 - 사용될 수 있는 곳 : 클래스, 멤버변수, 메서드, 생성자 - public > protected > default(friendly,package) > private - private : 같은 클래스 내에서만 접근이 가능 - default : 같은 패키지 내에서만 접근이 가능 - protected : 같은 패키지 내에서, 그리고 다른 패키지..

객체지향 주요개념 : Encapsulation (캡슐화) , Inheritance(상속), Polymorphism(다형성) 캡슐화? - 객체의 속성(data field)와 행위(method)를 하나로 묶는다 - 실제 구현 내용의 일부를 외부에 감추어 은닉한다. 외부에 감추는 방법 - 은늑의 정도를 접근지정자로 기술하고 해당 영역에 들어가는 속성, 메서드를 제한 - 인터페이스는 공개하고 구현부는 은닉한다 (public inteface, private implementation) 장점 - 정보보호, 정보은닉 - 생산성 : 구현부를 몰라도 인터페이스 이용해 소통가능 - 생산성, 응집도 높아짐 참고> API : Application Programming Interface - 유지 보수성 : 인터페이스로 소통하므..

JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 주요 영역(method area, call stack, heap) Method Area Call stack Heap 1. 메서드 영역 (method area) - 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스 파일(*.class) 을 읽어서 분석하여 클래스에 대한 정보 (클래스 데이터) 를 이곳에 저장한다. 이 때, 그 클래스의 클래스 변수(class variable) 도 이 영역에 함께 생성 2. 힙 (heap) - 인스턴스가 생성되는 공간. 프로그램 실행 중 생성되는 인스턴스 모두 이곳에 생성된다. 즉, 인스턴스변수들이 생성되는 공간 3. ..

변수? 변수는 클래스변수, 인스턴스변수, 지역변수 모두 세 종류가 있다. 변수의 종류를 결정짓는 중요한 요소는 변수의 선언된 위치 멤버 변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버 변수 중 static이 붙은 것은 클래스 변수 붙지 않은 것은 인스턴스 변수이다. 변수의 종류 선언위치 생성시기 클래스변수 (class variable) 클래스 영역 클래스가 메모리에 올라갈때 인스턴스변수 (instance variable) 인스턴스가 생성되었을 때 지역변수 (local variable) 클래스 이외의 영역 (메서드, 생성자, 초기화 블럭 내부) 변수 선언문이 수행되었을 때 메서드? 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것 기본적으로 수학의 함수와 유사. 어떤 값을 입력하면 이 값으로 작..

객체 지향 언어의 역사 부품에 해당하는 객체(Object)를 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법 객체지향이론의 기본 개념은 '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다' 라는 것이다. 실제 사물의 속성과 기능을 분석한 다음, 데이터(변수)와 함수로 정의함으로써 실제 세계를 컴퓨터 속에 옮겨 놓은 것과 같은 가상 세계를 구현하고 이 가상세계에서 모의 시험을 함으로 많은 시간과 비용을 절약할 수 있었다. 객체지향이론은 상속, 캡슐화, 추상화 개념을 중심으로 점차 구체적으로 발전 객체 지향언어는 기존의 프로그래밍 언어에 몇가지 새로운 규칙을 추가한 보다 발전된 형태의 것이다. 코드 간에 서로 관계를 맺어 줌으로써 보다 유..