목록자바 (21)
NOW OR NEVER
프로그래머스 폰켓몬 문제당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다.첫 번째(3번), 두 번째(1번) 폰켓몬을 선택첫 번째(3번), 세 번째(2번) 폰켓몬을 ..
Kotlin 기초 코틀린 문법, 특성 파라미터 이름 뒤 그 파라미터 타입 작성 여러가지 표준 자바 라이브러리 함수를 간결하게 사용할 수 있게 감싼 wrapper 제공 ex) Sysmtem.out.println -> println 자바와 다른 점 함수를 최상위 수준에 정의 가능 : 자바와 달리 클래스 안에 함수를 정의 할 필요 X 배열 처리를 위한 문법이 존재X 세미콜론을 붙이지 않아도 된다. 시작문(statement)과 식(expression) 식: 값을 만들어 내며 다른 식의 하위 요소로 계산에 참여 가능 문: 자신을 둘러싸고 있는 가장 안쪽 블록의 최상위 요소로 존재하며 아무런 값을 만들어내지 않는다 자바에서는 모든 제어구조가 문이며 코틀린에서는 루프를 제외한 대부분의 제어 구조가 식 ex) 코틀린에..
쓰레드 쓰레드 : 자바에서 비동기 처리를 위해 사용하는 것 비동기 : 여러 작업을 동시에 처리하는 것 / 동기 : 작업을 순차적으로 처리하는 것 runnable : 상속받은 클래스 업 오류가 발생할 우려가 있을 경우 사용하기도 한다. 예외 처리 try : 원하는 처리의 코드 작성 catch : 오류 났을 때 동작하는 코드 작성, 보통 오류에 대한 정보를 개발자가 받아 볼 수 있도록 서버에 전달하는 역할 클래스 자바 오브젝트 클래스가 가장 상위 부모 클래스 이다. : 자바에서는 모든 클래스가 이 클래스를 상속 받고 있다, 객체에 관한 내용을 다 폼함하고 있다. 직접 쓸 일은 없다. lang 패키지 안에는 개발자 편의를 위해 많이 사용하는 것들이 모여 있다. Wrapper 클래스 자료형 만큼 존재 depre..
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 : 저속 ..
변수(variable) 컴퓨터 프로그램은 데이터와 그 데이터를 처리하는 알고리즘으로 구성 됨 변수는 데이터를 저장하기 위한 공간 실제 데이터는 컴퓨처 메모리에 저장 됨 무엇을 담기 위한 상자 변수는 이름 존재 명확한 이름은 그 변수에 어떤 데이터가 들어 있는 지 쉽게 파악할 수 있게 함 변수의 선언 이 변수를 사용할 것이다 선언 변수를 사용하기 위해 이름 붙인 공간 확보 하는 것 선언 방법 : 자료형 변수이름; 변수에 갑을 대입 대입 연산자 "="을 사용하여 변수에 값을 저장 대입 방법 : 변수이름 = 변수에 저장할 값; 변수 선언 및 초기화 변수 선언과 동시에 값을 저장하여 초기화 선언 및 초기화 방법 : 자료형 변수이름 = 변수에 저장할 값; 많이 사용하는 방법 변수 값의 사용 변수의 이름으로 변수에..
자바 기초 문법 요소 클래스 클래스는 자바 프로그램의 기본단위 자바 프로그램은 한 개 이상의 클래스로 구성 일반적으로 1개의 클래스는 1개의 자바 파일 파일 명과 클래스 명이 동일해야 함 클래스 명은 대문자로 시작 클래스와 객체 자바는 객체지향(object oriented)언어 객체지향 언어 객체는 사물 또는 우리가 상상할 수 있는 개념 사물: 자동차, 프린터, 컴퓨터, 자전거 등 우리가 상상할 수 있는 개념 : 옵션, 강사, 학생, 블로그 글, 회원 등 객체는 속성과 행동을 갖고 있음 클래스는 객체를 만들기 위한 틀 또는 템블릿 ex) 자동차(객체)를 만들기 위한 자동차 설계도(클래스) 클래스를 실제로 실행시켜 메모리에 올린 것을 객체라 한다. 클래스는 속성(데이터)과 행동(메소드)으로 나뉘어진다. 메..
Java 특징 자바는 한번 작성 및 컴파일 된결과물이 어디서든 작동가능(jvm) 객체 지향 언어(상속, 다형성, 캡슐화 등의 객체 지향형 요소), Class 기본 단위 자동화 메모리 관리, jvm의 garbage collector가 사용되지 않는 메모리 자원 회수 적용 분야 다양한 분야(android, spring, Hadoop, elasticsearch) 모바일 어플리케이션 웹 어플리케이션 빅데이터 솔루션 데이터 베이스 등 데스크 탑 gui 어플리케이션 중요! Write once, run anywhere, 객체지향언어 Jvm의 gavage collector가 메모리 자동 관리 자바 주요 용어 Bytecode 자바 소스코드를 빌드 했을 때 생성되는 중간 코드 어셈블리어와 유하 형태(jvm 위에서만 실 행..