분류 전체보기 (349) 썸네일형 리스트형 [Java] 가변 String 불변인 String 클래스의 단점 불변인 String 클래스에도 단점이 있습니다. 두 문자를 더하는 경우 "A" + "B" String("A") + Sring("B") // 문자는 String 타입이다. String("A").concat(String("B")) // 문자의 더하기는 concat을 사용한다. new String("AB") // String은 불변이다. 따라서 새로운 객체가 생성된다. 불변인 String의 내부 값은 변경할 수 없다. 따라서 변경된 값을 기반으로 새로운 String 객체를 생성한다. 더 많은 문자를 더하는 경우 String str = "A" + "B" + "C" + "D"; String str = ("A") + String("B") + String("C") + String(".. [Java] String 클래스 주요 메서드를 살펴보자! 문자열에 'Java'가 포함되어 있는지: true 'Java'의 첫번째 인덱스: 7 인덱스 10부터 'Java'의 인덱스: 24 'Java'의 마지막 인덱스: 24 주요 메서드 목록 String 클래스는 문자열을 편리하게 다루기 위한 다양한 메서드를 제공한다. 메서드를 외우기 보다는 필요할 때 검색하거나 API 문서를 통해서 원하는 기능을 찾는 것이 좋다. (밑에서 자주 사용하는 기능 위주로 나열했습니다) 문자열 정보 조회 public class StringInfoMain { public static void main(String[] args) { String str = "Hello, Java!"; System.out.println("문자열의 길이: " + str.length()); System.out... [Java] String 클래스가 불변 객체 라고? String 클래스 자바에서 문자를 다루는 대표적인 타입에는 char, String이 있습니다. public class CharArrayMain { public static void main(String[] args) { char[] charArr = new char[]{'h', 'e', 'l', 'l', 'o'}; System.out.println(charArr); String str = "hello"; System.out.println("str = " + str); } } 기본형인 char는 문자 하나를 다룰 때 사용한다. char를 이용해서 여러 문자를 나열하려면 char[ ] 을 사용해야 한다. char[ ]을 다루는 방법은 매우 불편하기 때문에 문자열을 편하게 다룰 수 있는 String 클래스를.. [Java] 불변 객체, 불변 클래스 기본형과 참조형의 공유 자바의 데이터 타입을 가장 크게 보면 기본형(Primitive Type), 참조형(Reference Type) 으로 나눌 수 있습니다. 기본형: 하나의 값을 여러 변수에서 절대로 공유하지 않는다. 참조형: 하나의 객체를 참조값을 통해 여러 변수에 공유할 수 있다. "기본형은 하나의 값을 여러 변수에서 절대로 공유하지 않는다" 이 말은 무슨 뜻 일까요? public class PrimitiveMain { public static void main(String[] args) { // 기본형은 절대로 같은 값을 공유하지 않는다. int a = 10; int b = a; // a => b 값 복사 후 대입 System.out.println("a = " + a); System.out.pri.. [Java] Object 클래스 Java.lang 패키지 자바가 기본으로 제공하는 라이브러리(클래스 모음) 중에 가장 기본이 되는 것이 java.lang 패키지 입니다. 자바 언어를 이루는 가장 기본이 되는 클래스들을 보관하는 패키지를 뜻합니다. java.lang 패키지의 대표적인 클래스들 Object: 모든 자바 객체의 부모 클래스 String: 문자열 Interger, Long, Double: 래퍼 타입, 기본형 데이터 타입을 객체로 만든 것 Class: 클래스 메타 정보 System: 시스템과 관련된 기본 기능들을 제공 import 생략 가능 java.lang 패키지는 모든 자바 애플리케이션에 자동으로 임포트(import) 됩니다. 따라서 임포트 구문을 사용하지 않아도 됩니다. package lang; import java.lan.. 회원 관리 프로젝트 - 요구사항 분석 비즈니스 요구사항 정리 데이터: 회원ID, 이름 기능: 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 일반적인 웹 어플리케이션 계층 구조 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현 레파지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: 비즈니스 도메인 객체 ex) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 클래스 의존관계 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황으로 가정 개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용 [Spring] 웹 개발 방식 스프링 웹 개발 기초웹을 개발하는 3가지 방법 정적 컨텐츠정적 컨텐츠는 파일을 그대로 그냥 고객한테 웹브라우저로 전달해주는 방식MVC와 템플릿 엔진서버에서 변형을 해서 HTML을 바꿔서 내려주는 방식APIJSON 데이터 구조 포멧으로 클라이언트에게 데이터를 전달하는 방식서버끼리 데이터들을 통신할 때 정적 컨텐츠 [resources/static/hello-static.html]정적 컨텐츠 입니다. http://localhost:8080/hello-static.html 정적 컨텐츠 입니다." data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 웹브라우저에 http://localhost:8080/hello-static.html을 친다.내장 Tomcat 서버가 이 요청을 받고, 스프링 .. [Spring] 정적 페이지, 템플릿 엔진 동작 [HelloController] package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hello!"); return "hello"; } } @getMapping("hello") 는 웹 어플리케이션에서 http:.. [Java] 다형성이 중요한 이유? 객체 지향 프로그래밍란? 객체 지향 프로그래밍은 컴퓨터 프로그램을 명렁의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체" 들의 모임으로 파악하고자 하는 것입니다. 각각의 객체는 메서지를 주고받고, 데이터를 처리할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 그렇다면 유연하고, 변경이 용이하다는게 뭘까? 레고 블럭 조립하듯이 키보드, 마우스 갈아 끼우듯이 컴퓨터 부품 갈아 끼우듯이 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법 객체 지향 프로그램 특징 추상화 캡슐화 상속 다형성 다형성의 실세계 비유 실세계와 객체 지향을 1:1로 매칭 X 그대로 실세계의 비유로 이해하기에는 좋음 역할과 구현으로 세.. [Java] 인터페이스 추상 클래스 다형성의 활용에서 생길 수 있는 문제점들을 보완하기 위해서 추상 클래스와 추상 메서드를 사용해봅시다. 동물(Animal)과 같이 부모 클래스는 제공하지만, 실제 생성되면 안되는 클래스를 추상 클래스라고 합니다. 추상 클래스는 이름 그대로 추상적인 개념을 제공하는 클래스입니다. abstarct class AbstractAnimal {...} 추상 클래스는 클래스를 선언할 때 앞에 추상이라는 의미의 abstract 키워드를 붙여주면 된다. 추상 클래스는 기존 클래스와 완전히 같다. 다만 new AbstractAnimal( ) 와 같이 직접 인스턴스를 생성하지 못하는 제약이 추가된 것이다. 추상 메서드 부모 클래스를 상속 받는 자식 클래스가 반드시 오버라이딩 해야 하는 메서드를 부모 클래스에 정의.. 이전 1 ··· 27 28 29 30 31 32 33 ··· 35 다음