전체 글

·Java
인스턴스 멤버객체들 마다 다른 값을 가질 수 있는 객체들 소유의 구성요소  정적 멤버해당 타입(클래스)가 고유하게 가지며 모든 객체들이 동일하게 가져야하는 값들을 정의할 때 사용하는 구성요소(클래스 소유 구성요소)객체를 생성하지 않고 클래스를 통해 사용접근할 때 클래스 소속의 구성요소이기 때문에 클래스를 통하여 접근할 수 있다.정적 필드 모든 객체가 해당 타입에서 고유한 값을 갖는 필드의 경우 정적필드로 선언생성자에서 초기화를 하지 않는다 (정적 필드는 객체 생성 없이 사용할 수 있기 때문에 생성자에서초기화 작업을 하지 않는다. 생성자는 객체 생성 후 실행되기 때문이다.)필드 선언과 동시에 초기값을 주는게 일반적정적 메소드메소드 내부에서 인스턴스 멤버를 사용하지 않는 경우 정적 메소드로 선언 (경우에 따..
·Java
클래스(class)객체를 만들 수 있는 설계도를 의미한다.객체란 자신을 표현하는 데이터(속성,필드)를 가지며 자신이 할 수 있는 행위(기능,메소드)를 가지는 실제 데이터를 의미한다.객체는 반드시 참조되어 있어야 사용할 수 있다.(변수 등)객체를 담는 변수는 "클래스변수"라고 한다.객체를 담는 변수의 타입은 객체를 생성하는 클래스이다.객체 생성할 때 반드시 new 클래스(); 를 사용하여 생성한다. 1)물리적 객체   - 실제 존재할 수 있는 객체이며 속성과 기능을 가질 수 있다. 2)추상 객체  - 실제 객체들의 개념(그룹)에 해당하는 객체를 의미하며 실제 존재할 수 없다. 자바는 class를 사용하여 필요한 객체를 생성 후 조립하여 하나의 시스템을 만들어 낸다.   클래스 선언 방법!자바 식별자 규칙을..
·Baekjoon [Java]
1.문제오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ 책을 열심히 읽었던 혜아는 간단히 두 수를 더하는 코드를 칠판에 적었다. 코드를 본 면접관은 다음 질문을 했다. “만약, 입출력이 𝑁바이트 크기의 정수라면 프로그램을 어떻게 구현해야 할까요?”혜아는 책에 있는 정수 자료형과 관련된 내용을 기억해 냈다. 책에는 long int는 4바이트 정수까지 저장할 수 있는 정수 자료형이고 long long int는 8바이트 정수까지 저장할 수 있는 정수 자료형이라고 적혀 있었다. 혜아는 이런 생각이 들었다. “int 앞에 long을 하나씩 더 붙일 때마다 4바이트씩 저..
·Baekjoon [Java]
1.문제준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것이 맞는지 확인해보려 한다.영수증에 적힌,구매한 각 물건의 가격과 개수구매한 물건들의 총 금액을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자. 2.풀이import java.io.*;public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System..
·Java
배열같은 데이터타입의 연속된 데이터 묶음데이터의 순서가 존재함배열의 데이터들은 들어오는 순서대로 인덱스(번호표)를 부여받게 되며 이때문에 순서를 유지할 수 있다.불필요한 변수 선언을 방지할 수 있다.같은 데이터타입의 연속된 데이터 처리가 편리해진다.길이는 고정이다.  1.배열 변수 선언  데이터타입[] 변수명  데이터타입 변수명[]int intArray1[];int[] intArray2; byte[] byteArray;String[] strArray;2.배열 데이터 생성    1)리터럴 사용  - 배열변수 선언시에만 리터럴로 생성할 수 있다.  - {}(중괄호)를 사용하여 콤마 구분자로 연속된 데이터를 표현한다. String[] strArray2 = {"java","css","html"};  2)new..
·Java
String 문자열을 다루는 참조타입heap 영역에 데이터 생성 문자열 생성 방법 : 1) 리터럴로 생성 - 같은 데이터면 같은 주소를 바라봄 2) new String("문자열") - 같은 데이터라도 다른 주소로 생성 String str1 = "java"; String str2 = "java"; String str3 = new String("java"); boolean result; result = str1 == str2; System.out.println("str1 == str2 : "+result); result = str1 == str3; System.out.println("str1 == str3 : "+result); 동등비교 연산자는 참조타입에서는 주소값을 비교하기 때문에 문자열의 값을 비교하기..
·Java
null참조타입 변수에 참조하고 있는 주소가 없음을 의미하는 초기값NullPointerException참조타입 변수에 참조 주소가 없는데 해당 변수의 참조 데이터를 사용하려 할 때 발생하는 예외String str = null;boolean result = str.equals("java");System.out.println(result);System.out.println("프로그램 종료");  참조타입변수에 직접 데이터를 갖지 않고 별도의 주소값을 참조하는 형태의 데이터 타입을 의미함동등비교 연산자로 비교할 수 없다 ->  동등비교 연산자는 변수 안의 직접적인 값을 비교하기 때문(stack영역)문자열, 객체, 배열  ( 기본타입 : 정수, 실수, 논리 )스택 영역 : 변수 메소드 영역 : 클래스 힙 영역 ..
·Java
Scanner사용자에게 값을 입력받을 수 있음.next()  : 공백인식이 안됨. 공백 이전까지의 문자만 받음.nextLine() : 한줄 단위로 받기 때문에 공백도 가능import java.util.Scanner; 을 해줘야 함. 간략하게 import java.util.*;도 가능import java.util.Scanner;Scanner scanner = new Scanner(System.in);Systehttp://m.out.print("입력>");String value = scanner.nextLine(); //개행문자 포함 next() 개행문자 안들어감System.out.println("입력값:" + value);  while문반복의 조건을 알고 있는 경우 사용하는 반복문반복마다 종료 조건을 물..
·Java
-특정 실행문을 여러번 반복해서 실행해야하는 경우 사용하는 구문      -for문  -while문  -do-while문 for문반복의 횟수를 알고 있는 경우 사용for(초기식; 조건식; 증감식) { 실행문;}증감식의 경우 증감연산자나 대입연산자를 사용 num++  또는 num+=1   순서1) 초기식 2) 조건식 3) 실행문 4) 증감식 조건식이 false가 될때까지 2,3,4 반복 1~30까지의 수에서 3의 배수만 출력for(int i = 1; i  1~50까지 반복하며 2의 배수 또는 3의 배수인 경우 출력for(int i = 1; i  1~10까지의 합을 구하기int sum = 0;for(int i = 1; i   1~100까지의 정수 중에서 3의 배수의 총합을 출력하는 코드를 작성int sum ..
·Java
switch문값으로 실행코드를 분기할 때 사용    문법)  switch(값을 나타내는 변수 또는 식){ case 값1 : 실행문1 ... 실행문n break; case 값2 : 실행문1 ... 실행문n break; ... case 값n : 실행문1 ... 실행문n break; default : 실행문1 ... 실행문n } - 괄호 안의 변수 또는 식의 결과값과 일치하는 case의 실행문이 순차적으로 실행되고 정상 흐름으로 돌아온다.  int day = 1; // 0 : 일요일 ~ 6 : 토요일switch(day) {case 0 : System.out.println("일요일입니다.")..
초보개발자J
J의 코딩 노트