개발일지349 스택, 힙(메모리위치에 따른 변수구분) : 함수는 호출해서 사용하고, 함수기능이 끝나면 실행에 제어가 반환된다.(메인함수가 생성시) 메모리의 스택(stack) 영역은 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역이다. 스택 영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸한다. 스택 영역은 푸시(push) 동작으로 데이터를 저장하고, 팝(pop) 동작으로 데이터를 인출합니다. 이러한 스택은 후입선출(LIFO, Last-In First-Out) 방식에 따라 동작하므로, 가장 늦게 저장된 데이터가 가장 먼저 인출이된다. 스택 영역은 메모리의 높은 주소에서 낮은 주소의 방향으로 할당됩니다 매우 빠른 액세스 변수를 명시 적으로 할당 해제 할 필요가 없습니다. 공간은 CPU에 의해 효율적으로 관리되고 메모리는 단편화되지 .. 개발일지/자바 2022. 8. 30. Class, 메소드 클래스 하나의 틀(설계도)라고 생각하면된다. 클래스는 객체의 상태를 나타내는 필드(field)와 객체의 행동을 나타내는 메소드(method)로 구성됩니다. 즉, 필드(field)란 클래스에 포함된 변수(variable)를 의미한다.. 또한, 메소드(method)란 어떠한 특정 작업을 수행(기능)하기 위한 명령문의 집합이라 할 수 있다 밑에 그림에서 보면 Student(class)안에서 변수를 선언을 해줬다 위에서 변수를 선언해준뒤 Student s1 = new Student(); 라고 코드를 작성해준다. 이 코드의 의미는 Student라는 자료형을 가진 s1변수를 선언해서 new라는 키워드를 써준다. 그러면 Student의 객체를 생성해서 접근이 가능하게 된다. 접근을 하게되면 이제는 Student라는 .. 개발일지/자바 2022. 8. 30. 스왑, for문을 이용한 연산 스왑 : 임의 변수를 생성해서 대입해서 임시 저장후 두개의 변수의 값을 바꾸는 방법이다. // 1. 문제 // a = 10, b변수에 20 담아 둔다. // a 변수와 b변수에 값을 서로 바꿔서 출력해 보세요 int a = 10; int b = 20; int c = 0; c = a; a = b; b = c; System.out.println("b의 값 >>> " + a); System.out.println("a의 값 >>> " + b); 시작값에서 종료값까지 정수를 입력해 합을 구하는 코드이다. // 2.문제 // 시작값, 종료값을 받아서 (사용자입력) 연산에 합을 출력해보세요 Scanner scanner = new Scanner(System.in); System.out.print("시작값 >>> ");.. 개발일지/실습Code 2022. 8. 29. if, do while문을 이용한 야구게임 package ch04; import java.util.Random; import java.util.Scanner; public class WhileMainTest4 { // 코드의 시작점 (메인 쓰레드) public static void main(String[] args) { // 스캐너를 활용해서 간단한 콘솔 게임 만들기 Scanner scanner = new Scanner(System.in); Random random = new Random(); int radomResult = random.nextInt(5) + 1; int select; int win = 0; int lose = 0; do { System.out.println("번호를 입력해주세요"); select = scanner.nextInt.. 개발일지/실습Code 2022. 8. 29. (break, continue, do while, while)문 조건이 거짓이더라도 적어도 한 번 문장은 실행됩니다. 이 후 조건이 참/거짓인지의 여부에 따라 문장을 계속 실행할지를 결정하게 됩니다. 반복문 내에서만 사용될수 있으며, 반복이 진행되는 도중 continue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다 감싸고 있는 블럭의 제어를 빠져 나오는 기능을 하며 제어문에서 어떤 조건하에 반복문을 빠져나온다라는 방식으로 활용 된다. 하나의 블럭만 빠져나오기 때문에 중첩 반복문 중 내부 반복문에서 break문이 활용되었다면 외부 반복에서는 영향을 주지 않는다. 밑에 그림 설명한 것처럼 조건식이 true이면 문장이 실행되고, false이면 종료된다. for문과는 다르게 초기값과 증감식을 적는 곳이 명시되어 있지 않다. 다르게 말하면 while문의 문장을 .. 개발일지/자바 2022. 8. 29. 반복문 (for문) 프로그램의 흐름을 바꾸는 역할을 하는 문장들을 제어문이라고 하며, 제어문에는 조건문과 반복문이 있다. 반복문은 조건에 따라 문장이 반복 수행되도록 한다. for문의 구조는 밑에 그림과 같으며, 조건식이 참인동안 괄호 안의 문장들을 반복하다 거짓이 되면 반복문을 벗어난다. 처음엔 초기값(변수에 최초의 값을 저장)을 실행하며, 조건식에 참일 동안 괄호 안에 문장을 반복 실행한다. 밑에 그림은 어떠한 정수값을 입력을 받으면 그 입력한 값까지 모두 더하기 연산을해서 합한 결과 값을 출력해주는 코드이다. for문을 쓰지않으면 하나 하나 전부다 작성을 해줘야한다. 하지만 for문을 사용하면 조건식이 주어질때 그 조건식이 참이 될때까지 반복적으로 수행하기때문에 코드를 압축시켜 실행을 시킬수가 있다. 개발일지/자바 2022. 8. 29. 조건문 - (if, else, if else) 개발자가 작성한 코드를 조건에 따라 코드의 실행 흐름을 다르게 동작하도록 제어하는 것이라고 할 수 있다. 밑에 그림에서 point라는 변수에 입력을 받아준다. 조건식에 point변수가 90이상일경우에 A학점을 출력을 해주다는 의미이다. 그 밑에서는 else if는 위의 조건식에 만족하지않을때 그다음의 조건을 제시하여 조건에 맞으면 실행되는 구문이다. 이렇게 계속 조건을 위에서부터 차례대로 확인하면서 해당하는 조건에 맞는 실행문이 출력이된다. 맨마지막에는 또 다른 조건이 없을시 else구문으로 마지막 실행문을 써주면된다. 개발일지/자바 2022. 8. 29. 연산자 ( 대입, 부호, 산술, 복합 대입, 증감, 감소, 관계(비교) - Day2 변수값이 -(음수)를 쓰는 경우가 있을것이다. 그럴땐 변수앞에 출력값에 변수앞에 -(음수)를 써도 된다. 하지만 그 방법 보단 자기 자신의 변수에 -(음수)를 써서 자기자신의 변수에 대입을 시켜서 사용해주는게 좋다. 일반적인 산술 연산이다. + : 합 - : 빼기 * : 곱하기 / : 나누기한 몫 % : 나누기한 나머지 number4에서는 자료형이 double이다. 값을 대입을 해줘야할때도 같은 자료형인 실수로 해줘야한다. 그런데 정수 / 실수로 계산이되고있다. 연산할때 하나의 값이라도 실수가되면 컴퓨터에서는 double(실수)로 인식하여 연산이 가능하다 연산과 대입을 동시에 하는거라고 보면된다. num1을 선언과 동시에 초기화를 시켜준다. 그리고나서 += 기호를 넣어준다 += : 자기 자신의 변수한테 .. 개발일지/자바 2022. 8. 26. 상수, 형변환(자동 형변환, 강제 형변환) - Day2 상수는 변하지 않는 수를 말한다. 상수를 사용할때는 fianl(예약어)를 사용해준다. 그리고나서 변수는 대문자로 표기를 해줘야한다. 상수를 처음에 한번 초기화를 시키면 변경이 불가하다 형변환에는 두가지가 있다. 강제 형변환과 자동형변환이다. 강제와 자동의 의미는 메모리 형태로 생각하면된다. 문자(2바이트) --> 정수(int:4바이트) 문자는 쓰이는 메모리와 정수에서쓰이는 메모리로 넣는다고 생각하면 들어갈수가있다. 왜냐고? 4바이트 즉 메모리가 크다(묵시적) 반대로 정수에서 문자로 변환시킬때는 메모리가 큰거에서 작은걸로 바뀐다. 들어갈수가없다 그렇기때문에 강제로 같은 자료형을 변환을 시켜줘야한다. 이걸 강제 형변환(명시적)이라고한다 개발일지/자바 2022. 8. 26. 데이터 타입(자료형) - Day1 데이터 타입에는 크게 두가지로 나뉜다. 1. 기본 데이터 타입(Primitive type) 2. 참조타입(Reference Type) byte b; // 1바이트 크기(8bit) short s; // 2바이트 크기(16bit) int i; // 4바이트 크기 (32bit) long l; // 8바이트 크기 (64bit) int는 약 21억까지의 숫자를 입력을 할수있다 하지만 은행같은경우는 약 21억보다 더 큰 숫자를 사용한다. 그럴땐 int보다 더 많이 입력할수있는 long를 사용한다. 하지만 자료형을 long이라고 선언만 해서는 안된다 정수값 맨 뒤에 L이라고 붙혀준다.(대문자 사용 권장) char이라는 자료형을 사용해보자 인코딩 : 문자를 숫자로 변환을 말한다. 디코딩 : 숫자를 문자로 변환을 말한다.. 개발일지/자바 2022. 8. 25. 패키지, 클래스, print(출력) - Day1 패키지란 쉽게 생각하자!! 그냥 폴더라고 생각하면된다. 패키지 만드는 방법 패키지를 보면 ch00가있다. 그런데 ch00패키지 하위에 패키지를 생성하는 경우도 생길거다 그럴땐 ch00 뒤에 (.)을 붙히면된다. ex) ch00.ch00_01 이렇게 (.)을 붙히게되면 ch00하위에 패키지를 생성을 할수도 있다. (클래스 파일 생성할때 동일) 패키지(폴더)를 만들었으면 이제는 코드를 작성할 공간인 클래스파일을 만들어보자 ※ 클래스파일을 만들때 주의할점 ※ 클래스파일명은 첫글자는 무조건 대문자 사용!!!!(중요) public static void main(String[] args)는 체크 해줘야한다. 지금은 간단한 코드를 작성하고 바로바로 실행을 하기 위함이지만 나중에는 체크를 안하고 클래스파일들을 만들어 .. 개발일지/자바 2022. 8. 25. 명령어 컴파일 작업, 자바파일 실행 - Day1 이제 셋팅이 끝났으니 자바언어를 명령어로 컴파일을 시켜 실행을 해볼거다 javac : 컴파일 명령어이다. 즉! 컴퓨터가 알기 쉽도록 번역을 해주는 것이다. java : 변환된 컴퓨터 언어의 프로그램을 실행 시켜주는 것이다. 순서대로 그림으로 보자 먼저 test 폴더에 들어와서 a.txt파일을만들어 아래 그림과 같이 코드를 작성하자 코드 작성후 저장!!!! 위에그림과 같이 2개의 파일이 만들어졌으면 이제 컴파일을 시켜줘야한다. 윈도우키 누르고 실행창에 cmd라고 치면 명령프롬프트가 실행이된다. 그리고나서 사용할 명령어가 두가지가있다.java와 javac라는 명령어이다. 먼저 파일의 경로로 들어가주자 복사~~ 붙혀넣기 들어오면 이제 명령어를 사용할 차례이다. 파일이 1개 추가로 생겼을거다 저 파일이 컴파일이.. 개발일지/설치 및 셋팅 2022. 8. 25. 이전 1 ··· 26 27 28 29 30 다음