'Code/JAVA'에 해당되는 글 62건
-
배열2019.06.18
-
참조 타입2019.06.18
-
Scanner를 통한 데이터 입력하기2019.06.18 -
반복문 예제_for문(별 그리기 ver.5)2019.06.18 -
반복문 예제_for문(별 그리기 ver.4 )2019.06.18 -
반복문 예제_for문(별 그리기 ver.3)2019.06.18 -
반복문 예제_for문(별 그리기 ver.2)2019.06.18 -
반복문 예제_for문(별 그리기 ver.1)2019.06.18 -
반복문 예제_for문+Math.random() (로또 생성+중복확인 )2019.06.18 -
반복문 예제_while문(구구단 )2019.06.18
배열
배열 : 변수는 하나의 데이터만 저장 가능하지만, 배열에선느 같은 타입의 데이터들을 저장 할 수 있음
각 데이터에 index를 부여해놓은 자료구조 -> 주로 for문과 함께 사용
- 선언 : 타입[] 변수; or 타입 변수[]; //선언함과 동시에 스택엔 변수가 주소값을 가지고, 힙에선 변수의 데이터가 있음
- 초기화 : 타입[] 변수 = null;
- 값 목록으로 저장 : 타입[] 변수 = {,,,,};
- 배열 생성 : 타입[] 변수 = new 타입[길이];
- 배열 길이 : 배열 변수.length; -> 자동으로 배열 길이 가져옴/ 인덱스 범위 넘으면 ArrayIndexOutOfBounds Exception 발생
* 기본타입(정수, 실수, 논리) : 0 or false, 참조타입(클래스[], 인터페이스[]) : null로 초기값
- 다차원 배열 ; 1차원 이상 행과 열로 구성된 배열
- 배열 복사 : 배열 한번 생성하면 크기 변경 할 수 없음
-> 더 많은 저장 공간 필요하거면 새로 만들어서 전의 값 저장해야 함
저장 하기 위해서 for문 사용하거나 System.arraycopy() 메소드 사용
ex) System.arraycopy(Object scr, int srcPos, Object dest, int destPos, int length);
원본 배열, 복사 시작할 인덱스, 복사 배열, 복사 붙여넣을 인덱스, 복사할 배열의 크기
- 커맨드 라인 입력
public static void main(String[] args) -> String[] args 가 왜 필요하나?
메소드 처럼 main위에 String 값으로 args 넘겨주면 메인 실행 시 가져올 수 있음.
= java MainClassName "홍길동" "김아무개" -> 메인 실행 시 값 가져와 사용 가능
*Integer.parseInt("int타입으로 바꿀 문자") : 문자를 숫자로 바꿔줌
*Integer.toString("문자로 바꿀 숫자") : 숫자를 문자로 바꿔줌
'Code > JAVA' 카테고리의 다른 글
| 클래스_1(클래스와 객체) (0) | 2019.06.18 |
|---|---|
| 열거 타입 (0) | 2019.06.18 |
| 참조 타입 (0) | 2019.06.18 |
| Scanner를 통한 데이터 입력하기 (0) | 2019.06.18 |
| 반복문 예제_for문(별 그리기 ver.5) (0) | 2019.06.18 |
참조 타입
데이터 타입 : 기본타입(정수타입, 실수타입, 논리타입) + 참조타입 (배열타입, 열거타입, 클래스, 인터페이스)
* 참조 : reference , 참조 타입은 선언된 변수는 메모리 번지를 값으로 가짐, 즉 번지를 통해 객체 참조
* 변수 : 스택 영역에 생성, 객체는 heap영역에 생성
메모리 사용 영역
-운영체제에서 할당받은 메모리 영역 : 메소드 영역, 힙 영역, 스레드
1. 메소드 영역 : 클래스(.class)들을 클래스 로더로 읽어 클래스별 런타임 상수풀, 필드 데이터, 메소드 데이터, 메소드 코드, 생성자 코드 등을 분류해서 저장, JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역
2. 힙(Heap) 영역 : 객체와 배열이 생성되는 영역, 힙 영역에서 생성된 객체와 배열은 JVM 스택 영역의 변수나 다른 객체 필드에서 참조
3. JVM 스택(Stack) 영역 : JVM 스택 영역은 각 스레드마다 하나씩 존재하며 스레드 시작할 때 할당
* 자바 프로그램에서 추가적으로 스레드를 생성하지 않았다면 main 스레드만 존재하므로 JVM 스택도 하나이다
JVM 스택은 메소드 호출할 때마다 프레임(Frame)을 추가(push)하고 메소드 종료되면 해당 프레임을 제거(pop) 동작 수행
예외 발생 시 printStackTrace() 메소드로 보여주는 stack Trace의 각 라인은 하나의 프레임을 표현
- Null : 참조 타입 변수에서 힙 영역의 객체를 참조하지 않는다. null로 초기화된 참조 변수는 스택 영역에 저장
- NullPointerExcepction :참조할 객체 없을 때 null 값 가지는 참조 타입 변수 사용 시 발생. arr 사용할 때 주로 발생
- String과 Char 차이 : Char 는 문자, '' 안에 2바이트 내 글자 허용 / String 은 문자열, "" 안에 사용 가능, 참조 변수
- <이것이 자바다1>. 한빛 미디어
'Code > JAVA' 카테고리의 다른 글
| 열거 타입 (0) | 2019.06.18 |
|---|---|
| 배열 (0) | 2019.06.18 |
| Scanner를 통한 데이터 입력하기 (0) | 2019.06.18 |
| 반복문 예제_for문(별 그리기 ver.5) (0) | 2019.06.18 |
| 반복문 예제_for문(별 그리기 ver.4 ) (0) | 2019.06.18 |
Scanner를 통한 데이터 입력하기
사용자에게 정보를 입력 받고 입력 받은 데이터로 처리하고 싶은 경우 사용할 수 있다.
Scanner 사용하
1. 스캐너 import 시키기 - 메인 클래스 상단에 추
import java.util.Scanner;
2. 스캐너 객체 생성 - Main() 메소드 안에 생성
Scanner sc = new Scanner(System.in)
- 숫자 입력 시 : int num = sc.nextInt();
- 문자 입력 시 : String str = sc.next();
3. 스캐너 닫기
sc.close();
다음은 스캐너로 입력 받는 예제이다.

해당 스캐너에 대한 정보는 API 에서 찾아보길 https://docs.oracle.com/javase/8/docs/api/
Java Platform SE 8
docs.oracle.com
'Code > JAVA' 카테고리의 다른 글
| 배열 (0) | 2019.06.18 |
|---|---|
| 참조 타입 (0) | 2019.06.18 |
| 반복문 예제_for문(별 그리기 ver.5) (0) | 2019.06.18 |
| 반복문 예제_for문(별 그리기 ver.4 ) (0) | 2019.06.18 |
| 반복문 예제_for문(별 그리기 ver.3) (0) | 2019.06.18 |
반복문 예제_for문(별 그리기 ver.5)
ver.5 마름모 형태의 별 그리기 (조건 : for 2개 사용하기)

여기서 힌트는 어떻게 위아래로 나눌 것인가?
윗 삼각형은 ver.4와 일치한데 어떻게 밑도 할 것인가 생각해보자
안되면 조건(for 2개 쓰기) 제외하고 작성해보도록

저는 절대값을 이용하여 층을 구분하였다.
-2 ~ 2를 이용하여 절댓값이 2인 층은 2칸이 띄어지기 때문에 사용하였다.
* Math.abs() : 절댓값 구해주는 메소드
'Code > JAVA' 카테고리의 다른 글
| 참조 타입 (0) | 2019.06.18 |
|---|---|
| Scanner를 통한 데이터 입력하기 (0) | 2019.06.18 |
| 반복문 예제_for문(별 그리기 ver.4 ) (0) | 2019.06.18 |
| 반복문 예제_for문(별 그리기 ver.3) (0) | 2019.06.18 |
| 반복문 예제_for문(별 그리기 ver.2) (0) | 2019.06.18 |
반복문 예제_for문(별 그리기 ver.4 )
ver.4 트리 형태로 행이 증가할수록 별의 개수가 증가하도

ver.2 와 ver.3 이 합쳐진 그림이라 생각하면 된다.
힌트를 주자면 ver.3과 같이 앞에 여백을 신경쓰며, 행이 증가할 수록 별이 2씩 증가한다는 것을 신경쓰면 된다.

'Code > JAVA' 카테고리의 다른 글
| Scanner를 통한 데이터 입력하기 (0) | 2019.06.18 |
|---|---|
| 반복문 예제_for문(별 그리기 ver.5) (0) | 2019.06.18 |
| 반복문 예제_for문(별 그리기 ver.3) (0) | 2019.06.18 |
| 반복문 예제_for문(별 그리기 ver.2) (0) | 2019.06.18 |
| 반복문 예제_for문(별 그리기 ver.1) (0) | 2019.06.18 |
반복문 예제_for문(별 그리기 ver.3)
ver.3 오른쪽 직삼각형 출력

앞 ver.2의 좌우 반전시킨 모양이다.
힌트를 주자면 빈칸을 생각하자
1행은 앞에 빈칸 2개, 2행은 빈칸 1개, 3행은 빈칸 0임을 생각하면 문제를 풀 수 있다.

'Code > JAVA' 카테고리의 다른 글
| 반복문 예제_for문(별 그리기 ver.5) (0) | 2019.06.18 |
|---|---|
| 반복문 예제_for문(별 그리기 ver.4 ) (0) | 2019.06.18 |
| 반복문 예제_for문(별 그리기 ver.2) (0) | 2019.06.18 |
| 반복문 예제_for문(별 그리기 ver.1) (0) | 2019.06.18 |
| 반복문 예제_for문+Math.random() (로또 생성+중복확인 ) (0) | 2019.06.18 |
반복문 예제_for문(별 그리기 ver.2)
ver.2 왼쪽 직삼각형 출력

위와 같이 출력하기 위해 힌트를 주면
행이 증가할수록 별의 개수도 증가한다.
다음은 위의 결과를 도출하는 소스이다.

'Code > JAVA' 카테고리의 다른 글
| 반복문 예제_for문(별 그리기 ver.4 ) (0) | 2019.06.18 |
|---|---|
| 반복문 예제_for문(별 그리기 ver.3) (0) | 2019.06.18 |
| 반복문 예제_for문(별 그리기 ver.1) (0) | 2019.06.18 |
| 반복문 예제_for문+Math.random() (로또 생성+중복확인 ) (0) | 2019.06.18 |
| 반복문 예제_while문(구구단 ) (0) | 2019.06.18 |
반복문 예제_for문(별 그리기 ver.1)
반복문 for를 배우면 제일 유명한 별 그리기를 할 것이다.
ver.1 for문을 이용하여 4행 4열짜리 별을 출력하도록 해라

위의 결과를 보여줄 수 있는 for문 사용한 소스코드이다.

'Code > JAVA' 카테고리의 다른 글
| 반복문 예제_for문(별 그리기 ver.3) (0) | 2019.06.18 |
|---|---|
| 반복문 예제_for문(별 그리기 ver.2) (0) | 2019.06.18 |
| 반복문 예제_for문+Math.random() (로또 생성+중복확인 ) (0) | 2019.06.18 |
| 반복문 예제_while문(구구단 ) (0) | 2019.06.18 |
| 반복문 예제_for문(종이접기 사각형 ) (0) | 2019.06.18 |
반복문 예제_for문+Math.random() (로또 생성+중복확인 )
다음 예제는 로또 번호 생성하는 문제이다.
45까지 숫자 중에서 임의의 6자리를 뽑아 출력해야 하며, 중복이 되지 않아야 한다.
문제를 해결한 소스는 아래와 같다.
Math.random()*45 + 1 을 이용하여 1 ~ 45까지 무작위 난수를 받도록 하였으며,
for문을 이용하여 6개를 뽑도록 하였다.

'Code > JAVA' 카테고리의 다른 글
| 반복문 예제_for문(별 그리기 ver.2) (0) | 2019.06.18 |
|---|---|
| 반복문 예제_for문(별 그리기 ver.1) (0) | 2019.06.18 |
| 반복문 예제_while문(구구단 ) (0) | 2019.06.18 |
| 반복문 예제_for문(종이접기 사각형 ) (0) | 2019.06.18 |
| 자바 표준 라이브러리 API (0) | 2019.06.18 |
반복문 예제_while문(구구단 )
다음 예제는 while문을 이용하여 2단부터 9단까지 출력하는 구구단이다.
for문으로 해결해도 상관은 없다. 결과는 같이 나오게 할 수 있다.

형태를 보면 세로로 같은 단이 나오고, 가로로 단이 증가한다.
다음과 같은 실행결과가 나오도록 하는 구구단의 소스는 다음과 같다.

'Code > JAVA' 카테고리의 다른 글
| 반복문 예제_for문(별 그리기 ver.1) (0) | 2019.06.18 |
|---|---|
| 반복문 예제_for문+Math.random() (로또 생성+중복확인 ) (0) | 2019.06.18 |
| 반복문 예제_for문(종이접기 사각형 ) (0) | 2019.06.18 |
| 자바 표준 라이브러리 API (0) | 2019.06.18 |
| 조건식 예제_if-else + Math.random () (0) | 2019.06.18 |