ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2023년 05월 24일 공부 내용 정리 ( java~)
    국비 교육 내용 정리 2023. 5. 24. 16:53

    => 개인 노트북으로 복습!!!

    * 수업 내용 백업 파일 업로드 하는방법

    기존 파일 마우스 우클릭 COPY -> 바탕화면 붙여넣기 

    -> 이클립스 실행 후 import project -> general -> 경로 선택 

    위의 네모 체크해야함!

    -> 우클릭 properties 을 해준후 resource 들어가서 경로 제대로 들어갔는지 확인

     

     

    * 수업 요점

    1. 언어이해 

    2. 웹 이해 

    3. 프로젝트 

     

    * 설치 ( ~Spring 까지 갈 예정)

    1. 이클립스 17  ( 최신꺼 다운받으면 스프링 가서 문제 생김)

    - 2022-12월  윈도우 버전 다운로드

    https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2022-12/R/eclipse-jee-2022-12-R-win32-x86_64.zip&mirror_id=1273

    create a project 클릭-> java project 생성 -> project name 작성! -> create module 해제 -> 실행! 

    -> 밑에 작업표시줄에 아이콘 고정 하기~

     

     

     

    2.  jdk

     

     

    ★ 기억하랏

    - 자바 저장 하는 공간은 워크 스페이스라고 함

    - 자바는 시스템에 독립적이다.

    인스턴스(주소) 에가면 클래스가 있다.

    ★인스턴스는 변수에 저장한다.

    클래스 안에는 변수메소드가 있다.

    1.클래스는 첫문자 항상 대문자 

    2.변수와 메소드는 첫문자 항상 소문자

    ★자바의 자료형 

    1. 기본자료형 (boolean,char,byte,short,int,long,float,double)// 배열전

    : Value O

     

    2. 참조자료형  // string 들어가면 사용~ 

    : instance O

     

    ★ 소스의 위치

    1. 기본적으로 자바는 src 밑에 있음

    2. package 생성

    3. class 생성 

    4. main 은 main +  ctrl + space)임

     

    ★ 기본적으로  자바는 정수를(소수점x) 넣으면 기본적(리터럴)로 넣으면 int type 이 됨.

    < - > 소수점o double

    ex)1.float f1 =1.0 쓰면 안됨.. double 써야함 

    해결책은   float f1 = 1.0f;

           2.        double d1 = 1.0; 

            3.       doubl3 d12 = 1;

     

     

    ex) 어떤 플랫폼 썻어요? 

    : open jdk 에서 17버전을 썼습니다~ 이클립스 00 versison을 썼고 웹은 톰캣(자바)을 썼습니다. 

      또한 파이썬의 웹 애플리케이션의 장고를 사용했습니다. 

     

    - casting ? 형변환이라 한다.

     

    * 코딩 실습 1

    package ch02_var;

    public class VarEx1 {

    public static void main(String[] args) {

    //변수의 선언 및 초기화

    byte b1 = -22;

    byte b2; // 변수의 선언. b2 저장공간 메모리 1바이트(8bit) 할당.

    // 바이트로 저장할 수 있는 값의 범위. -128 ~ 127 저장가능

    b2= -128; //변수의 초기화

    b1=127;

    short s1 = -220;

    int il = 100;

    long ll = 1000; //auto cating

     

     

    System.out.println(b1);

     

     

     

     

    }

    }

     

    출력값 : 127

     

     

    package ch02_var;

    public class VarEx1 {

    public static void main(String[] args) {

    //변수의 선언 및 초기화

    byte b1 = -22;

    byte b2; // 변수의 선언. b2 저장공간 메모리 1바이트(8bit) 할당.

    // 바이트로 저장할 수 있는 값의 범위. -128 ~ 127 저장가능

    b2= -128; //변수의 초기화

    b1=127;

    short s1 = -220;

    int il = 100;

    long ll = 1000; //auto cating

     

     

    //System.out.println: 화면에 값을 출력.

    System.out.println("b1=" + b1); // b1=-22

    System.out.println("s1="+s1);

    System.out.println("il="+il);

    System.out.println("ll="+ll);

     

     

     

    }

    }

    출력값: 

    b1=127

    s1=-220

    il=100

    ll=1000

     

     

    package ch02_var;

    public class VarEx1 {

    public static void main(String[] args) {

    //변수의 선언 및 초기화

    byte b1 = -22;

    byte b2; // 변수의 선언. b2 저장공간 메모리 1바이트(8bit) 할당.

    // 바이트로 저장할 수 있는 값의 범위. -128 ~ 127 저장가능

    b2= -128; //변수의 초기화

    b1=127;

    short s1 = -220;

    int il = 100;

    long ll = 1000; //auto cating

     

     

    //System.out.println: 화면에 값을 출력.

    System.out.println("b1=" + b1); // b1=-22

    System.out.println("s1="+s1);

    System.out.println("il="+il);

    System.out.println("ll="+ll);

     

     

    float f1 =1.0f;

     

    double d1 = 1.0;

    double d12 = 1d;

     

    System.out.println("f1=" +f1);

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

    System.out.println("d12=" +d12);

    /*

    * 실수형 리터럴의 기본자료형은 double 임

    * float 리터럴로 표시하기 위해서는 접미사를 붙여야 한다.

    * F,f : float 리터럴

    * D,d : double 리터럴

    * L,l : long 리터럴

    */

     

     

    }

    }

    출력값:

    b1=127

    s1=-220

    il=100

    ll=1000

    f1=1.0

    d1=1.0

    d12=1.0

     

    * 코딩 실습 2

     

    용량 참고

     정수형 : byte, short, int, long
        
       정수형 datatype의 표현 가능한 범위
       - byte 변수명;  // -128 ~ 127
       - short 변수명;  // -32768 ~ 32767
       - int  변수명; // -2,147,483,648 ~ 2,147,483,647
       - long 변수명; // -9223372036854775808 ~ 9,223,372,036,854,775,807

      (long에는 대입하려는 데이터옆에 l혹은 L을 붙여도되고 생략 가능)
        
       실수형 : float, double


       실수형 datatype의 표현 가능한 범위
       - float 변수명; // 1.40129846432481707e-45 ~ 3.40282346638528860e+38

        (float에는 대입하려는 데이터옆에 f또는 F 붙여야하고 생략불가능
       - double 변수명; //4.94065645841246544e-324d ~ 1.79769313486231570e+308d

        (double에는 대입하려는 데이터옆에 d또는 D를 붙여도 되고 생략 가능)

     

    -> 주의! double, long형은 데이터 뒤에 l,L,f,F를  생략가능함 

    float형을 쓸 때는 반드시 데이터를 대입할 때 데이터 끝에 f또는 F를 붙여줘야 한다. 

     

     

     

     

    <코드값> : 캐스팅은 마우스를 갖다대면 오토캐스팅 진행이됨!

     

     

     

    package ch02_var;

    public class VarEx2 {

    /*

    * 형변환 예제

    * 큰자료형<=작은 자료형: 자동형변환

    * 작은자료형 <= 큰자료형: 명시적 형변환

    * byte(1) < short(2) < int(4) < long(8) < float(4) < double(8) char(2)

    * A=B : 같다 의 의미가 아니고, 대입의 의미임.

    * B의 값을 A에 입력함.

    * left value(A) : 대입연산자의 왼쪽의 값. 반드시 변수여야함.

    * right value(B) : 대입연산자의 오른쪽의 값, 변수, 리터럴, 수식 가능

    */

     

     

     

     

     

     

    public static void main(String[] args) {

     

    int a = 10;

    char aa = 'a';

    //1. 참조형과 기본형은 형변환 불가

    String s = "a"; // " ":문자열,String, ' ':문자, char

    // s = 'a'; // 참조형인 String 기본형인 char 형이 변환 불가.

    // 2. 기본형 사이에 boolean을 제외한 7개는 서로 형변환이 가능함

    byte b1 =(byte) 255; //byte가 255보다 용량이 작기때문에 (byte) 선언함, 마우스 대면 자동 변환됨!

    int i1 = b1;

    byte b2 =(byte) i1;

    System.out.println("b1:"+b1+", i1="+i1);

     

    byte b3 = 100;

    System.out.println("b3=" + b3);

     

    출력값:

     
     

    b1:-1, i1=-1

    b3=100

    c2=￿

    s1=65

    charint=charint

     

     

    <코드값>

    package ch02_var;

    public class VarEx3 {

    public static void main(String[] args) {

    // 정수(10) 리터럴은 int

    // 실수(10.0) 리터럴은 double

    byte b1 = 10;

    short s1 = 20;

    int i1 = 100;

    long l1 = 1000;

    i1 = b1; //int(4byte) <= byte(1byte) auto casting type

    s1 =(short) l1; //auto casting type

    float f = l1;

    l1 = (long) f;

     

    }

    }

     

    * 코딩 실습 3

     

    <코드값>

    package ch02_var;

    public class VarEx4 {

    public static void main(String[] args) {

    System.out.println("합:"+1+2+3);          // 스트링은 기본형을 만나면 스트링값으로 바뀐다

    System.out.println(1+2+3 + "합");        // 반대로 생각해보면 되겠지요?

    String aaa = 111+""; //aaa가 기본형이고 111은 스트링값이다. 근데 111도 기본형이고 싶다 하면 뒤에 +"" 를 붙여 주면 된다!

     

    }

    }

     

    <결과값>

    합:123

    6:합

     

     

     

    * 코딩 실습4  ( 마이너스값 처리 방법)

    <코드값>

    package ch02_var;

    public class VarEx6 {

    public static void main(String[] args) {

     

    byte b1 = -1;

    byte b2 = -10;

    byte b3 = -128;

    System.out.println(b1+": "+Integer.toBinaryString(b1));

    System.out.println(b2+": "+Integer.toBinaryString(b2));

    System.out.println("9="+Integer.toBinaryString(9));

    System.out.println(b3+":"+Integer.toBinaryString(b3));

    System.out.println("127:"+Integer.toBinaryString(127));

    }

    }

     

     

    <결과값>

     

    -1: 11111111111111111111111111111111

    -10: 11111111111111111111111111110110

    9=1001

    -128:11111111111111111111111110000000

    127:1111111

     

     

    <코드값>

    public class VarEx77 {

     

    public static void main(String[] args) {

            byte b1 =   (byte) 255;

    int i1 = b1; //-1 

    System.out.println("b1:"+b1+", i1="+i1);

    char c1 = 'A';

    short s1 =  (short) c1;

    char c2 =  (char) b1;  //-1

    System.out.println("b1="+b1);  //-1

    System.out.println("c2="+c2);  //대입문자 없음

    /*

    *  1111111111111111  char : 2byte

    * - 111111111111111

    * =================

    *                 0 

    *                 보수 + 1 값은 1 이고 sign bit 1이여서 -1이 된다

    */

     

    System.out.println("s1="+s1);  // A의 문자의 int 값

    int charint = c2; // 1111111111111111 

    System.out.println("charint="+charint+" , c2="+c2);

    System.out.println("65535:"+Integer.toBinaryString(c2));

     

     

     

     

    }

     

    }

     

    <결과값>

    b1:-1, i1=-1

    b1=-1

    c2=￿

    s1=65

    charint=65535 , c2=￿

    65535:1111111111111111

     

     

    * 오늘의 퀴즈  

     

    //1. 잘못된 문장을 골라내고 그 이유를 설명하시오.

    package ch02_var;

    public class ExVar01 {

    public static void main(String[] args) {

    char a='a';

    char b="a";

    String c="a";

    String d='a';

    char e='ab';

    String f="ab";

    char g = '';

    String h = "";

     

     

     

    }

    }

     

     

    <정답>

    package ch02_var;

    public class ExVar01 {

    public static void main(String[] args) {

    char a='a';

    char b='a';

    String c="a";

    String d="a";

    char e='a'; // 문자 한개만 가능함

    String f="ab";

    char g = 'a'; // 문자 한개만 가능함

    String h = "";

     

     

     

    }

    }

     

     

    //2. 잘못된 문장을 골라내고 그 이유를 설명하시오.

    public class DataEx02 {

    public static void main(String[] args) {

     

    byte var1 = 128; 

    short var2 = 128; 

    int var3 = 128L; 

    long var4 = 128L; 

    float var5 = 123456.789123; 

    double var6 = 123456.789123; 

     

    }

    }



    <정답>

     

     

    //3. 잘못된 문장을 고쳐서 에러가 발생하지 않도록 수정하시오.

    public class DataEx03 {

    public static void main(String[] args) {

    byte var1 = 127;

    short var2 = 128;

    int var3 = 128;

    long var4 = 128;

    var4 = var1;

    var1 =  var3;  

    float var5 = 1.0;

    double var6 = 1.0;

    var5 =var6;

    var6 = var5;



    }

    }

     

    <정답>

     

     

     

     

     

     

     

     

     

     

Designed by Tistory.