항목 Scanner BufferedReader ScannerBufferedReader입력 처리 방식입력을 토큰 단위(공백/줄바꿈 기준)로 읽고 자동 파싱입력을 문자 단위 / 한 줄 단위로 읽고, 필요하면 직접 파싱편리함nextInt(), nextDouble() 등 바로 타입 변환 가능문자열만 읽고, Integer.parseInt() 등 직접 변환 필요속도느림 (토큰화 + 타입 변환 처리)빠름 (버퍼링으로 한 번에 읽기)예외 처리런타임 예외(Runtime Exception) 발생 → 선택 처리 가능체크 예외(Checked Exception) 발생 → 반드시 처리 필요 예: InputMismatchException, NullPointerException예: IOException추천 용도콘솔 입력, 학습용대용..
🎯 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..