Java 22

Java 기초 정리 2차_5)참조 타입_이것이 자바다

데이터 타입 분류자바의 데이터 타입기본타입(primitive type)참조타입(reference type)객체(object)의 번지를 참조하는 타입배열, 열거, 클래스, 인터페이스 타입기본 타입으로 선언된 변수와 참조 타입으로 선언된 변수변수들은 모두 스택(stack)이라는 메모리 영역에 생성 차이점기본 타입으로 선언된 변수는 값 자체를 저장참조 타입으로 선언된 변수는 객체가 생성된 메모리 번지를 저장메모리 사용 영역메소드 영역바이트 코드 파일을 읽은 내용이 저장되는 영역클래스별로 상수, 정적 필드, 메소드 콛, 생성자 코드 등이 저장힙 영역객체가 생성되는 영역객체의 번지는 메서드 영역과 스택 영역의 상수와 변수에서 참조할 수 있음스택 영역메서드를 호출할 때마다 생성되는 프레임(Frame)이 저장되는 영..

Java 기초 정리 2차_4)조건문과 반복문_이것이 자바다

코드 실행 흐름 제어자바 프로그램은 main() 메소드의 시작 중괄호({)에서 끝 중괄호(}) 까지 위에서부터 아래로 실행하는 흐름을 가짐실행 흐름을 개발자가 원하는 방향으로 바꿀수 있도록 하는 것이 흐름 제어문제어문은 조건식과 중괄호{} 블록으로 구성, 조건식의 연산 결과에 따라 블록 내부의 실행 여부 결정제어문 블록이 실행 완료된 후제어문 블록을 빠져 나와 정상 흐름으로 돌아오는 것은 조건문제어문의 처음으로 다시 되돌아가 반복 실행하면 반복문 (Looping)제어문의 종류조건문반복문if문, switch 문for문, while문, do-while 문if문if문은 조건식의 결과에 따라 실행 여부가 결정if(조건식){실행문;실행문;...}조건식에는 true 또는 false 값을 산출할 수 있는 연산식이나 ..

Java 기초 정리 2차_3)연산자_이것이 자바다

부호/증감 연산자 부호 연산자는 변수의 부호를 유지하거나 변경한다.연산식설명+피연산자피연산자의 부호 유지-피연산자피연산자의 부호 변경+ 연산자는 잘 사용되지 않고, - 연산자는 변수값의 부호를 변경할 때 사용된다.부호를 변경하는 것도 연산이므로 byte, short, int 의 연산 결과를 int에 대입해야 함package ch03.sec01;public class SingOperatorExample { public static void main(String[] args) { int x = -100; x=-x; System.out.println("x: " + x); byte b = 100; int y =-b; ;System.out.println("y: "+ y); }}============..

Java 기초 정리 2차_2)변수와 타입_이것이 자바다

변수 선언 컴퓨터 메모리(RAM)는 수많은 번지들로 구성된 데이터 저장 공간 프로그램은 데이터를 메모리에 저장하고 읽는 작업을 빈번히 수행이 때 데이터를 어디에, 어떤 방식으로 저장할지 정해져 있지 않다면 메모리 관리가 어려워짐.프로그래밍 언어는 이 문제를 해결하기 위해 변수를 사용 변수(variable)하나의 값을 저장할 수 있는 메모리 번지에 붙여진 이름변수를 통해 프로그램은 메모리 번지에 값을 저장하고 읽을 수 있음변수 선언어떤 타입의 데이터를 저장할 것인지, 변수 이름이 무엇인지를 결정하는 것변수 이름은 첫 번재 글자가 문자여야함, 중간 부터는 문자,숫자,$,_를 포함할 수 있음첫 문자를 소문자로 시작하되 카멜스타일로 작성하는 것이 관례[타입][변수 이름];int age; //정수(int) 값을 ..

Java 기초 정리 2차_1)자바 시작하기_이것이 자바다

프로그래밍 언어와 자바 기계어(machine language)컴퓨터가 이해하는 언어, 0과 1로 이루어진 이진 코드 사용.  프로그래밍 언어: 사람의 언어와 기계어의 다리 역할 하는 프로그래밍 언어고급언어/ 저급언어고급언어컴퓨터와 대화할 수 있도록 만든 언어 중 사람이 쉽게 이해할 수 있는 언어고급 언어로 작성된 소스 파일은 컴퓨터가 바로 이해 할 수 없기 때문에 컴파일(compile)이라는 과정을 통해 컴퓨터가 이해할 수 있는 0과 1로 기계어로 변환한 후 사용해야 함.고급언어로 작성한 파일을 소스(source)파일이라고 부름고급언어의 예 자바(Java),C,C++,C#,파이썬(Python)저급언어기계어에 가까운 언어. 대표적으로 어셈블리어 자바안드로이드 게임 애플리케이션, 웹사이트, 드롭 제어를 위한..

Java 입문 기초 정리_자바 입출력

1_ 자바 입출력과 스트림 스트림(앞에서 살펴본 스트림과는 다른 용도)스트림이란?- 네트웍에서 자료의 흐름이 물과 같다는 의미에서 유래- 다양한 입출력 장치에 독립적으로 일관성 있는 입출력을 제공하는 방식 -입출력이 구현되는 곳: 파일 디스크, 키보드, 마우스, 메모리 네트웍 등 - 입출력은 모두 예외처리를 해줘야 함 스트림의 구분  대상의 기준에 따른 분류입력 스트림대상으로부터 자료를 읽어 들이는 스트림출력 스트림대상으로 자료를 출력하는 스트림종류예시입력 스트림FileInputStream, FileReader,BufferedInputStream,BufferedReader 등출력 스트림FileOutputStream,FileWriter,BufferedOutputStream,BufferedWriter 등 자..

Java 입문 기초 정리_ 예외 처리

오류란 무엇인가컴파일 오류(compile error) : 프로그램 코드 작성 중 발생하는 문법적 오류실행 오류(runtime error) : 실행 중인 프로그램이 의도하지 않은 동작을 하거나 (bug) 프로그램이 중지되는 오류실행 오류 시 비정상 종료는 서비스 운영에 치명적오류가 발생할 수 있는 경우에 로그(log)를 남겨  추후 이를 분석하여 원인을 찾아야 함.자바는 예외처리를 통하여 프로그램의 비정상 종료를 막고 log 를 남길 수 있음 오류와 예외 클래스- 시스템 오류(error): 가상 머신에서 발생, 프로그래머가 처리 할 수 없음.                                 동적 메모리 없는 경우, 스택 오버 플로우 등-예외(Exception): 프로그램에서 제어 할 수 있는 오류..

Java 입문 기초 정리 _ 내부클래스,람다식,스트림

내부 클래스 요약종류구현위치사용할 수 있는 외부 클래스 변수생성 방법인스턴스 내부 클래스외부 클래스 멤버변수와 동일외부 인스턴스 변수외부 전역 변수외부 클래스를 먼저 만든 후 내부 클래스 생성정적 내부 클래스외부 클래스 멤버변수와 동일외부 전역 변수외부 클래스와 무관하게 생성지역 내부 클래스메서드 내부에 구현외부 인스턴스 변수외부 전역 변수메서드를 호출할 때 생성익명 내부 클래스메서드 내부에 구현변수에 대입하여 직접 구현외부 인스턴스 변수외부 전역 변수메서드를 호출할 때 생성되거나, 인터페이스 타입변수에 대입 할 때 new 예약어를 사용하여 생성인스턴스 내부 클래스package innerclass;class OutClass { private int num = 10; private static final ..

Java 기초 입문 정리_ 컬렉션 프레임워크

제네릭컬렉션 프레임워크- 컬렉션 인터페이스   리스트 인터페이스   셋 인터페이스- 맵 인터페이스 Stack 과 Queue- Stack과 Queue의 기능은 구현된 클래스가 있지만 ArrayList나 LinkedList를 활용하여서 사용할 수도 있음 - Stack: Last In First Out(LIFO) - 맨 마지막에 추가 된 요소가 먼저 꺼내지는 자료구조 push() 추가/ pop()삭제/ 맨 위에있는 정보를 top- 게임의 무르기 기능, 최근 자료 추출에서 사용package collection.arraylist;import java.util.ArrayList;class MyStack { private ArrayList arrayStack = new ArrayList();//// public vo..

Java 입문 기초 정리_ 기본 클래스

JDK에서 제공하는 클래스 java.lang 패키지프로그래밍시 import 하지 않아도 자동으로 import 됨import java.lang.*; 문장이 추가 됨많이 사용하는 기본 클래스들이 속한 패키지String,Integer,System 등  Object 클래스모든 클래스의 최상위 클래스java.lang.Object 클래스모든 클래스는 Object클래스에서 상속 받음모든 클래스는 Object 클래스의 메서드를 사용할 수 있음모든 클래스는 Object 클래스의 메서드 중 일부는 재정의할 수 있음 (final로 선언된 메서드는 재정의 할 수 없음)컴파일러가 extends Object를 추가함 class Student{ int studentID; String studentName; } /..