일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- #웹 #HTTP 프로토콜
- #오라클 #자바 #연동
- #StringBuffer #자바 #
- #BigDecimal
- #48일차 #한 내용 #요약
- #리뷰 #CSS #선택자
- #함수 #VIEW #시퀀스 #INDEX
- #스윙 #함수 #Swing
- #오라클 #용어 정리 #데이터 타입 #비교 연산자 #논리 연산자 #SELECT 문
- #제약 조건 #함수 #컬럼 변경 #테이블 변경& 삭제
- #자바 #스윙관련 함수 #API보고 정리했음
- #웹 #중요한 것
- #자바 #입출력
- #자바 #오라클 #연동
- #돔 트리 #form 태그 #이스케이프문자 #시작태그 #form태그
- #오라클 #계정 생성 #테이블 #생성 #조회 #추가
- #오라클 #11g #테이블
- #HTML4.01또는 5의 차이 #parsing #웹브라우저 #form 태그 #태그 속성 #id #name
- #자바
- #자바 #파일 #함수
- #jdbc #자바
- #웹 #정의 #5대 브라우저 #
- #스프링 프레임 워크 #인코딩 #컨텍스트 #환경설정
- #함수 #키워드 #조인 #서브쿼리
- #Web #웹 #jsp #servlet
- #자바 #입출력 #함수
- #프로그래밍 기초
- #Ajax #EL #JSTL
- #오라클 #함수 #MAX() #MIN() #LPAD() #SUBSTR() #TO_CHAR() #복사 #지우기 #수정
- #자바 #오라클 #JDBC
- Today
- Total
IT journey
JAVA-자료형 본문
직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :)
1. print(), println(), printf() 의 차이
print() | 출력 후 줄을 바꾸지 않습니다. |
println() | 출력 후 자리를 바꿉니다. |
printf() | printf("출력 서식",출력할 내용); |
참고로, printf()에 대해 더 알아보도록 하겠습니다.
printf()는 출력 후 줄바꿈을 지원해주지 않습니다. 줄바꿈을 원할시에는 \n을 해주어야 합니다.
출력서식의 형식은 %[-][0][n][.m]서식문자 입니다.
-은 출력할 전체 자리수가 지정된 경우 왼쪽에 맞춰 정렬 후 빈칸에 공백을 출력됩니다.
0은출력할 전체 자리수가 지정된 경우 왼쪽의 남는 자리에 0을 출력합니다.
n은 출력할 전체 자리수를 지정합니다.
. m은 잘리는 자리에서 반올림 시켜서 표시하지만 원래 데이터 값은 변경되지 않습니다.
출력 서식문자에 대해 간략히 정리해 보자면 아래 표와 같습니다.
%d | 정수 |
%f | 실수 |
%c | 문자 |
%s | 문자열 |
print(), println(), printf()의 각각에 대한 예는 다음과 같습니다.
public class Main
{
public static void main(String[] args) {
System.out.println("Hello IT journey");
System.out.print("Hello IT journey");
System.out.printf("Hello IT journey");
}
}
2. 형변환(casting)
묵시적 형변환 : 자바에서는 자료형의 크기가 더 큰 자료형으로 자동 변환하여 계산합니다.
참고로, 1바이트 당 하나의 주소값이 할당됩니다.
예약어(자료형) | 비트 수 | 범위 |
boolean(논리형) | 8 bit(1 바이트) | true 또는 false를 기억합니다 |
char(문자형) | 16 bit(2 바이트) | 1문자를 기억하며, 0~65535 의 범위를 갖습니다. |
byte(수치형-정수) | 8 bit(1 바이트) | -128~127 (-2의 7제곱~2의 7제곱-1) |
short(수치형-정수) | 16 bit(2 바이트) | -32768~32767 (-2의 15제곱~2의 15제곱-1) |
int(수치형-정수) | 32 bit(4 바이트) | -2,147,483,648~2,147,483,647 (-2의 31제곱~2의 31제곱-1) |
long(수치형-정수) | 64bit(8 바이트) | -9223372036854775808~9223372036854775807 (-2의 63제곱~2의 63제곱-1) |
float(수치형-단정도 실수) | 32bit(4 바이트) | 소수점 아래로 6자리 정도 표현 |
double(수치형-배정도 실수) | 64bit(8 바이트) | 소수점 아래로 16자리 정도 표현 *참고로 float보다는 더 정밀한 연산이 가능합니다. |
명시적 형변환 : 프로그래머가 그 순간의 자료형을 변경할 수 있습니다.
명시적 형변환에 대한 예를 들면 아래와 같이 가능합니다.
public class Main
{
public static void main(String[] args) {
System.out.println(12/(double)11);
}
}
3. 자료형
숫자
- 정수는 자료형 int와 long을 쓰는 경우가 많습니다.
- 실수는 자료형 float과 double를 쓰는 경우가 많습니다.
- 8진수(숫자 0으로 시작)와 16진수(0x로 시작)는 int 자료형을 이용해 표현합니다.
- 숫자연산,증감연산은 C언어-연산자 편에서 산술연산과 증감연산자와 같으니 넘어가겠습니다.
C언어-연산자
직접 내용 정리하고 만든 예제이니 퍼가실 때는 출처를 남겨주세요:) 연산자의 분류 대입 = 오른쪽을 왼쪽에 대입 산술 + - * / % 사칙연산과 나머지 연산 부호 + - 양수와 음수 표시 증감 ++ -- 증가,
step-journey.tistory.com
boolean
- 참 또는 거짓의 값을 갖는 자료형을 말합니다.
- 대입되는 값은 true 또는 false가 있습니다.
- 연산의 결과를 조건문 판단기준에 넣어 이용하는 경우가 많습니다.
문자
- 1문자를 기억하는 자료형 char를 이용합니다.
위에 나온 자료형의 예들을 살펴보겠습니다.
class Main {
public static void main(String[] args) {
//정수의 예
int number=5;
long count = 155555;
// 실수의 예
float e=2.718281F;
double d1=1.23e4; //1.23*10의 4제곱
//8진수의 예
int o=020;
//16진수의 예
int h=0xA;
//부울의 예
boolean isFinsh=true;
//문자의 예
char n='z';
}
}
---- 위에 나온 자료형들은 new 키워드로 새로 생성할 수 없습니다.
문자열
- String을 이용합니다.
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String animal="";
System.out.print("동물을 입력하세요");
animal=sc.next();
String feed="";
System.out.println("먹이를 입력하세요");
feed=sc.nextLine();
int age=0;
System.out.println("나이를 입력하세요");
age = sc.nextInt();
System.out.println(animal+"은"+age+"살입니다.");
sc.close();
}
}
위 코드에 나온 내용을 간략히 설명히 덧붙여 보겠습니다.
○ Scanner는 키보드를 통해서 입력받는 스캐너입니다.
○ next()는 띄어쓰기 전까지 문자열(단어)을 입력받습니다.
○ nextLine()은 문자열을 입력받습니다. 이 메소드는 키보드가 비어있을 경우 입력을 요구하며 대기하고
키보드 버퍼가 비어있지 않으면 키보드 버퍼의 전체 내용(라인)을 읽습니다. 쉽게 말해, 키보드 버퍼를 비웁니다.
○ nextInt()는 숫자(정수)를 입력받습니다.
○ sc.close는 scanner를 종료한다는 의미입니다.
- String animal="monkey"; 가 최초로 문자열이 만들어지고 나면 메모리 어딘가에 있고 그 주소값이 변수값에 저장됩니다. 그리고 String animal1="monkey"; 처럼 같은 내용의 문자열)이 있으면 기존에 있는 문자열의 주소값이 변수에 저장됩니다.
- String 메소드 다룬 예 관련 코드는 아래와 같습니다.
#new 키워드로 새로 생성할 때 메모리에 같은 내용이 있는지 상관하지 않기 때문에 무조건 만들어집니다.
class Main{
public static void main(String[] args){
String word1="IT journey";
String word2=new String("IT journey");
System.out.println(word1==word2);
System.out.println(word1.equals(word2));
System.out.println(word1.indexOf("journey"));
System.out.println(word1.length());
System.out.println(word1.trim());
System.out.println(word1.trim().length());
System.out.println(word1.toUpperCase());
System.out.println(word1.toLowerCase());
System.out.println(word1.charAt(4));
System.out.println(word1.replaceAll("IT","Step"));
System.out.println(word1.substring(3,10));
}
}
위 코드에 나온 메소드의 설명을 간략히 덧붙이겠습니다.
○ == 연산자를 사용하여 비교한 경우 에는 변수에 저장된 문자열을 비교한것이 아니라, 변수에 저장된 주소를 비교하게 됩니다. 주소를 새로 할당하여 만들어진 것이므로, false가 나옵니다.
○ equals()는 두 개의 문자열을 비교한 뒤 true나 false가 나옵니다.
○ indexOf()는 문자열에서 괄호 안의 문자나 문자열이 최초로 나타내는 위치를 얻어옵니다. 없으면 -1을 반환합니다. 참고로, 자바는 숫자를 0부터 셉니다.
○ length()는 변수에 저장된 문자열을 구성하는 문자의 개수가 나옵니다.
○ trim()는 문자열 앞 뒤의 불필요한 공백을 제거하나, 중간에 있는 공백은 제거하지 않습니다.
○ trim().length()는 문자열 앞 뒤의 불필요한 공백을 제거한 문자열을 구성하는 문자의 개수가 나옵니다.
○ toUpperCase()는 영문자를 모두 대문자로 변환합니다.
○ toLowerCase()는 영문자를 모두 소문자로 변환합니다.
○ charAt(index)는 문자열에서 index번째 문자를 한 개 얻어옵니다.
○ replaceAll(old,new)는 old를 new로 바꾸고 싶을 때 사용합니다.
○ substring(시작위치, 끝 위치)는 시작위치에서 끝 위치까지 문자를 뽑아냅니다.
이 때 , 시작위치는 포함되지만 끝 위치는 포함하지 않고 나옵니다.
StringBuffer -문자열을 추가하거나 변경할 때 주로 사용되는 자료형
public class Main{
public static void main(String[] args){
StringBuffer sb = new StringBuffer();
sb.append(" IT journey");
System.out.println(sb.toString());
sb.insert(0,"Hello");
System.out.println(sb.toString());
System.out.println(sb.substring(0,5));
}
}
위 코드에 나온 메소드의 설명을 간략히 덧붙이겠습니다.
○ append()는 문자열을 추가할 때 씁니다.
○ insert(index,문자열)는 index 위치에 문자열을 삽입한다는 의미입니다.
맵(Map)
참고로, Python-자료형(사전형,집합) 편에서 배웠던 사전형을 보고 오시면 이해가 수월합니다.
맵 역시 Key와 Value를 한쌍으로 갖습니다.
#여기에서 key는 animal,feed,ZooKeeper이고
#value는 동물,먹이,사육사입니다.
import java.util.HashMap;
public class Main{
public static void main(String[] args){
HashMap<String,String>map = new HashMap<String, String>();
map.put("animal","동물");
map.put("feed","먹이");
map.put("ZooKeeper","사육사");
System.out.println(map.get("feed"));
System.out.println(map.containsKey("먹이"));
System.out.println(map.remove("animal"));
System.out.println(map.size());
}
}
위 코드에 나온 메소드의 설명을 간략히 덧붙이겠습니다.
○ put(key,value)는 맵을 추가할 때 씁니다.
○ get(key)는 key에 해당하는 value값을 얻어올 때 씁니다.
○ containsKey()는 맵에 해당하는 key가 있는지 판단하여 true나 false를 반환합니다.
○ remove(key)는 key에 해당되는 맵을 삭제 후 그 value값을 보여줍니다.
○ size()는 Map의 갯수를 보여줍니다.
4. 자료형의 집합
배열
○ 정의
같은 이름으로 여러 개의 기억 장소를 만들어 사용할 수 경우에 사용됩니다.
○ 자동 초기화
배열을 선언하게 되면 숫자는 0으로, 문자는 공백, boolean은 false로, 클래스로 만든 배열은 null로 됩니다.
○ 인덱스(index)
0부터 시작합니다.
참고로, 배열의 값을 접근할 때는 배열명[index]를 이용합니다.
○ 1차원 배열 형태
자료형 [] 배열명 = new 자료형[배열의 크기]
자료형 [] 배열명 = {초기치}
--> 초기치 개수만큼 자동으로 배열을 만들고 초기치의 개수만큼 초기화 시켜줍니다.
○ 특징
배열의 크기는 고정되어 있습니다.
배열의 길이를 알고 싶을 때는 배열명.length를 쓰면 됩니다.
리스트
배열과 비슷한 기능을 합니다.
import java.util.ArrayList;
public class Main{
public static void main(String[] args){
ArrayList<String> word = new ArrayList<String>();
word.add("animal");
word.add("Zookeeper");
word.add("IT journey");
word.add(0,"Hello");
System.out.println(word.get(3));
System.out.println(word.size());
System.out.println(word.contains("Step"));
System.out.println(word.remove("IT journey"));
System.out.println(word.remove(0));
}
}
위 코드에 나오는 메소드를 간략히 덧붙이겠습니다.
○ add(index,객체)
- index를 입력하게 되면 index위치에 객체를 추가합니다.
- index를 입력하지 않으면 객체 추가만 이루어집니다.
○ get(index)는 특정 index의 값이 나옵니다.
○ size()는 변수에 담긴 갯수가 나옵니다.
○ contains()는 해당 내용이 있는지 여부를 true나 false로 반환합니다.
○ remove(객체)는 해당 항목을 지운 후 true가 나옵니다.
○ remove(index)는 해당 객체를 삭제 후 해당 객체를 보여줍니다.
'개인공부공간 > JAVA' 카테고리의 다른 글
JAVA - 클래스 (10) | 2021.06.08 |
---|---|
JAVA-제어문(feat.파일 입출력) (4) | 2021.06.07 |