반응형

전체 글 105

자바 final

final 키워드는 이름 그대로 끝 이라는 뜻이다.변수에 final 키워드가 붙으면 더는 값을 변경할 수 없다. final은 class, method를 포함한 여러 곳에 붙을 수 있다. 지금은 변수에 붙는 final 키워드이다.public static void main(String[] args) { final int data1; data1 = 10; //최초 한번만 할당 가능 data1 = 20; final int data2 = 20;} final로 data1을 지정해 준 후 최초 한번 10으로 할당한 뒤 20으로 변경을 하면java: variable data1 might already have been assigned위와 같은 에러가 발생한다.final이기에 최초 할당 이후로는 더이상 ..

공부/Java 2024.09.02

자바 메모리 구조와 static

자바의 메모리 구조는 메서드 영역, 스택 영역, 힙 영역 총 3개로 나눌 수 있다.1. 메서드 영역 : 클래스 정보를 보관한다. 이 클래스 정보가 붕어빵 틀이다.2. 스택 영역 : 실제 프로그램이 실행되는 영역이다. 메서드를 실행할 때마다 하나씩 쌓인다.3. 힙 영역 : 객체(인스턴스)가 생성되는  영역이다. new 명령어를 사용하면 이 영역을 사용한다. 쉽게 이야기해서 붕어빵 틀로부터 생성된 붕어빵이 존재하는 공간이다. 참고로 배열도 이 영역에 생성된다.   메서드 영역(Method Area) : 메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그램의 모든 영역에서 공유한다.1. 클래스 정보 : 클래스의 실행 코드(바이트 코드), 필드, 메서드와 생성자 코드 등 모든 ..

공부/Java 2024.09.02

자바 접근 제어자

자바는 public, private 같은 접근 제어자(access modifier)를 제공한다. 접근 제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있다. 스피커의 음량은 절대로 100을 넘으면 안되는 요구사항이 있는 스피커를 만들어보자.package access;public class Speaker { int volume; Speaker(int volume){ this.volume = volume; } void volumeUp(){ if (volume>=100){ System.out.println("음량을 증가할 수 없습니다 .최대입니다."); } else{ ..

공부/Java 2024.08.31

자바 패키지

소규모의 프로그램은 상관없지만 기능이 정말 많아 프로그램이 커지게 된다면 많은 클래스가 등장하며 기능들 분류가 어려워질 것이다. 이러한 문제를 해결하기위해 패키지라는 개념을 제공한다.패키지를 동해 기능별로 클래스를 묶거나 관련 있는 것들을 묶을 수 있다.  package pack;public class Data { public Data(){ System.out.println("패키지 pack Data 생성"); }} pack 패키지에 Data라는 클래스를 만들고 생성자도 만들었다. 이번엔 pack의 하위 패키지 a를 만들어보자.package pack.a;public class User { public User(){ System.out.println("패키지 pac..

공부/Java 2024.08.31

자바 객체 지향 프로그래밍

프로그래밍은 크게 절차 지향 프로그래밍과 객체 지향 프로그래밍으로 나눌 수 있다 절차 지향 프로그래밍1. 이름 그대로 절차를 지향한다 실행 순서를 중요하게 생각하는 방식이다.2. 절차 지향 프로그래밍은 프로그램의 흐름을 순차적으로 따르며 처리하는 방식이다. 즉, "어떻게"를 중심으로 프로그래밍 한다. 객체 지향 프로그래밍1. 객체를 지향한다, 객체를 중요하게 생각한다.2. 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍하는 방식이다. 즉, "무엇을"중심으로 프로그래밍 한다.  절차 지향은 데이터와 해당 데이터에 대한 처리 방식이 분리되어 있다. 반면 객체 지향에서는 데이터와 그 데이터에 대한 행동(메서드)이 하나의 '객체'안에 함께 포함되어 있다. public..

공부/Java 2024.08.30

자바 기본형과 참조형

자바에서 참조형을 제대로 이해하는 것은 정말 중요하다고 한다.어제 배운 기본형과 참조형에 관하여 막연하게 이해하고만 있기 때문에 오늘 복습을 통해 제대로 이해하고 정리하려 한다. 변수의 데이터 타입은 가장 크게 보면 기본형과 참조형으로 분류할 수 있다. 사용하는 값을 변수에 직접 넣을 수 있는 기본형, 그리고 이전에 만들어 봤던 Student student1과 같이 객체가 저장된 메모리 위치를 가르키는 참조값을 넣을 수 있는 참조형으로 분류할 수 있다. 기본형(Primitive Type) : int, long, boolean, double 처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터타입을 기본형이라고 한다.참조형(Reference Type) : Student student1, int[] stude..

공부/Java 2024.08.29

자바 클래스와 데이터

클래스와 데이터에 대한 내용이 머릿속에 확실하게 정리되지 않은 것 같아, 인강을 다시 보며 복습하기로 하였다.머리가 나쁘면 몸이 고생한다.  클래스가 필요한 이유 :int[] studentAges = {15,16};String[] studentNames ={"학생1", "학생2"};int[] studentGrades = {90,80};위처럼 데이터를 배열을 통해 관리하면 한 학생의 데이터가 3개의 배열에 나누어져 있기에 3개의 배열을 각각 변경해야 하는 어려움이 있다. 이렇게 하면 실수 가능성이 매우 높다. 이러한 문제를 해결하기 위해 학생이라는 개념을 하나로 묶는 것이다. 그 개념이 바로 클래스이다. 클래스를 사용해서 학생이라는 개념을 만들고, 각각의 학생 별로 이름 나이 점수를 관리 하는 것이다. p..

공부/Java 2024.08.29

자바 객체 지향 프로그래밍과 절차 지향 프로그래밍

프로그래밍 방식은 크게 절차 지향 프로그래밍과 객체 지향 프로그래밍으로 나눌 수 있다. 절차 지향 프로그래밍1. 절차 지향 프로그래밍은 이름 그대로 절차를 지향한다. 쉽게 이야기해서 실행 순서를 중요하게 생각하는 방식이다.2. 절차 지향 프로그래밍은 프로그램의 흐름을 순차적으로 따르며 처리하는 방식이다. 즉, "어떻게"를 중심으로 프로그래밍한다. 객체 지향 프로그래밍1. 객체 지향 프로그래밍은 이름 그대로 객체를 지향한다. 쉽게 이야기해서 객체를 중요하게 생각하는 방식이다.2. 객체 지향 프로그래밍은 실제 세게의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍 하는 방식이다. 즉, "무엇을" 중심으로 프로그래밍 한다.

공부/Java 2024.08.29

자바 Null

참조형 변수에는 항상 객체가 있는 위치를 가리키는 참조값이 들어간다. 그런데 아직 가리키는 대상이 없거나, 가리키는 대상을 나중에 입력하고 싶다면 null이라는 특별한 값을 넣어놓을 수 있다.   GC - 객체는 해당 객체를 참조하는 곳이 있으면, JVM이 종료할때까지 계속 생존한다 그런데 중간에 해당 객체를 참조하는 곳이 모두 사라지면 JVM은 필요없는 객체로 판단하고 GC(Garbage collection)가 돌아간다.   NullPointerException : 참조값 없이 객체를 찾아가면 어떤 문제가 발송할까?이 경우 NullPointerException이라는 예외가 발생하는데, 개발자를 가장 많이 괴롭히는 예외이다. 말 그대로 null을 가리키는(pointer)가 발생하는 예외(Exception..

공부/Java 2024.08.28
반응형