[공공데이터 개발과정] 0320 자바

송경근·2023년 5월 13일
0

자바 배우기

목록 보기
6/18
post-thumbnail

복습!

객체지향형 프로그래밍

오브젝트 오리엔티드 프로그래밍
Object oriented programming

참치선물세트

컴파일러가 .java 파일을 .class 파일로 바꾸면서 디폴트 생성자 형성
이름은 클래스와 동일
기본생성자는 무조건 만들어놓는게 관례

생성자와 메서드

구조는 생성자와 메서드가 동일
생성자는 리턴이 없음

변수가 초기화 될때 스택 메모리에 저장

데이터 메모리 : 프로그램 시작부터 종료까지 남아있는 메모리
스텍 > { } 메소드 안(스코프)에 살아있음
힙 > { } 메소드 안에 살아있음. 인스턴스 변수에서! 안쓰고 있으면 가비지 컬렉터가 삭제해버림 자동으로 지워주기때문에 메모리 효율성이 좋아짐

클래스 메서드 내부에서
지역변수. 멤버변수는 사용 가능
인스턴스 변수 사용 불가능

클래스 메서드에서 인스턴스 변수는 사용 불가능하지만
일반 메소드에서는 클래스 변수 사용 가능
인스턴스가 생성되기전에 인스턴스 변수를 사용할 수 없다

인스턴스 만드는 과정

인스턴스 한 줄에 만들기

새로운 생성자를 만들어서 한줄로
클래스 맴버변수의 이름과 동일하게 작성

맴버변수와 매개변수의 이름이 같을 때
맴버변수를 구분하기 위해 this. 사용

클래스의 이름은 첫 글자가 대문자
인스턴스 이름은 첫 글자가 소문자

복습 끝!

협력

객체를 여러 개 만들 때 기능이 적은거부터 만든다

alt + shift + r : 문자 일괄 변경

Static 변수

각 인스턴스마다 따로 생성되는 변수가 아닌,
클래스 전반에 공통적으로 사용되는 기준 변수 필요시 사용

클래스 메서드 내부에서는 인스턴스 변수 사용 불가능

변수의 유효범위

지역변수 : 함수나 메서드 안에서만 사용할 수 있다.
	함수가 반환되면 할당 되었던 메모리 공간 해제되면서 삭제
	
멤버 변수 : 클래스 안에서만 사용할 수 있다.
	클래스가 생성될 때 힙메모리에 생성,
	가비지컬렉터에 의해 수거되면 메모리에서 사라짐
	
정적 변수(static변수) : 여러 인스턴스에서 공통으로 사용가능
	메모리에 상주, 프로그램 영역 중 데이터 영역에 존재

	

싱글톤 패턴

: 코드 작성 기법(현업에서 제일 많이 사용됨)
여러개의 인스턴스가 필요한 경우가 있고
인스턴스가 하나만 필요한 경우가 있는데

	>싱글톤 패턴
영업 1,2,3의 이익
	하나의 인스턴스로 활용하는게 낫겠죠
	공통적으로 묶어서 관리하는게 나은것들에 활용
	다 같은 객체이다.



Final static 상수
와 같은 메소드를 싱글톤 패턴이라고 한다??

사싫 아직 싱글톤 패턴을 잘 모르겠다... 이후 따로 포스트로 정리해야겠음

이클립스 (프레임워크)
Sts
Inteli-j
코드를 쉽게 구현하기 위해 구체적이고 유용한 기능을 포함해놓은 개발도구

Getter : 접근자
Setter : 생성자

This()는 생성자의 첫 행에 위치해야함

배열

데이터 타입 분류

참조 타입

객체의 번지를 참조하는 타입
주소값을 가져오는거임!
객체가 생성된 메모리 번지를 의미

메모리 영역

참조타입은 힙영역에 저장이 됨.
값(일반변수)은 스택에 저장

참조타입 변수 연산

비교연산자로 조사함.
주소가 같다면 동일한 객체
다르면 다른객체 참조한것

Null 값

아직 주소를 저장하지않았다는 뜻.
초기값으로 사용가능

NullpointException

변수가 null인 상태에서 객체의 데이터나 메소드를 사용하려 할 때 발생하는 예외
	가비지컬렉터가 자동으로 제거하기때문에 null값이 아닌 다른값으로 초기화 해줘야한다

문자열

문자열 리터럴은 String 클래스임!

Omg

내부적으로 new String()을 호출해 생성한 객체
그 객체를 가리키기 때문에 String 타입은 참조변수인 것.

문자열은 같은 주소를 가리키기때문에 메서드를 이용해서 비교한다.

Replace(a,b) 문자열 a를 b로 모두 교체
Split(구분자) 문자열 따로 분리 배열로 반환

구분자

' '(공백),','(콤마),'_'(언더바),'/'(슬래시),'-'(마이너스)
profile
개발자가 되려는 학생입니다

0개의 댓글