본문 바로가기

전체 글171

[Java]열거 타입 열거 타입 한정된 값인 열거 상수 중에서 하나의 상수를 저장하는 타입 여기서 Week이 열거 타입이다. Week로 다음과 같이 변수를 선언할 수 있다. Week today; today 변수에 저장할 수 있는 것은 Week에 선언된 7개의 열거 상수 중 하나이다. today = Week.FRIDAY; 열거 타입 선언 열거 타입을 선언하기 위해서는 먼저 열거 타입의 이름을 정하고 해당 이름으로 소스 파일(.java)을 생성해야 한다. 열거 타입 이름은 관례적으로 첫 글자를 대문자로 하고 나머지는 소문자로 구성 만약 여러 단어로 구성된 이름이라면 각 단어의 첫 글자는 대문자로 하는 것이 관례 Week.java MemberGrade.java Productkind.java public enum 키워드는 열거 타입.. 2022. 11. 11.
[Java]향상된 for문 향상된 for문 ? 향상된 for문이란 JDK 1.5부터 배열의 모든 요소를 참조하기 위해 새롭게 추가된 반복문 배열의 길이만큼 반복하는 작업을 수행하기 때문에 배열이나 여러 원소를 포함한 자료형에서만 사용할 수 있다는 특징이 있다. 사용할 변수는 지역변수로 인식된다. (For문 안에서 사용되기 때문) 대상은 배열 or 여러 원소를 포함한 자료형이어야 한다. 장점 1.간편한,가독성 좋은 코드 2. 배열 인덱스 문제 해결 (ArrayIndexOutOfBoundsException 예외를 피할 수 있다.) 단점 1.인덱스를 사용하지 못한다.(일반 for문의 (int i=0;) 할 때 i 같은 인덱스를 말하는 것) 하지만 방법이 있다. 2.배열이나 ArrayList 값을 사용할 순 있지만 절대 수정할 수는 없다.. 2022. 11. 11.
[Java]배열(Array) 선언 및 초기화,복사 배열이란 ? 동일한 자료형으로 선언된 데이터 공간을 메모리 상에 연속적으로 나열하여 데이터 관리의 효율성을 높이는 것 변수는 한개의 데이터만 저장할 수 있다. 따라서 저장해야 할 데이터의 수가 많아지면 그만큼 많은 양의 변수를 선언해줘야하는 비효율성이 발생. 그렇기에 좀 더 효율적인 방법이 필요한데 이것이 배열이다. 배열은 같은 타입의 데이터를 연속된 공간에 나열시키고 각 데이터에 인덱스(index)를 부여해 놓은 자료구조 다음과 같이 여러개의 int값을 다루는 경우 여러개를 각각의 변수로 선언하는 것이 아닌 하나의 배열로 묶을 수 있다. // 각각의 변수로 선언 int a1, a2, a3, a4, a5; // 5개의 int 값을 저장할 수 있는 배열 생성 int[] a = new int[5]; 각각의 .. 2022. 11. 11.
[Java]메모리 구조 프로그램이 구동되기 위해서는 프로그램 구동시 운영체제로부터 메모리(RAM) 공간을 할당 받아야한다. 하지만 메모리는 무제한이 아니라 한정되어 있기에 효율적으로 사용하는 프로그램을 작성해야 하고 프로그램을 잘못 작성하게 되면 프로그램이 느려지거나, 꺼지는 등 문제가 발생할 수 있다. 자바로 만들어진 프로그램은 JVM을 통해 실행되고 이 JVM은 프로그램을 동작할 때 OS로부터 메모리를 할당한다. 왜? 프로그램의 메모리를 고려해야할까? 여기, 같은 기능을 하는 두 개의 프로그램이 있다고 가정해보자 1) 메모리 설계가 잘 되어 있는 프로그램 2) 그렇지 않은 프로그램 1번 프로그램에 비해 2번 프로그램에서는 속도 저하 현상이나 튕김 현상이 일어날 확률이 크다. 보다 안정적인 프로그램을 개발하려면 메모리 구조를.. 2022. 11. 11.
[Java]기본타입과 참조타입 자바의 데이터 타입에는 크게 두 가지 기본 타입과 참조타입이 있다. 기본 타입 (Primitive type) 정수, 실수, 문자, 논리 리터럴을 저장하는 타입을 말하고 원시 타입이라고도 부른다. 정수형 : byte, short, int, long 실수형 : float, double 문자형 : char 논리형 : boolean 실제 데이터 값을 저장하는 타입 참조 타입 (Reference type) 간단하게 말하자면 기본 타입을 제외한 타입들을 말한다. 객체의 주소를 저장하는 타입이다. ex) 문자열, 배열, 열거, 클래스, 인터페이스 Java에서 실제 객체는 Heap 영역에 저장되며 참조 타입 변수는 스택 영역에 실제 객체들의 주소를 저장하여 객체를 사용할 때마다 참조 변수에 저장된 객체의 주소를 불러와.. 2022. 11. 11.
[Java]별 찍기 피라미드 반복문에서 가장 기본적으로 배우는게 별찍기 일것이다. 가장 기본적인 1. 삼각형 모양의 별찍기 public class Main { public static void main(String[] args) { for (int i = 1; i 0; j--) { if (i < j) { System.ou.. 2022. 11. 10.
[Java]BufferedReader BufferedReader :Scanner와 유사. Bufferedwriter :System.out.println();과 유사 그렇다면 왜 Scanner가 아닌 BufferedReader를 사용할까 ? 둘은 모두 기존에 쓰던 scanner와 System.out.println()보다 속도 측면에서 훨씬 빠르기 때문에 (입력된 데이터가 바로 전달되지 않고 버퍼를 거쳐 전달되므로 데이터 처리 효율성을 높임) 많은 양의 데이터를 처리할 때 유리하다. 하지만 그에 비해 BufferdReader은 Enter만 경계로 인식하고 받은 데이터사 String으로 고정되기 때문에 입력받은 데이터를 가공하는 작업이 필요한 경우가 많다. 입력방식 수행시간(초) java.util.Scanner 6.068 java.io.Buffe.. 2022. 11. 10.
[Java]Integer.parseInt란 ? Integer.parseInt란 ? String을 Int형으로 바꾸는 함수 Integer.parseInt() 입니다. 문자열을 숫자로 변환시킴 pareseInt 함수는 Integer 클래스의 static 함수 public class JavaPractice { public static void main(String[] args) { String a = "6"; int b = 3; int StringTotInt = Integer.parseInt(a) + b; System.out.println("StringTotInt의 값은? : "); System.out.println("6+3 = " + StringTotInt); } } 주의 :: 정수형으로 바뀌는 함수이기 때문에 문자열에 문자가 들어간 String은 바꿀.. 2022. 11. 10.
20221110 - 항해99 pre-Onboarding - 4 아침부터 부지런히 출석체크해서 공부를 했는데 막상 머리에 들어온거는 별로 없는거같다 백준에서 알고리즘 문제들도 완전 기초를 넘어가고 나니 어려워서 한참을 헤매고 Git 강의도 보는데 참 집중이 안됐다,,,그래도 Git은 팀프로젝트때 뿐만 아니라 아마 개발자로 살게되면 평생 함께해야 할거기에보다 확실하게 꼼꼼하게 배워놓으면 좋을것같다. Java가 조금은 익숙해 지고 있는거 같기도 하고, Java 책도 배운 부분을 다시 한번 보니 그래도 머리속에는 잘 남아있는거같다. 오늘은 조건문과 반복문을 공부했는데 그래도 아는 내용이라 오히려 반가웠다. 그놈의 점찍기는 아직도 기억이 나고 점찍어서 피라미드도 만들고 했던 기억도 난다 Math.random() 은 알고리즘 문제나 나중에 사용할 곳이 많을거 같아서 반드시 알.. 2022. 11. 10.