JAVA 22

commandMap에서 int 값 꺼내기 (Object -> int)

상황 commandMap에서 number타입 값을 꺼내고 강제 형변환을 시켰더니 "cannot be cast to java.lang.Integer" 오류가 발생했다. ex) int itemid = (int) commandMap.get("ITEM_ID"); - (x) 해결 1. 먼저 String.valueOf를 사용해서 Object타입을 String 타입으로 변환한다. cf) commandMap.get("키 값");은 Object 타입이다. public Object get(String key){ return map.get(key); } 2. 그 다음은 request에서 int값을 가져오는 방법과 동일하다. ex) int itemid = Integer.parseInt(String.valueOf(command..

JAVA 2023.01.29

JAVA Math.ceil() 사용 시 주의사항

상황 게시판 페이징을 구현하던 중에 Math.ceil이 적용되지 않는 문제가 발생했다. ex) int totalPage = (int) Math.ceil(totalItem/itemPerPage); - (x) 해결 Math.ceil함수 안에서 연산을 하면 정수값이 도출돼서 Math.ceil이 적용되지 않는다. 따라서 double타입으로 강제타입변환을 하거나 1.0을 곱해서 소수점이 있는 실수로 만들어줘야 한다. ex) int totalPage = (int) Math.ceil(totalItem*1.0/itemPerPage); - (o) int totalPage = (int) Math.ceil((double)totalItem/itemPerPage); - (o)

JAVA 2023.01.26

JAVA Map 컬렉션, Set 컬렉션, Iterator

Collection Framework : 객체를 수집해서 저장하는 역할을 한다. 컬렉션 사용법을 정의한 인터페이스들을 통해 다양한 컬렉션 클래스를 이용할 수 있다. 1. Map 컬렉션 대표 구현 클래스 HashMap Map map = new HashMap(); put(K key, V value) : 키와 값 추가 get(Object key) : 해당 키의 값 리턴 2. Set 컬렉션 : like 집합, 주머니 : List와 달리 저장 순서가 유지되지 않고 중복해서 저장할 수 없다. Iterator(반복자) : 자바 컬렉션 프레임워크(Java Collection Framework)에 포함되는 클래스와 인터페이스(List, Set, Map 등)를 순회하며 저장된 요소를 읽어오는 인터페이스이다. Iterato..

JAVA 2023.01.06

JAVA 클래스

1. 클래스 구성 멤버 : 필드, 생성자, 메소드로 이루어져 있다. 1) Field : 객체의 데이터가 저장된다. 생성자와 메소드 전체에 사용된다. 2) Constructor : 객체 생성 시 초기화 역할을 담당하는 중괄호 블록이다. new 연산자로 호출할 수 있으며, 이때 생성된 객체들는 해당 클래스의 인스턴스들로 각각 독립되어 있다. new 연산자로 생성된 객체는 메모리 heap영역에 생성된 후 객체의 주소를 리턴하는데, 이 주소를 참조타입인 클래스변수에 저장하면 stack영역의 변수가 객체를 참조하게 된다. 3) Method : 객체의 동작에 해당하 중괄호 블록이다. 객체 간의 데이터 전달의 수단으로 사용된다. 2. 예제로 알아보기 1) 예제 Car [라이브러리용 클래스] public class C..

JAVA 2023.01.03

이것이 자바다 4장 확인 문제 풀이 (조건문과 반복문)

1. 조건문과 반복문의 종류 답 : 조건문 : if, switch 반복문 : for, while, do-while 2. 조건문과 반복문 답 : 2 switch문에서 사용할 수 있는 변수의 타입은 int는 가능하지만 double은 불가능하다. //정수 자료형만 사용할 수 있고, 실수자료형은 사용할 수 없다. 문자자료형도 정수자료형이다. 3. for문 package verify; public class Exercise3 { public static void main(String[] args) { int sum = 0; for(int i=1; i

JAVA 2022.10.05

이것이 자바다 3장 확인 문제 풀이 (연산자)

1. 연산자와 연산식 - 연산에 사용되는 표시나 기호를 연산자(operator)라고 하고, 연산의 과정을 기술한 것을 연산식(expressions)이라고 부른다. 답 : 3 연산식은 하나 이상의 값을 산출할 수 없다. 2. 단항연산자 답 : 11+20 = 31 3. 삼항연산자, 논리부정 연산자 답 : 가 4. 답 : pencils/students, penciles%students package verify; public class Exercise04 { public static void main(String[] args) { int pencils = 534; int students = 30; //학생 한 명이 가지는 연필 수 int pencilsPerStudent = ( pencils / students..

JAVA 2022.10.02

이것이 자바다 1장 확인 문제 풀이(자바 시작하기)

이것이 자바다 : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 1. JDK와 JRE의 차이점 : Java SE(Standard Edition)의 구현체는 자바 개발 도구 (JDK : Java Development Kit)와 자바 실행 환경(JRE : Java Runtime Environment)이라는 두 가지 버전이 있다. JDK는 프로그램 개발에 필요한 자바 가상 기계(JVM), 라이브러리 API, 컴파일러 등의 개발 도구가 포함되어 있고, JRE에는 프로그램 실행에 필요한 자바 가상 기계(JVM), 라이브러리 API만 포함되어 있다. 답 : 4번 JRE에는 컴파일러(javac.exe)가 포함되어 있지 않다. //JRE = JVM + 표준 클래스 라이브..

JAVA 2022.10.01

이것이 자바다 18장 확인 문제 풀이 (IO 기반 입출력 및 네트워킹)

1. 입출력 스트림 - 프로그램을 기준으로 데이터가 들어오면 입력 스트립이고, 데이터가 나가면 출력 스트림이다. 답 : 1 하나의 스트림으로 입력과 출력이 동시에 가능하지 않다. //스트림의 특성이 단방향이므로 하나의 스트림으로 입력과 출력을 모두 할 수 없다. 2. Reader - 문자 기반 입력 스트림의 최상위 클래스로 추상 클래스이다. 답 : 1 이미지 데이터는 InputStream으로 읽을 수 있으나 Reader로는 읽을 수 없다. //바이트 기반 스트림(InputStream)은 그림, 멀티미디어, 문자 등 모든 종류의 데이터를 받고 보낼 수 있으나, 문자 기반 스트림(Reader)은 오로지 문자만 받고 보낼 수 있도록 특화되어 있다. 3. InputStream의 read(byte[], b, in..

JAVA 2022.09.21

이것이 자바다 2장 확인 문제 풀이 (변수와 타입)

1. 변수 - 하나의 값을 저장할 수 있는 메모리 공간이다. 답 : 4 변수는 초기값이 저장되지 않은 상태에서 읽을 수 없다. 2. 변수의 이름 답 : 1번 modelName, 4번 $value, 5번 _age 3. 자바의 기본 타입 8개 답 : 정수타입 byte, char/short, int, long 실수타입 float, double 논리타입 boolean 4. 답 : 타입 int, double 변수 이름 age, price 리터럴 10, 3.14 5. 자동 타입 변환 - 작은 크기를 가지는 타입이 큰 크기를 가지는 타입에 저장될 때 발생한다. 답 : 3 short shortValue = charValue; 는 성립하지 않는다. //short 타입이 저장할 수 있는 값의 범위는 -32768~32767..

JAVA 2022.09.21