언어에는 연산자, 제어구조, 배열, 함수, 구조체가 있다.

각 언어마다 특징이있다.
과거 : 플랫폼을위해탄성
현재 : 특정기술에맞는 특화된언어
ex:그루비(자바 위), 스칼라(자바 위 )




자바 :규칙, 단일방법, 객체지향

변수선언 : 반드시 영문소문자로, 스페이스 (X) ,특수기호(X)

형변환 : Cascading

번역기를통해 프로그램을만든다.
메모리+CPU는 쉽게달라지지않는다(계산기 기능이 바뀌지않는거처럼)
계산기능 + 계산값을저장할 공간(메모리) + 실행기(real machine)
계산 ->인터페이스-> 출력 : 모니터 직접사용하지않는다.
인터페이스 : 간접적으로만나게. 밑단을 가려줌.함수형태

플랫폼이 프로그램을 직접사용하지않고 반드시 인터페이스API(함수형태)이용

프로그램 : 절차언어역할
절차작성 : 프로그래밍
입출력도구 : 플랫폼 (자동차,냉장고,소프트웨어들 카카오톡,페이스북)

어떤API쓰니 ? = 어떤플랫폼쓰니 ?


 

콘솔:

콘솔은 입력장치와 출력장치를 총칭하는 말

사용자인터페이스, 입출력장치, 함수형태
과거 : 라디오(주파수) ->스크린(색감조정,전원=콘솔) ->스크린안에 여러스크린이 생김(윈도우창같은)리얼콘솔,virtual콘솔=>사용자인터페이스

컴퓨터 기본콘솔 : 모니터, 키보드, (프린터x 마우스x)

자바플랫폼이 제공하는 기능 : 콘솔

 

함수이름: 직관적인 이름사용

System.out(포장지역할).write(30);

함수들은 객체안에 포함

 

 

 

출력스트림을 통해 비동기처리

자바 변수선언 / 부동소수점 / 함수의 역할/ OutputStream

스트림이란?

자바에서 데이터는 stream을 통해 입출력된다. stream은 데이터가 출발지에서 나와 도착지로 흘러가는 단일방향의 흐름.

입력과 출력을 동시에 수행하려면 입력스트림, 출력스트림이 필요하다.

스트림에는 버퍼가 포함되어있다.

 

출력스트림을 통한 비동기처리

API write(3)을 넣고 호출할때, 모니터를 직접사용하지 않는다.

프로그램과 모니터가 1:1로 동기화하지않는다. (1:1로 일을하지않는다)
어플리케이션은 여러개 존재하기 때문에 동기화를 하게될 경우 모니터는 과부하된다.
입출력 길목에 버퍼를 두고 값을 버퍼(=대기장소)에 머물게한다.


자바는 운영체제위에서 사용 ->운영체제버퍼, 자바의 버퍼 각각 존재
출력버퍼, 입력버퍼 : 함수이용->출력
함수를 갖고있는 포장지역할 : out 
출력버퍼는 물리적으로 컴퓨터안에서 출력을위해 사용하는 데이터공간(메모리상에있음/실존)
비어있는공간에 값을 넣는다.

 

개체(Entity)와 객체(Obejct)

개체(Entity)와 객체(Object)

API는 객체로 포장되어있다.
출력될때 사용되는 대상(출력버퍼가 대상),모니터가 대상이아니라 버퍼가 대상
대상을 준비해놓고 함수이용
개체 (entity) :실존하지않는것, but 식별가능, 자동차메뉴, 음식메뉴, 메뉴명,

                  명칭은분명하지만 실존하지않는다. 메뉴이름, k7

                  타입명칭=자료형명=형식명칭
객체 (object) : 실존물,쇠돌이,실체,인스턴스 
                   쇠돌이는 k7의 객체이다=쇠돌이는 k7의 인스턴스이다
자동차를 주문할때 k7주세요할수있지만, 실존하면 k7라고하지않는다. 나의 k7이다. 소유격(너의, 나의)사용
객체에 이름을 부여한다. k7형식(개체)의 쇠돌이(객체)다.
부여한 이름을 객체이름, 참조변수라고 한다.


Stream객체
out : 출력을 위한 함수를 갖고있는 출력객체
in :입력을위한 함수를 갖고있는 객체

 

 

System.out.println() 에 대해..

System.out = new PrintStream(new OutputStream());

  • System : 카테고리역할
  • out : PrintSteam의 인스턴스다.

        PrintStream을 통해 OutputStream을 간접적으로 사용.

        PrintStream은 OutputStream의 자식의 자식클래스.

  • println() : 객체가 참조하는 개체의 메소드중 하나

 

java.lang.System 클래스 내부에 존재하는 static 객체인 out이 있고,

out객체는 PrintStream의 객체이므로 PrintStream이 갖고있는 println()메소드를 사용한다.

 

OutputStream은 추상클래스(추상 클래스는 객체가 될 수없다)->후손클래스이용해서 객체생성

println()은 out이라는 객체와 그 객체에서 뽑아온 함수.

 

ref. cbw1030.tistory.com/59?category=1060226

 

 

 

출력버퍼의 사용

출력할때, 출력버퍼를 준비해야함, 객체생성시 new라는 연산자를 이용해야한다.(실존하게하는연산자)
하지만 출력버퍼는 실존하게 만들필요가없다. 자바는 이미 만들어놨다.
콘솔입출력은 프로그램마다 하나씩 부여받은 버퍼

 

System.out = new PrintStream(new OutputStream());
System이라는 포장용기에 담여 out(객체)으로 존재
'.'(점)을찍어 수많은 API이용 : System.out.함수();


함수는 무엇인가 ? 기능
무슨기능 ? 켜다,끄다, 함수로 구현 -> 대상은 ? 라디오, 티비,가스레인지

대상을 거론하지않고 함수를 만들면 :대상이 눈에띄지않음->대상이 주인공 
라디오가있어야 켜고 끌수있다.
티비가 있어야 켜고끌수있다.


대상이 머릿속에있음,실존객체
기능은 부차적
타겟 실존객체에 대해 조립 ->기능(객체지향),기능은 따라오는것
출력도구가 필요 , 도구, 입력도구, 입력객체(안에 기능)

 

문자코드

KeyCode

2를누르면 입력버퍼에 2(입력값)가 그대로 들어가지않는다.

키보드에 다양한 값이있다 (수많은 키) 키를 식별하는 번호가있다.
키를 식별하는 번호가 만들어졌다->keycode(키코드.일련번호)
키를 누르면 키코드가 들어간다.

 

ASCII(아스키코드,American Standard Code for Information Interchange)

입력값들을 전달할때 똑같은 값이 전달.

사용하는 모든기호에 숫자부여한 문자코드표

예시:

A : 65
B : 66
C : 67.

아스키코드

총 128개 0부터 127까지. 총128개를 7비트로 표현

총 128개 (2^7) 7비트 + 1비트 (패리티비트) = 총 8비트로 표현가능 (256개, 2의 8승)

한국어/중국어/일본어 : EUC-KR, EUC-JP, EUC-CN

문제점 발생 : 다른언어간 같은 코드발생 (번호충돌)

유니코드:

유니코드등장 (재배열) :전세계모든 언어모드가 충돌나지않게 여러언어 같이쓸수있게나옴

 

System.out.write()함수 예시:

public class Exam_01{
    public static void main(String[] ar){
    System.out.write(65); //값이 버퍼에 담김ㄴ다
    System.out.flush(); // 출력
    }
}

write는 문자하나만 담을 수 있고 출력하려면 flush() 함수를 사용해야함 -불편함

 


자바 실습

이클립스 -> download -> download Packages -> Eclipse IDE for EnterPrise Java Developers

www.eclipse.org/

 

The Community for Open Innovation and Collaboration | The Eclipse Foundation

The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 375 open source projects, including runtimes, tools and frameworks.

www.eclipse.org

압축풀고 eclipse폴더를 자주 사용할 폴더로 옮겨준다.

eclipse폴더안의 eclipse.exe 선택후 마우스 오른쪽클릭 ->시작화면에 고정

 

 

통합개발환경 IDE

편집기(코드작성) + 컴파일실행환경 + 파일관리(탐색기) + 번역과 실행(개발도구)

특정개발도구 

JDK위에 통합개발도구를 사용할수있고 통합개발도구에는 인텔리제이와 이클립스가있다.

JDK가 설치되어야 이클립스 사용가능. 이클립스가 컴퓨터에 깔린 JDK를 알아서 사용

개발 : 소스코드작성 -> 번역-> 디버깅-> 배포과정이 필요

JDK는 각각의 과정을 수행 할 수있도록 환경을 제공, 이클립스는 JDK를 사용해서 위의 과정을 한꺼번에 할 수 있도록 도와준다.

이클립스는 IBM에서 자바전용 개발환경을 기획했다가 워크벤치만 만들고 플러그인기능을 추가해 다른언어에도 사용할수있도록 만듦.
이클립스:워크벤치

 

이클립스 실행 -> workspace 디렉토리선택

Open Perspective에서 개발환경을 선택할 수있다. java선택 (자기 환경에 맞게 배치)

 

메모장으로 만들었던 Hello.java 파일을 src폴더로 드래그해서 넣어준뒤 run 

출력 : total is 210

 

 

 

 

 


  • 실수로 메뉴를 닫았을 경우 window - perspective - reset 하면 복구가능
  • ctrl + shift + f : 들여쓰기
  • ctrl + f11 : run
  • 파일명에 * 뜬경우 : 저장 안됨
  • ctrl + Alt + ↑↓:라인위아래로복사
  • ctrl + Shift + c : 한줄 주석처리

 

 

 

+ Recent posts