🎯 3가지 키워드 비교: 새로운 예시 — 컵라면 공장상황:너는 컵라면 공장을 운영하고 있어.매일 라면을 생산하는 기계가 있고, 거기서 나오는 라면(객체) 마다 제조번호가 다르지!✅ static: 공장에서 모두가 공유하는 것public class Ramen { static String factoryName = "라면공장";}이건 공장 이름모든 라면이 같은 공장에서 나왔으니까 공장 이름은 하나만 있으면 돼!그래서 static은 "모든 객체가 공유하는 값"이야.📌 사용 예System.out.println(Ramen.factoryName); // 라면공장 ✅ 객체 없이도 클래스 이름으로 바로 접근 가능!✅ final: 바뀌면 안 되는 개별 정보public class Ramen { final Str..
📦 JVM.java(자바소스코드) → .class(자바바이트코드) ===>자바소스코드가 자바바이트코드로 변환되는 과정을 자바컴파일러라고 한다.이걸 읽어서 실행하는 것이 JVM 즉, 자바 프로그램을 실행하는 가상 컴퓨터이다. 📦 자바 메모리╔═══════════════════════╗ ║ Method Area ║ ← 클래스, static 변수,static final 정보 ╠═══════════════════════╣ ║ Heap ║ ← 객체 저장 (new로 만든 것들), final╠═══════════════════════╣ ║ Stack ║ ← 지역 변수, 매개변수, 메서드 실행 정보╚═══════════════════════╝?..
✅ 생성자란?- 기초값을 세팅한다와 같은 내용! ( 이렇게 하면 Student s = new Student("구름", 20); // → 처음 만들 때부터 name, age 값을 넣게 강제함 Student 객체가 만들어질 때, name과 age는 무조건 들어가게 돼. )- new는 단순히 메모리에 공간을 만드는 것이고, 생성자는 그 공간에 의미있는 값을 넣어주는 역할을 한다.* 실제로 개발하다보면 객체를 만들고 값 설정하는걸 깜빡하는 경우가 정말 많다. 왜 이 값이 null이지? 하면서 디버깅한는 시간이 엄청나서 생성자를 쓰면 이런 실수를 컴파일 시점에 잡아준다. - 필수로 입력을 해야하는 상태로 변하기 때문에 해당 객체를 쓸때는 무조건 불변하게 입력을 요구 할 수 있게 만들수 있다.- 즉 실수를 방지하..
Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller와 @RestController가 있다. Controller : 전통적인 Spring MVC의 컨트롤러 RestContoller : Restful 웹서비스의 컨트롤러 # Controller 전통적인 Spring MVC의 컨트롤러 주로 view를 반환하기 위해 사용 Client -> Dispatcher Servlet -> Handler Mapper -> Controller -> View Resolver -> View -> Client Client : URI 형식으로 웹 서비스 요청 DispatcherServlet이 요청을 intercept -> Handler Mapping을 통해 요청에 맞는 Controller 호출 요청을 처리한 ..
이 글을 작성한 이유는 프로그래머스를 풀다가 한가지 궁금한점이 생겼기 때문이다. class Solution { public int solution(String message) { int answer = (message.length()) * 2; return answer; } } class Solution { public int solution(String[] s1, String[] s2) { int answer = 0; int count = 0; for(int i=0; i
용어정리 및 사용법 * 자바 AraayList 사용법 ArrayList는 자바에서 기본적으로 많이 사용되는 클래스이며, 자바의 List 인터페이스를 상속받은 여러 클래스 중 하나이다. 배열과의 차이점은 배열은 크기가 고정인 반면, ArrayList는 크기가 가변적으로 변한다. ArrayList를 생성한 후 add() 메소드로 엘레멘트를 추가할 수 있다. 또한 set() 메소드로 기존에 추가된 값을 변경하는 것도 가능하다. 추가했던 값을 삭제할 때는 remove() 메소드를 호출한다. import java.util.ArrayList; public class ArrayListTest { public static void main(String[] args) { ArrayList colors = new Arra..
동기(synchronous : 동시에 일어나는) - 동기는 말 그대로 동시에 일어난다는 뜻이다. 요청과 그 결과가 동시에 일어난다는 약속이다. ex ) 커피 주문을 받고 나올 때까지 기다리는 것이 동기 방식의 예이다. 비동기(Asynchronous : 동시에 일어나지 않는) - 비동기는 동시에 일어나지 않는다를 의미한다. 요청과 결과가 동시에 일어나지 않을 거라는 약속이다. ex ) 점원 한명이 커피 주문을 받고 다른 점원이 커피를 건네주는 것이 비동기 방식의 예이다. 동기방식은 설계가 매우 간단하고 직관적이지만 결과가 주어질 때까지 아무것도 못하고 대기해야 하는 단점이 있고, 비동기방식은 동기보다 복잡하지만 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있으므로 자원을 효율적으로..