자바 203

[JAVA] 실전 자바 - 자바 메모리 구조와 static

자바 메모리 구조 메서드 영역: 클래스 정보 보관 스택 영역: 실제 프로그램이 실행되는 영역 힙 영역: 객체(인스턴스)가 생성되는 영역 (new 키워드) 메서드 영역 클래스 정보 static 변수들 상수 관리 스택 영역 지역 변수, 중간 연산 결과, 메서드 호출 정보 등 힙 영역 객체와 배열 가비지 컬렉션이 이뤄지는 영역 같은 클래스에서 생성된 객체여도 인스턴스 내부의 변수 값은 다를 수 있지만 메서드는 공통된 영역을 공유한다. 따라서 메서드는 메서드 영역에서 공통으로 관리되고 실행된다. 멤버 변수(필드)의 종류 인스턴스 변수: static이 붙지 않은 멤버 변수 인스턴스를 만들 때 마다 새로 만들어진다. 클래스 변수: static이 붙은 멤버 변수 클래스 변수 = static 변수 = 정적 변수 메서드..

카테고리 없음 2024.01.30

[JAVA] 실전 자바 - 접근 제어자

접근 제어자 private 해당 클래스 내부에서만 호출 가능 default(package-private)같은 패키지 안에서 호출은 허용 protected같은 패키지안에서 호출은 허용, 패키지가 달라도 상속 관계의 호출은 허용 public모든 외부 호출을 허용   💡 private  💡 생성자도 접근 제어자 관점에서 메서드와 같다. (접근 제어자 동일하게 적용)  접근 제어자 사용 - 클래스 레벨클래스 레벨의 접근 제어자는 public, default 만 사용 가능private, protected는 사용 불가public 클래스는 반드시 파일명과 이름이 같아야 한다.하나의 자바 파일에 public 클래스는 하나만 등장 가능하나의 자바 파일에 default 클래스는 무한정 만들 수 있음 캡슐화데이터와 메서..

BACK/JAVA 2024.01.30

[JAVA] 실전 자바 - 생성자, this

this인스턴스 자신의 참조값 멤버 변수와 매개 변수의 이름이 같을 때,매개 변수가 코드 블럭의 안쪽에 있기 때문에 더 우선순위를 가져 매개변수에 접근하게 된다.이런 경우 멤버 변수에 접근하려면 앞에 this.를 붙인다. 생성자 객체를 생성하자마자 즉시 필요한 기능을 수행할 수 있게 해준다.  이름은 클래스와 같다.반환 타입이 없다.나머지는 메서드와 같다.   생성자 호출인스턴스를 생성하고 나서 즉시 호출된다.new 클래스이름(생성자에 맞는 인수 목록)   생성자 장점-중복 호출 제거객체 생성 직후에 작업을 처리하기 위한 메서드를 한번 더 호출할 필요가 없어진다.  -생성자 호출 필수객체를 생성할 때 직접 정의한 생성자가 있다면 직접 정의한 생성자를 반드시 호출해야 한다.안하면 컴파일 오류가 나기 때문에..

BACK/JAVA 2024.01.30

[JAVA] 실전 자바 - 객체 지향 프로그래밍

객체 지향 프로그래밍 💡 객체 지향 프로그래밍은 실제 세계의 사물이나 사건을 객체로 보고객체들 간의 상호작용을 중심으로 하는 프로그래밍  객체 지향 언어는 클래스 내부에 속성(데이터, 멤버 변수)와 기능(메서드)을 함께 포함할 수 있다.객체는 자신의 메서드를 통해 자신의 멤버 변수에 접근할 수 있다.  캡슐화 속성과 기능을 하나로 묶어 필요한 기능을 메서드를 통해 외부로 제공하는 것  💡 객체지향 프로그램은 속성과 기능이 하나의 클래스에 묶여 캡슐화가 되어 있는 것  객체가 온전히 살아있는 느낌!  절차 지향 프로그래밍 vs 객체 지향 프로그래밍  -객체 지향: 객체의 설계와 관계를 중시한다. 객체들 간의 상호작용을 중심으로 프로그래밍한다.   -절차 지향: 데이터와 기능이 분리되어 있고, 프로그램이..

BACK/JAVA 2024.01.30

[JAVA] 실전 자바 - 기본형과 참조형

기본형과 참조형 기본형 실제 사용하는 값을 변수로 담을 수 있다. 메서드로 기본형 데이터를 전달 하면 값이 복사되어 전달된다. 참조형 실제 객체의 위치를 저장한다. ex)객체, 배열, 클래스, String(클래스) 메서드로 참조형 데이터를 전달하면 참조값이 복사되어 전달된다. 💡 기본형은 소문자로 시작한다. 💡 기본형을 제외한 나머지는 모두 참조형이다. 💡 클래스는 대문자로 시작한다. 클래스는 모두 참조형이다. 대원칙 - 자바는 항상 변수의 값을 복사해서 대입한다. 변수 대입 기본형이면 변수에 들어 있는 실제 사용하는 값을 복사해서 대입하고, 참조형이면 변수에 들어 있는 참조값을 복사해서 대입한다. 메서드 호출 메서드 호출 시 사용하는 매개변수(파라미터)도 결국 변수다. 기본형: 메서드 내부에서 매개변수..

BACK/JAVA 2024.01.30

[JAVA] 실전 자바 - 클래스와 데이터

클래스와 객체 public class Student { String name; int age; int garde; } 클래스는 사용자 정의 타입을 만들기 위한 설계도이다. 클래스에 정의한 변수들을 멤버 변수, 또는 필드라 한다. 클래스를 사용해 실제 메모리에 만들어진 실체를 객체 또는 인스턴스라고 한다. ⇒ 클래스는 설계도이고, 이 설계도를 기반으로 실제 메모리에 만들어진 실체를 객체 또는 인스턴스라고 한다. -클래스: 객체를 생성하기 위한 설계도. 객체가 가져야할 속성(변수)와 기능(메서드)를 정의 -객체: 클래스에서 정의한 속성과 기능을 가진 실체 -인스턴스: 특정 클래스로부터 생성된 객체 (객체가 어떤 클래스에 속해있는지 강조할 때 사용) 객체 생성 Student student1 = new Stud..

BACK/JAVA 2024.01.30

[Spring] Servlet 동작 방식

서블릿이란? 서블릿이란 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술입니다. 서블릿 동작 방식 Spring MVC에서 Controller로 이용되며, 사용자의 요청을 받아 처리한 후에 결과를 반환합니다. 사용자가 url을 입력하면 http request가 servlet 컨테이너로 전송됩니다. servlet 컨테이너는 httpServletRequest, HttpServletReponse 객체를 생성합니다. web.xml 기반으로 사용자가 요청한 url이 어느 서블릿에 대한 요청인지 찾고, 해당 서블릿에서 service 메소드를 호출한 후 get, post 여부에 따라 doGet()이나 doPost()를 호출합니다. 메소드는 HttpSer..

BACK/SPRING 2023.05.23

[JAVA] String, StringBuilder, StringBuffer 차이

String String과 다른 클래스(StringBuffer, StringBuilder)의 차이점은 String은 불변(immutable) 하다는 점이다. String 객체는 한번 생성되면 할당된 메모리 공간이 변하지 않는다. ‘+’ 연산자 또는 concat 메서드를 통해 기존에 생성된 String 클래스 객체 문자열에 다른 문자열을 붙여도 기존 문자열에 새로운 문자열을 붙이는 것이 아니라, 새로운 String 객체를 만든 후, 새 객체에 연결된 문자열을 저장하고 그 객체를 참조하도록 한다. 즉, 한번 생성된 객체의 내부 내용을 변화시킬 수 없다. String str = "hello"; // String str = new String("hello"); str = str + " world"; // [ h..

BACK/JAVA 2023.04.20