목록Java (27)
NOW OR NEVER
프로그래머스 폰켓몬 문제당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다.첫 번째(3번), 두 번째(1번) 폰켓몬을 선택첫 번째(3번), 세 번째(2번) 폰켓몬을 ..
Class와 InterFace 변수 사용 할 수 있냐 없냐 여부는 해당 변수를 사용하고자 할 때 그 변수가 메모리에 저장되어 있으면 사용 가능 static 객체를 생성하지 않아도 사용 할 수 있다. : static으로 변수 선언 시 객체를 생성하기 전에 이미 변수가 만들어져 있다. static 메서드는 객체를 생성하지 않아도 사용 가능한 메서드이기에 메소드 안에 들어가는 것(매개변수, static 변수들 등)들은 static만 사용할 수 있다. static으로 선언한 메서드 안에서 객체를 생성해야지만 만들 수 있는 멤버변수 선언은 불가능하다 static 변수는 static 메서드에서 사용하는 변수이거나 프로그램 전체에서 1개만 있는 값일 경우 사용하는 것이 편하다. 하나밖에 없거나 멤버변수 사용하지 않을..
overriding 자식에 부모클래스 안 동일한 메소드 만들 시 자기 자신을 우선하기에 자식 메소드가 호출됨 접근제한자 접근에 대해 제한을 두는 것 데이터 무결성 : 데이터에 결함이 없다. 개발자는 이에 대한 문제를 항상 걱정해야 한다. 데이터 무결성 확고하게 할 수 있는 방법 : 객체에 저장하는 값에 결함이 있으면 객체에 저장조차 하지 않게 만들면 된다. 접근제한자가 있는 이유는 데이터 무결성을 위함이다. 변수는 직접 접근을 다 차단 그 변수의 값을 저장하거나 가져오는 메소드를 제공하는 방식으로 접근을 허한다. public : 패키지가 달라도 무조건 접근 가능 protected : 패키지가 다르면 접근 불가, 패키지가 같거나 상속 관계일 경우 사용 가능 default : 패키지가 다르면 아예 접근 불가..
클래스 클래스 : 객체를 만들기 위한 설계도 클래스 설계 시 하나의 클래스를 통해 만들 수 있는 객체 수는 무한정이다. : 객체는 무한정 만들 수 있다. 객체에 뭐가 저장되어 있는 지만 다른 것이지 다 변수라고 생각하면 된다. a객체.b객체 -- >a객체 아이디에 접근하여 해당 객체 안 b객체 접근 변수 안에는 아이디 값만 저장된다. 클래스 객체 출력시 : 객체를 만들기 위해 사용한 클래스 이름@객체를 구분하기 위한Id 메서드 많이 만들어도 메서드 내부 코드 길어 메모리 ㄱㅊ 메서드 return 코드가 수행되다가 메소드 호출이 된다면 메소드 안 코드를 수행하다가 return을 만나면 메소드 수행부분을 중단하고 메소드를 호출한 부분으로 다시 되돌아가 코드를 수행한다. return 옆에 값을 적게 되면 해당..
조건문 if문 보다 switch문이 더 실행 속도가 빠르다. 반복문 원하는 만큼 반복할 수 있는 문 파이썬의 경우 하나만 제공하지만 자바의 경우 세개 제공 for문 : 몇 번을 반복해야 하는 반복 횟수가 정해져 있을 때 사용 while과 do-while : 반복 횟수를 정할 순 없지만 반복 조건이 정해져 있을 때 사용, while의 경우 반복 조건을 반복문 밖에서 결정할 때, do-while의 경우 반복 조건을 반복문 안에서 결정할 때 사용 for while 위에서 아래로 코드 실행do-while 아래서 위로 코드 실행 etc 개발자가 간편해지면 컴퓨터가 할 일이 많아진다. 기능 개발 시 사용자가 사용하기 편하고 성능 시간이 적은 것이 좋다. 컴퓨터가 많은 양의 작업을 하지만 사용자가 느끼지 못할 정도라..
출력 printf : 양식을 정해서 출력할 때 사용 변수 개발자가 값을 자유롭게 넣고 뺄 수 있는 기억장소 변수에 뭔가가 저장되어 있어야 변수를 쓸 수 있다. 초기화 : 변수에 값을 처음 저장하는 것을 말한다. 혹은 최초의 값으로 설정하는 것 선언 : 해당 변수를 쓴다라고 명시하는 것 자료형 값을 담기 위한 기억장소의 크기보다 들어갈 값이 더 작을 경우 기억장소 크기만큼 0을 붙여 늘려서 저장하여 엉뚱한 값이 저장되는 것을 막는다. 기억장소보다 들어갈 값이 더 클 경우에는 오류가 난다. 하지만 큰 기억장소에 작은 기억장소 할당시 뒤에 0을 붙여 크기를 늘려 저장한다. char은 문자형이지만 실제 저장 시 정수로 저장 메모리 폰 노이만 구조 : 오늘 날 사용하고 있는 컴퓨터 구조 SSD, HDD : 저속 ..
JAVA 개요 서버에서 돌아가는 프로그램을 만들기 위해 자바 언어 사용 처음 발표 당시 이름은 Oak -> 언어 개발한 사람들이 즐겨마시던 커피 이름 Java를 따와 지금의 이름인 Java로 이름 변경 현업에서 많이 사용하는 버전은 Java 8 : java 8까지 와서 java가 완성, 환경을 구축 후 서비스 만들 시 나중에 환경 변경 시 문제가 많이 발생한다. java 8을 기반으로 모든 서비스가 만들어진 게 대다수 이기에 현업에서는 java 8으로 많이 사용하고 있다. ME(Mobile Edition)는 더이상 사용되지 않고 SE(Standard Edition)을 사용한다. 자바 프로그램 실행 구조 java 코드 작성 - 컴파일(파일 변환 java -> class) - 실행 - class 파일 코드를..
Stream import import java.util.stream.Stream; import java.util.stream.Collectors; 배열의 경우 : Arrays.stream()으로 시작 리스트의 경우 : list변수이름.stream()으로 시작 .filter(인자 -> 인자의 조건) method(A::B) = A의 메소드인 B를 참조하여 method화 max(), min() : 최대값, 최소값 구하기 getAsInt() : 해당 요소를 Integer화 .sorted() 기본은 오름차수 정렬 .sorted(Comparator.reverseOrder()) -> 내림차순 정렬 .sorted(Comparator.comparing(A::B)) -> Comparctor 조건에 따라 정렬, 두 가지 이..
변수(variable) 컴퓨터 프로그램은 데이터와 그 데이터를 처리하는 알고리즘으로 구성 됨 변수는 데이터를 저장하기 위한 공간 실제 데이터는 컴퓨처 메모리에 저장 됨 무엇을 담기 위한 상자 변수는 이름 존재 명확한 이름은 그 변수에 어떤 데이터가 들어 있는 지 쉽게 파악할 수 있게 함 변수의 선언 이 변수를 사용할 것이다 선언 변수를 사용하기 위해 이름 붙인 공간 확보 하는 것 선언 방법 : 자료형 변수이름; 변수에 갑을 대입 대입 연산자 "="을 사용하여 변수에 값을 저장 대입 방법 : 변수이름 = 변수에 저장할 값; 변수 선언 및 초기화 변수 선언과 동시에 값을 저장하여 초기화 선언 및 초기화 방법 : 자료형 변수이름 = 변수에 저장할 값; 많이 사용하는 방법 변수 값의 사용 변수의 이름으로 변수에..
자바 기초 문법 요소 클래스 클래스는 자바 프로그램의 기본단위 자바 프로그램은 한 개 이상의 클래스로 구성 일반적으로 1개의 클래스는 1개의 자바 파일 파일 명과 클래스 명이 동일해야 함 클래스 명은 대문자로 시작 클래스와 객체 자바는 객체지향(object oriented)언어 객체지향 언어 객체는 사물 또는 우리가 상상할 수 있는 개념 사물: 자동차, 프린터, 컴퓨터, 자전거 등 우리가 상상할 수 있는 개념 : 옵션, 강사, 학생, 블로그 글, 회원 등 객체는 속성과 행동을 갖고 있음 클래스는 객체를 만들기 위한 틀 또는 템블릿 ex) 자동차(객체)를 만들기 위한 자동차 설계도(클래스) 클래스를 실제로 실행시켜 메모리에 올린 것을 객체라 한다. 클래스는 속성(데이터)과 행동(메소드)으로 나뉘어진다. 메..