Welcome to the BBOGAK

Nice to see you here

LET's GET it Dev. Knowledge

JAVA/└JAVA 기초 복습

1일차 - 자료형, 변수vs상수, 확장 문자열, 형변환, 예외, 콘솔입력, 콘솔출력

IT뽀각 2019. 12. 5. 14:40
반응형

1. 자료형,Data Type

-프로그램상에서 사용되는 데이터를 형식에 따라 나눠 놓은 분류

메모리 관리- 원고지에 데이터를 쓴다고 생각.

 

2.자바에서의 자료형

1. 기본형, Primitive Type

기본 자료 단위 = 1 byte(8 byte:부호비트 + 데이터 비트)

-128 ~ 0 ~ 127

 

a. 정수형

-byte(1byte):-128 ~ 127

-short(2byte): - 32768 ~ 32767

-int(4byte): -21억 ~ 21억

-long(8byte): -922경 ~ 922경

 

b.실수형

-float(4byte): 단정도형 실수

-double(8byte):배정도형 실수(데이터의 손실이 더 적다)

 

c.문자형

-char(2byte) ->Unicode이용

 

d.논리형

-boolean(1byte)

 

2.참조형, Reference Type

a.배열

b.클래스(*)

c.인터페이스

d.String, 문자열

ascii 코드,유니코드 기본단위(2byte)

관련 예제
class Ex05_DataType
{
	public static void main(String[] args)
    {
    	//Ex05_DataType.java
        //요구사항 - 국어점수를 변수에 저장한 뒤 출력 하시오
        //1. 변수 선언(null상태)
        byte kor;
        //2. 변수 초기화
        byte = 100;
        //2.5 변수 치환
        byte = 95;
        //3. 변수 호출
        System.out.println("국어 점수 : " + kor);
Class Ex06_DataType
{
	pulblic static void main(String[] args)
    {
    	//Ex06_DataType.java
        //정수형
        byte b1;
        b1 = 10;
        
        System.out.println(b1);
        
        byte b2 = 20; 		//변수의 선언 + 초기화
        byte b3, b4, b5; 	//변수 선언 그룹화
        
        byte b6 = 10, b7 = 20, b8, b9, b10 = 30;
        
        byte b11 = 10; //몸무게
        byte b12 = 20; //나이
        byte b13 = 30; //키
        
        //byte b14 = 128; //컴파일시 에러 발생
        
        short s1 = -32768;
        short s2 = 32767;
        
        System.out.println(s1);
        
        int n1 = -2100000000;
        int n2 = 2100000000;
        System.out.println(n1);
        
        // long l1= 1000000000; //허용 범위 안의 수이지만 컴파일시 에러발생
        long l1 = 10000000000L; //long 범위의 수로 지정해준다
        System.out.println(l1);
        ////////////
        byte a1 = 100;
        short a2 = 100;
        int a3 = 100;
        long a4 = 100;
        //이런 경우에 숫자 리터럴이 오는 경우에 자바는 모두 Integer로 인식한다.
        System.out.println(100);
        //////////
        float f1 = 3.14; 		// 허용 범위 안의 수이지만 컴파일시 에러발생 
        float f1 = 3.14f;	 	// float 범위의 수로 지정해준다. 
        System.out.println(f1); // 실수일 경우에는 double이 기본형이다.
        
        double d1 = 3.14;
        System.out.println(d1);
        
        //문자형
        char c1 = 'a';
        char c2 = 97;
        System.out.println(c1);
        System.out.println(c2);
        
        // 1 vs '1'
        
        //논리형
        boolean p1 = true;
        boolean p2 = false;
        System.out.println(p1);
        
        //문자열
        String str = "안녕하세여";
        System.out.println(str);
        
        char c3 = '가';
        String str2 = "가";
        
        String str3 = ""; //빈 문자열
        
        //int가 가질 수 있는 최대의 수를 넣어서
        // num이라는 변수를 생성하고 출력하쇼.
        int num;
        num = Integer.Max_VALUE;
        
        System.out.println("int가 가질수 있는 최대수 : " +num);

변수, Variables

-자료형을 가지고 메모리상에 할당된 공간

1. 변수 선언(할당)

-자료형 변수명;

2. 변수 초기화

-변수명 = 값;

3. 변수 호출(사용)

-문맥에 따른 변수명 기입

 

변수 vs 상수

-표현에 따라 값이 변하는지, 변하지 않는지 . .

 

변수 명명법

-영어 + 숫자 + _

-숫자 시작 x

-의미 있게!

a.헝가리언 표기법

-자료형을 식별자 앞에 접두어로 기입

-인터페이스의 이름 ->IUser

b.파스칼 표기법

-한단어 -> 첫문자 대문자 ->나머지는 소문자

-두단어이상-> 모든 단어의 첫문자를 대문자로 쓰고 나머지는 소문자

-클래스 이름

c.카멜 표기법

-첫 단어의 첫문자는 ㅗ문자로, 나머지 단어의 첫문자는 대문자로

-메서드명,변수명

 

확장 문자열, Escape Seqeunce

-특수 문자

-자료형이 char형인 이미 지능이 정해진 문자

-특징: 반드시 "\"로 시작한다

 \n : new line
  \b : backspace (현재의 커서를 왼쪽으로 한칸 옮긴다. 이후 다른 글자 출력시 덮어쓴다)
  \t : tab
  \r : carriage return (현재의 커서를 맨 앞으로 옮긴다.)
  \"
  \'
  \\

 

관련예제


class Ex07_EscapeSequence
{
	public static void main(String[] args)
    {
    	System.out.println("one\ntwo\nthree");
        
        char c = '\n';		//한글자로 취급
        String c2 = "\n"	//둘다 가능.
        
        System.out.println("가나다\b라마");
        System.out.println("하나\t둘\t셋\t넷");
        System.out.println("일이삼\r사오");
        
        //요구사항 : ["안녕~"] 괄호안의 모든 문자를 출력하시오
        System.out.println("\"안녕~\"");
        
        //요구사항 : 파일경로를 출력하시오
        System.out.println("D:\\Java\\Ex01.java");
        }
}

형 변환, Casting

-하나의 자료형을 또 다른 자료형으로 변환하는 작업

-숫자형 ->숫자형

1.암시적 형변환

작은형->큰형

모든경우가 안전하게 복사.

 

2.명시적 형변환

큰형->작은형

경우에 따라 가능o, 불가능o

->불가능한 경우 Overflow발생해서 데이터 이상 발생.

 

관련예제
class Ex08_Casting
{
	public static void main(String[] args)
    {
    //작은 - > 큰
    	byte b1;
        short s1;
        
        b1 = 10;
        s1 = b1;
        
        System.out.println(s1);
        
        short small;
        int big;
        
        //큰형 -> 작은형
        big = 100;
        small = (short)big; //short = int
        System.out.println(small);
        
        int a1 = 2000000000;
        short a2;
        
        a2 = (short)a1;
        
        System.out.println(a2);
        }
}
class Ex11_Casting
{
	public static void main(String[] args) 
    { 
    	// 유효성 검사 할 때 유용하게 사용 
   		//숫자형 -> 숫자형
    	//char -> 숫자 
    	//숫자 -> char
    	char c1 = '힣'; 
    	int n1 = (int)c1;
    	
        System.out.println(n1);
    	
        char c2; 
    	int n2 = 100;
    	c2 = (char)n2;
    	
        System.out.printf("%d => '%c'%n",n2,c2);
    } 
 }

오류,에러(Error),버그(Bug),예외(Exception)

1.컴파일 에러

-문법이 틀림

-고치기 가장쉽ㄴ다.

2.런타임 에러

0문법은 통과:컴파일은 된다

-실행중 에러가 발생

-예외(Exception)

3.논리 에러

-컴파일O, 실행O -> 결과가 의도대로 나오지 않는다.

-발견하기도 어렵고 고치기도 어렵다.

 

관련예제
class Ex09_Exception
{
	public static void main(String[] args)
    { 
    	int input = 0;
        
        System.out.println(100 / input);
     }
}

콘솔 출력

-print(), println(), printf() -format

-형식문자

1. %s -> String 문자열 대체

2. %d -> Decimal정수 대체

3. %f -> 실수 대체

4. %b -> Boolean 대체

5. %c -> Char 대체

 

관련예제
class Ex10_Output_printf 
{ 
	public static void main(String[] args)
    { 
    	// 요구사항 : 안녕하세요 x 5번 출력 
        System.out.println("안녕하세요"); 
        System.out.println("안녕하세요");
        System.out.println("안녕하세요");
        System.out.println("안녕하세요"); 
        System.out.println("안녕하세요"); 
        // 이게 맞는걸까? 
        // 요구사항 : 인사 + 홍길동에게 
        System.out.println("안녕하세요~ 홍길동님");
        String name = "아무개";
        System.out.println("안녕하세요~ "+name+"님");
        
        // 추가사항 : 잘가란 인사 추가 
        System.out.println("안녕하세요~ " +name+"님. 안녕히 가세요~ "+name+"님");
        
        // 형식 문자열,
        Format String -> printf() System.out.printf("안녕하세요~ %s님\n", name);
        System.out.printf("안녕하세요~ %s님. 잘가~ %s님\n", name, name); 
        
        // SQL
        // insert into tblAddress (name, age, tel) values ('hong', 25, '010-123-4567');
        String name2 = "hong"; String age = "25"; String tel = "010-123-4567";
        System.out.println("insert into tblAddress"+ 
        "(name, age, tel) values ('"+name2+"',"+age+",'"+tel+"');"); 
        System.out.printf("insert into tblAddress(name, age, tel) values ('%s',%s,'%s');\n",
        name2, age, tel);
        
        //구구단 5 x 3 =15 int a = 5, b = 3; System.out.printf("(%d x %d = %d)%n",a,b,a*b);
        int num = 12345; System.out.printf("%d*%n", num); 
        System.out.printf("%10d*%n", num); System.out.printf("%-10d*%n", num); 
        int money = 2101010101; System.out.printf("잔액 : %,d원%n", money);
        double d1 = 25.8945631234; System.out.printf("값 : %10.2f%n", d1);
        System.out.printf("값 : %.2f%n", d1); 
        } 
}

 콘솔 입력

1. 바이트 입력

-System.in.read();

-java.io.IOException;

2. 문자열 입력

-System.in.readLine();

관련예제
import java.io.IOException; //java.io 안에 있는 IOException을 쓰기 위한 선언 
class Ex12_input
{ 
	public static void main(String[] args) throws IOException
    {
    	//Ex12_input.java 
        // 사용자로부터 문자 1개를 입력
        System.out.print("문자 한개를 입력하세요 : ");
        int input = System.in.read();
        System.out.println(input);
        input = System.in.read(); 
        System.out.println(input);
        input = System.in.read();
        System.out.println(input);
        input = System.in.read(); System.out.println(input);
        input = System.in.read(); System.out.println(input); 
        input = System.in.read(); System.out.println(input);
        }
}
import java.io.*; 
class Ex15_input_BufferedReader
{
	public static void main(String[] args) throws IOException 
    { 
    	// 또다른 입력 방법
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String input = reader.readLine();
        
        //System.in.read(); 
        System.out.println(input); 
        
        //형변환 // -> (int)"5" 
        // -> (int)'5'
        System.out.println(input + 10); 
        System.out.println(Integer.parseInt(input) + 10);
        } 
}
import java.io.*;
class Ex16_input 
{
	public static void main(String[] args) throws IOException 
    { 
    System.out.print("이름을 입력해주세요 : ");
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    String name = reader.readLine();
    
    // String 클래스의 기능
    char c = name.charAt(0); 
    System.out.printf("입력하신 \"%s\"님의 성은 \'%c\'씨 입니다.%n",name,c);
    } 
}
반응형