728x90

 

 

Java의 연산자들 (단항, 이항, 삼항 , 증감, 산술, 관계, 논리, 복합대입)

키보드로부터 데이터를 입력 받는 방법 Scanner scan = new Scanner(System.in); → java.util.Scanner (import 필요 / API)

Scanner API를 사용해서 사용자에게 값을 입력받아 코드를 작성할 수 있는 작성 순서
1. import java.util.Scanner;를 최상단에 작성하여 Scanner API를 임포트 가능하도록 작성
2. Scanner scan = new Scanner(System.in); 을 작성하여 scan 객체를 생성한다.
→ 여기서 객체변수 이름인 scan은 다르게 작성하여도 된다.
3. scan.nextInt(); 을 작성하여 사용자에게 입력받을 값을 어디에 저장할 지 데이터 타입과 변수를 통해 선언해준다.

 

연산자

 

+, - , % , x 등과 같이 연산에 사용되는 기호를 말한다. java에는 다양한 연산자가 있기 때무에 표로 간단하게 보고 넘어가도 괜찮다.

 

연산자끼리도 연산식 내에서 여러개의 연산자가 사용되었을 때 우선순위가 존재한다. 위의 그래프의 순서대로 우선순위가 정해지며, 단항연산자가 가장 높고 대입(=할당) 연산자가 가장 낮은 우선순위를 가지고 있다.

 

 

 

 

삼항연산식 (조건식) ? A : B

 

삼항 연산자는 3개의 항을 이용하여 조건식을 만들 수 있는 연산자이다. 조건식에는 참(true) or 거짓(false)이 올 수 있으며,
만약 조건식의 결과가 참인경우 식1의 결과를 리턴하고, 거짓인 경우 식 2의 결과를 리턴해준다.

 

 

ex) int a = 9; a < 10 ? “a는 10보다 작다“ : “a는 10보다 크다” (a의 값이 10보다 작으므로, “a는 10보다 작다”라는 문장이 출력된다.

  • 복합 대입(=) 연산자 - 대입연산자(=) : 연산자 오른쪽 수식의 값을 왼쪽 변수에 대입
  • 관계비교 연산자 : 왼쪽과 오른쪽의 대소 관계를 비교하는 연산자 연산의 결과는 참(true) 아니면 거짓(false)으로 두가지 형태의 결과값을 가진다. ** instanceof → 숫자를 비교하는 것이 아닌 부모 클래스와 자식 클래스가 상속관계인지 확인할 수 있는 연산자이다.
  • 논리연산자 : 연산의 결과는 위의 관계비교 연산자와 같이 참 아니면 거짓의 값이 리턴된다.

 

728x90
반응형
728x90
배열(Array) 이란?
같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 ‘배열(array)’이라고 한다.


동일한 데이터를 연속적으로 만드는 방법이 배열이며, 배열을 사용하면 많은 양의 데이터를 손 쉽게 다룰 수 있고, 배열 안에 같이 담기는 데이터들은 같은 타입이어야 한다. 배열도 Object와 마찬가지로 여러개의 기억공간으로 이루어져있는 구조이기 때문에, 배열도 객체로 여겨진다.

저장할 데이터의 수가 많아지면, 개별로 변수가 만들어지는 것 자체가 비 효율적이고, 데이터 처리가 복잡해진다.
→ 배열로 만들어진 데이터는 데이터들끼리 인접해있기때문에, index(색인)을 지정해줄 수 있어, 반복문을 통해 데이터 처리가 용이해진다.

배열의 메모리주소

배열은 배열의 첫번째 항목인 배열[0]의 시작 주소가 배열 전체의 시작 주소와 동일하다.
배열의 몇번째 항목을 출력할 지 정하지 않고 그냥 배열의 이름만 넣어서 출력하면 메모리 주소를 확인할 수 있는데,
이것이 배열이 가리키는 첫번째 항목의 주소이다.

배열만 출력하였을 때 , 내부 데이터로 접근하지 않아서 위와 같은 메모리 주소가 출력된다.

 

만약 int a[] = {10,20,30}과 int b[] = {10,20,30}으로 같은 내용의 값을 가지고 있지만 저장되는 메모리 주소는 다르다. 즉, 내용물이 같다고 해서 같은 배열이라고 볼 수 없다는 것이다. a[0]과 b[0]은 이름만 다를 뿐 아니라 해당 배열이 가지고 있는 내용물이 저장된 장소도 다르다고 보면 된다.

 

 

연속적인 기억공간 하나의 이름을 위의 변수가 a라는 변수라면 전체의 이름은 a이고, a에서 a[0], a[1], a[2] 인덱스 넘버를 이용해서 변수이름[인덱스번호]로 설정하여 해당 배열 내의 데이터로 접근가능하다.
그래서 배열은 반복문을 활용하여 코드를 작성할 때 , 용이하게 쓰인다.
개별로 작성되어 있다면, 인접되어 있지 않아 사이에 다른 메모리가 있기 때문에 기억공간 하나하나에 접근하기 어렵다.

1차원 배열은 선형구조 or 리스트형 구조라고 말하며, 2차원 배열은 행과 열로 이루어진 배열이다.
  • 2차원 배열
행 ↓ / 열 →    
     
     

행과 열로 이루어져 있고 , 만약 array[2],[3] 이렇게 작성되어있다면 위 상단의 표처럼 그려져 있는 표라고 생각하면된다. 1차원 보다는 2차원이 더 많은 기억공간을 사용할 수 있다. 객체 자료형으로 만들어진 클래스도 기억공간이 붙어 있어 배열과 같은 형태로 보일 수 있지만, 클래스는 기억공간 안에 들어가는 데이터들이 각각 다른 데이터 타입들로 담아질 수 있다는 게 배열과 큰 차이점이 있다. 배열은 동일한 데이터 타입만 여러개 담을 수 있는 자료형이다.

배열의 문법 int[] → int 가 여러개 있는 구조라는 이름으로 배열을 설정할 수 있다.

 

배열자료형 → 정수 5개를 저장할 배열을 생성하시오. int[] a = new int[5]; 생성과 동시에 값을 저장하는 것을 초기화라 하며, 배열이 초기화 된 상황이다. 기본값은 int로 설정되었고, 값이 입력이 되어 있지 않더라도 배열은 생성을 하면 기억공간 안안에 int의 기본값인 0으로 초기화가 되어있다.

배열의 인덱스는 0번부터 시작이 되며 , 변수가 대표이름이 되고 인덱스(색인)번호에 따라 기억공간을 가르킬 수 있고, 배열의 변수 이름은 배열이 생성된 변수이름[index번호] 위와 같이 정해진다. 또 해당 배열의 데이터가 이동이 될 때, 번지를 가리키고 있는 a가 이동이 되기 때문에 a를 이동하게되면 언제든 a가 참조하고 있는 배열의 데이터들을 사용할 수 있기 때문에, 이동이 쉬워진다.

public class ArrayMake {
    public static void main(String[] args) {
        //Q.정수 5개를 저장 할 [배열]을 생성하시오.
        int[] a = new int[5];
        /*
        5개의 연속적 메모리공간을 만든 후 정수 5개가 들어가야하기때문에 타입은 전부 int이다.
        구조의 이름읜 int[]이고, 1차원 배열이되고 배열도 하나의 Object라고 여겨진다.
        */

        for(int i=0; i < a.length; i++) {
            a[i] += 10+i;
            System.out.println(a[i]);
        }
    // 배열은 반복문을 사용하여 데이터를 출력하면 효율적으로 출력이 가능하다.
    }
}

//출력 -> 10,11,12,13,14

 

 

 

 

 

 

배열의 초기화 (실습)

int[] a = {10, 20, 30, 40, 50}과 같이 작성하여 기본 값이 아닌 다른 값으로 초기화 할 수 있다.
이 때, 이렇게 작성하게 되면 new 연산자를 사용하지 않고도 초기화 하는 것이 가능해진다.
해당 리스트는 초기화 리스트라고 불리고, { }안에 적힌 갯수만큼 배열이 만들어진다.
new int[5]; 로 작성하지 않더라도 배열을 생성할 수 있는 문법이다!

int[] a; a = {10, 20, 30, 40, 50} 이와같이 두 줄로 작성하게 되면 초기화 되지 않는다 초기화 리스트는 변수와 한줄로 작성이 되어야지 에러가 나지 않고 올바르게 초기화 된다.
두 줄로 나뉘어 졌을때의 초기화 방법은 int[] a; / a=new int[]{10,20,30,40,50} 이렇게 작성해주어야 한다.

728x90
반응형
728x90


객체란?

 

 

객체는 관련된 데이터와 함수(일반적으로 여러 데이터와 함수로 이루어지는데,
객체 안에 있을 때는 보통 프로퍼티와 메소드라고 부른다)의 집합

개발자가 다루는 데이터의 대부분은 객체(Object)이다. 온라인 서점을 구축할 때에의 데이터는 책이고,
영화예매 예약 시스템을 구축 할 때에는 데이터는 영화가 된다.
이러한 책과 영화 같은 데이터를 변수에 저장하기 위해서는 새로운 자료형이 필요!
이러한 새로운 자료형(사용자 정의 자료형)이 왜 필요하고 어떻게 만들어 사용하는 지를 이해하는 것이 중요하다.

 

새로운 자료형이 필요한 이유?

 

객체 데이터는 하나의 구조(하나의 변수)로 이루어진 데이터가 아니라
여러 개의 구조(여러개의 변수)로 이루어진 데이터이다.
객체 데이터를 변수에 저장하기 위해서는 새로운 자료형이 필요하기 때문에
개발자가 직접 자료형을 만들어서 사용하는 것이 “객체지향 프로그래밍”이다.

 

객체 지향 프로그래밍 : OOP(Object Oriented Programming

 

 

 

데이터 변수를 한 곳에 묶어서 담아서 이동하는 것이 훨씬 편리하기 때문에,
데이터를 구분해서 여러개로 만들어서 하나의 객체로 만들게 되면 데이터처리가 불편하다.

개별로 표현된 데이터들을 하나의 구조로 묶어서 이동하게되면 효율성이 올라가고
클래스 및 패키지에서도 재사용이 가능해진다. (1개의 형태로 이동이 가능)

 

여러 가지인 기억공간을 묶어서 하나로 만든것을 “구조” 라고 한다.
현실세계에서는 구조가 다양한 의미로 쓰이지만,
프로그래밍에서는 기억공간을 여러개로 이어서 만든 하나의 구조를 말한다.


각각의 기억공간에 들어가는 데이터들은 전부 이질적(다름)이다. 하나의 자료형 데이터만 들어가는 것이
아닌 int, String, float 등 서로 다른 구성요소로 이루어지는 것이 진정한 객체가 될 수 있다.

 

★ 구조로 이루어진 것들이 “객체” (Object)라고 할수 있다.

UDDT (사용자 정의 자료형) : 객체 자료형 이라고 말하며 사용자가 직접 정의 하는 것이다.
컴파일러에 내제된 기본 자료형만으로 내가 원하는 결과를 내기 힘들기 때문에 객체 자료형이라는 class를 통해 객체지향적인 콘텐츠를 구현한다.
타입이 다 다를수 있으며 오직 하나의 데이터타입으로 통일된 배열의 개념과는 다르다.

 

 

 

 

class라는 도구를 이용해서 새로운 자료형을 내가 원하는 내용으로 설계할 수 있다.

모델링이란 ? 

일반적으로, 모두에게 공통적으로 이해되도록 약속된 방식(수식,그림 등)으로 표현하는 것

  • 복잡한 현실세계를 단순화(추상화) 즉, 추상적 체계적으로 표현하는 작업 또는 방법
  • 관련자들끼리 상호이해를 쉽게 하도록 다이어그램화 함 현실세계에 있는 객체 책(Object) 많은 상태정보가 존재할 수 있겠지만 객체지향 프로그래밍에서 클래스로 만들어야 하기 때문에 불필요한 속성들을 제외하고 필요한 속성들로만 만드는 것을 모델링이라고 한다.

각각의 인스턴스들이 모여서 book으로 담겨서 하나의 새로은 객체 자료형이 될 수 있다.

//Q. 한 권의 책 데이터를 저장하고 출력해보자 (6개의 변수로)

        String title = "JAVA";
        int price = 30000;
        String company = "민음사";
        String author = "권민지";
        int page = 700;
        String isbn = "11100995";

        System.out.println(title + "\t" + price + "\t" + company + 
				"\t" + author + "\t" + page + "\t" + isbn);

//출력 -> JAVA	30000	민음사	권민지	700	11100995

위와 같이 book이라는 자료형을 하나 만들기 위해서 6개의 변수를 선언했지만, 만약 다른 메서드로 이동을 시켜 출력하고자 할때, 6개의 변수를 담을 구조를 먼저 생성한다고 생각해야한다.
이 후, 각각의 변수를 해당 구조에 담는다면 6개의 데이터가 하나의 구조에 다 들어가게되고 이동을 시킬 때,
구조화 하여 이동하게 된다면 1개만 이동해도 6개의 데이터가 함께 이동하게 되어 효율성이 올라간다.
이러한 구조를 만드는 것을 class를 설계한다고 생각하면된다.

 

 

class : 새로운 자료형을 설계하는 도구 (Modeling) 기존 main 메서드에 작성한 것이 아닌 별도의 Book.java 파일을 생성하여 class를 따로 만들어준 후 해당 클래스를 main 메서드로 이동할 수 있도록 하는 것이다.

책이라는 자료형을 만든 후 해당 자료형을 변수에 담는방법이다.

먼저 선언된 변수에 바로 객체를 넣는다면 b라는 변수의 기억공간에는 1개의 데이터밖에 넣을 수 없기때문에 여러개의 데이터로 이루어진 “책”이라는 객체 데이터는 바로 변수에 담을 수가 없다. 여기서의 b라는 변수는 기본 변수에서 사용하는 변수가 아니고 b에는 객체가 저장되어 있기 때문에 객체변수라고 부른다. (아무것도 가르키고 있지 않음)

  1. 객체를 생성한다는 것은 선언이 된 Book b; 가 b라는 변수엔 Book의 객체가 담아진 게 아니라 해당 객체의 데이터들이 담긴 구조가 메모리로 만들어지며 메모리 = 번지 수 라고 생각하면 되는데, b가 담을 수 있는 자료형이 Book 이라는 말은 b의 번지수를 찾아가보니 b라는 변수가 Book이라는 메모리를 가리키고 있는 것을 알 수 있다. 메모리의 번지가 생성되며, 번지를 b에다가 담아 번지수를 통해 Book 객체로 접근할 수 있게 된다. 메모리가 만들어지면 실체화가 되고, 이 실체는 인스턴스(instance)라고 부른다.
  2. b에 담긴 번지가 Book이라는 자료형을 할당을 통해 가르켜줄 수 있게 되고 , 이 때, 변수 b는 실체 대상물을 가르키고 있기 때문에 인스턴스 변수라고 부른다.

 

Q. 한 권의 책을 변수에 저장하기 위한 객체를 생성 하시오 (책 한 권을 저장하기 위한 [인스턴스 변수]를 만드세요)

Book b = new Book(); → 인스턴스 변수 이 후 인스턴트 변수인 b를 이용해서 메모리 안에 저장된 데이터들로 접근이 가능해지는데, 이 때, Dot (도트연산자) = 참조연산자 “ . “ 을 이용해서 접근할 수 있다. ex ) b.title / b.price / b.company …등 .연산자를 이용해서 접근 가능

728x90
반응형
728x90
Binary Text 실습

 

//Q. 69를 10진수, 2진수, 8진수 , 16진수로 출력해보자

        int decimal = 69;
        System.out.println("decimal = " + decimal);
        
        int binary = 0b01000101; //2진수에는 0b를 붙여준다.
        System.out.println("binary = " + binary);
        
        int octal = 0105; //8진수에는 0을 붙여준다
        System.out.println("octal = " + octal);
        
        int hexa = 0x45; //16진수에는 0x를 붙여준다.
        System.out.println("hexa = " + hexa);


API의 도움을 받아서 숫자를 변환해볼 수 있다.

toBinaryString(data) → 해당 메서드를 사용하면 int 값을 2진수로 변경해준다. 이후 변경된 값을 String binary에 담아 출력해보았다. toOctalString → 8진수로 변환해주는 메서드 toHexString → 16진수로 변환해주는 메서드

charTest / 아스키 코드에 대해서 이해해보자
아스키 코드에서 몇가지 숫자만 외워두고 앞뒤로 더해서 기억하면 된다

‘0’ = 48 / ‘a’ = 97 / ‘A’ = 65

 

public static void main(String[] args) {

        //Q. '가'라는 한글 한 문자를 변수에 저장하고 출력하시오.
        char a = 'A';
        System.out.println("a = " + a);
        int a1 = 'A';
        System.out.println("a1 = " + a1);
        System.out.println("a1 = " + (char)a1);
        //char 자료형은 2byte로써 4byte인 int 자료형에는 담길 수 있다.
        //단 아스키코드표에 있는 숫자형으로 변경되어 저장된다.
        //char 자료형을 문자 그대로 출력하고 싶을 땐 변수 앞에 (char)를 기입하여 형변환을 진행해준다.
        
        //Q. 대문자 'A'를 문자 'a'로 변환하여 출력하시오 (아스키코드참고)
        char upper = 'A';
        char change = (char) (upper + 32); //'a'
        //알파벳 대문자 아스키코드의 숫자와 소문자에 해당하는 숫자의 차이가 32이기 때문에,
        //대문자 아스키코드 숫자에서 +32를 하면 소문자가 / 소문자의 숫자에 -32를 하면 대문자로 바꿀 수 있다.
        System.out.println("upper = " + upper);
        System.out.println("change = " + change);

       //Q. '1' + '2' = 3이 나오도록 프로그래밍 해보자
        int z = '1'; //49
        int x = '2'; //50
        int sum = (z-48)  + (x-48);
        System.out.println("sum = " + sum);
    }

 

형 변환 (Casting) - 값의 타입(DataType)을 다른 타입으로 변환하는 것
(변환할 DataType)변수; → 해당 문법과 같이 작성한다.

 

자동 형변환 (묵시적) : 작은 type이 큰 type에 저장되는 경우 (예 : byte → int) 강제 형변환 (명시적) : 큰 type이 작은 type에 저장되는 경우(예 : int → byte, 손실발생) / 타입을 강제로 맞춰야하는 것이 강제 형변환 ** boolean type은 형변환이 안된다.

ex) int(4byte) → char(2byte) 형변환 = (char)65 → ‘A’

ex) float(4byte) → int(4byte) 형변환 = (int)2.6f → ‘A’ 여기서 float는 2.6 소수점이 있지만 int는정수형으로서 소수점 아래는 잘려서 출력된다. 이 때, 2(손실)의 값 손실이 발생하게 된다.

 

public class CatstingTest {
    
    public static void main(String[] args) {
        
        float f1 =.10f;  // 0.10
        System.out.println("f1 = " + f1);
        
        float f2 = 15f; // 15.0
        System.out.println("f2 = " + f2);
        
        float f3 = 3.14f;
        System.out.println("f3 = " + f3);

        double d1 = 123.4567;
        System.out.println("d1 = " + d1);

        float x = 15.6f;
        int y = (int)x;
        
        실수형 데이터가 정수형 데이터에 저장하려면 (int)로 강제형변환을 진행해야 함
        강제 형변환 시 값 손실이 발생한다.
        
        System.out.println("y = " + y);

        char c = 'A';
        int cc = c;
        System.out.println("cc = " + cc);
        
        c는 2byte, cc는 4byte로 수치형 자료로 서로 호환이 가능하기 때문에,
        자동형변환이 가능하며, 값 손실이 발생하지 않는다.
        
    
    }
}

 

728x90
반응형
728x90

 

 

변수 / 자료형 / 할당

변수(Variable) : 데이터를 저장하는 메모리 공간의 이름 (symbol)
자료형(Datatype) : 변수의 크기와 어떤 종류의 데이터를 저장할 것인지를 결정하는 것
할당(Assign) : 변수에 데이터를 저장하는 것

 

쉽게 말하자면 변수 - 데이터를 담는 그릇이라고 볼 수 있다.
클래스란 JAVA 에서 객체를 생성하기 위한 설계도 클래스명은 반드시 소스 파일명과 일치해야 하며,

public 접근 지정자가 지정된 클래스는 반드시 클래스 파일 내, 하나의 클래스만 존재할 수 있다.


클래스 구성은 필드 , 생성자, 메서드, 내부 클래스가 있다.

필드 - 객체의 데이터를 저장
생성자 - 생성된 객체를 초기화 메서드 - 객체의 동작을 실행 내부

클래스 - 클래스나 인터페이스의 내부에 선언

변수를 만들 때 고려되는 것?


크기와 데이터의 종류 자료형에 대해서는 어느정도의 크기로 만들것인지, 변수에 어떤 종류의 데이터를 넣을것인지에 다른 자료형의 종류를 알아야한다. 기본 자료형 : byte,short,int,long, float, char, boolean (java에서 기본적으로 제공해주는 자료) 변수를 만들려면 ( 메모리에 기억공간을 만들려면?) → 선언을 해야한다. 선언 : 자료형과 변수가 만나야한다.

 

 

Q. CarTest라는 클래스를 선언, 관련 변수들을 선언해보자.
public class CarTest {
    public static void main(String[] args) {
    
        //Q. 자동차의 정보를 저장하는 변수를 만들어보자
        String model = "BMW528i";  // -> 문자열 데이터가 필요

        long distance = 100000l; 
        
		/*long으로 선언 시, 숫자 끝에 l를 기입하여 크기를 지정해준다. 
		그냥 숫자를 기입하면 int형으로 인식하는데, long은 8byte int 4byte이기 때문에 
		데이터의 크기를 잘 보고 l을 붙여주어야한다.*/
        
        int price = 9000000;
        String company = "BMW";
        char type = 'A';
        boolean auto = ture;
        int year = 2000;

        float gasmi  = 12.5f; 
        
		/*float로 선언 시 , 실수를 담고자 하는데 기본으로 double를 인식하며 실수는 정밀도를 위해 선언하니 
		소수점 아래 숫자가 00000...으로 많이 쪼개져야하는데, 그냥 12.5는 double로 인식되기 때문에 4 byte인
		float엔 담길 수 없어 값 마지막에 f를 붙여주어서 float 형임을 명시해주어야한다.*/
    }
}

 

변수 선언과 할당 및 초기화

 

변수 선언 : 자료형과 변수가 만나는 것 → 변수(기억공간)가 메모리에 만들어진다.

 

 

할당 : 변수에 지정된 데이터 타입에 맞게 데이터를 저장(대입)하는 행위 → 대입연산자

L-Value = R-Value; → 왼쪽 value에는 변수가 들어가고, 오른쪽 value에는 변수, 상수, 연산식, 메서드 호출문 등 다양한 데이터가 입력될 수 있다.

초기화 : 변수를 만들고 난 후 연산을 하기 전에 값을 저장하는 행위

ex) int a; a는 초기화가 안된 상태고 기억 공간은 만들어져있지만, 아무런 값도 들어가있지 않다 (쓰레기 값이 들어가있으며, 연산이 불가능하다.) 만약 해당 상황에서 a = a+1;의 연산을 하게되면 a라는 기억공간엔 쓰레기 값이 들어있기 때문에, 해당 연산을 실행하면 에러가 발생하게 된다. a=0; 이런 식으로 꼭 초기화를 해주어야 함

변수와 심볼테이블(symbol table) / 자료형(Data Type)
Symbol table이란 ? 변수가 만들어지면 변수를 관리하는 테이블에 변수 정보가 저장된다.

메모리는 adress를 갖게되는데 해당 주소로 해당 변수를 찾아가는 것 a의 값을 찾으려면 a의 변수 위치를 먼저 찾아간 후, a의 번지(Value)를 불러오는 것

 

만들어서 사용할 수 있는 자료형 = CLASS

사용자가 정의하여 쓰는 자료형들은 java에서 제공하는 기본 자료형이 아닌 객체자료(정수나 실수로 표현할 수 없는)를 변수에 저장하기 위해 만들어진다. ex) 책이라는 데이터를 변수에 저장하기 위해선 제목, 저자, 가격, 출판사 ,페이지 수 등의 속성들로 구성되어 있는데, 이를 객체자료라고 하며, 하나의 변수로서 정의할 수 없다. 각각의 기억공간들 (변수들)을 하나로 묶어서 책이라는 구조를 만들어야하는데, 이를 CLASS라는 객체지향 도구로 만들 수 있다.

 

 

Java 내부 API

변수 앞에는 자료형이 오는데 자료형은 크게 기본 자료형 , 사용자 정의 자료형으로 나뉜다. ex) mybook b; -> 이와 같이 사용자가 임의로 선언한 변수의 경우 java가 가지고 있는 API에서 불러올 수 없는 자료형이기 때문에 바로 에러가 발생한다.

public class FindAPI {
    public static void main(String[] args) {
        int a;  //단순한 변수 선언
        a = 10;
        System.out.println(a);
        //"APPLE" 라는 문자열을 저장하고 출력해보자
        String s = "APPLE";
        System.out.println("s = " + s);
        System.out.println(s.length());
        //String에는 길이를 구하는 동작 , 대-소문자 구분하는 것, 동작을 구분하는 기능을 함

 

java는 자료형을 사용하게 되면 컴파일러가 기본적으로 가지고 있는 자료형이 아닐 때, java에서 제공해주는 API를 찾아가게 되는데, API는 클래스들의 집합체이다.

컴파일러가 알고 있는 API 위치로 이동하게 되는데, External Library폴더 내에 가지고 있다. 컴파일러가 API를 하나하나 찾게 되면 너무 오래걸리기 때문에, String을 입력하면 String 앞에는java.lang.String이 생략되어 String으로 적히게 되는것이다.

여기서 java.lang은 package이며, 쉽게 설명하면 폴더라고 생각하면 된다.경로로 치면 java -> lang -> String으로 이동하여 String 자료형을 불러와 주는 것.

728x90
반응형
728x90

ㅇㅏ직 java 패스트캠퍼스 인강 13%밖에 수강 못했는데, 60%이상은 들어야 지금 수업을 이해할 수 있다고 했는데,,,,,
13%듣는것도 3~4 시간 걸렸는데 ,,,, ㅎㅎ;; 그래도 영차 영차 들어야지 ..^^
오늘 갑작스레 팀 과제를 내주셔서 결국 개인공부는 1도 못했다.... 자습만 하던 옛 시절이 그립다...
분명 코딩 실력은 더디고 느리게 올라가다가 한순간 팍 오른다고 했는데 ..^^ 난 수업 수료하고 나서는 될까 싶다 ㅎㅎㅎㅎ

타자 실력만 엄청 느는중! 지금 한컴타자하면 1000타 나올지도!

다른 사람들의 블로그 글 볼때에는 글이 되게 길게 가독성있게 잘 적혀있다고 생각했는데, 쉽지 않네 블로거의 길 ^^

 

 

728x90
반응형

'(๑・ิ◡・ิ๑)' 카테고리의 다른 글

[콘서트] Charlie Puth 콘서트 후기 👍  (1) 2023.10.21
[일상] 캠핑!  (0) 2023.06.12
[일상] 정보처리기사 시험이랑 절교  (1) 2023.05.31

+ Recent posts