반응형

자바/자바 입문 공부일지 56

자바 기초 공부 일지 36. 제네릭generic 타입 인자

제네릭 타입은 클래스나 인터페이스 뒤에 다이아몬드 부호를 넣고, 타입 변수가 들어가는 것입니다. class, interface 일반적으로 대문자 하나가 들어갑니다. ● 제네릭은 그 자체로 자료형이기 때문에 매개변수화 타입을 타입 인자로 전달할 수 있습니다. 즉 상자 속에 상자를 넣을 수 있습니다. 마트료시카처럼요. class Box { // 박스 T를 만듭니다. private T ob; public void set(T o) { // 인자를 가질 수 있는 셋팅 메소드를 만들고 ob = o; } public T get() { // 인자를 반환하는 반환 메소드를 만들어요. return ob; } } public static void main(String[] args) { Box sBox = new Box();..

자바 기초 공부 일지 35. 제네릭generic 의 기본 문법

● 제네릭generic이란 데이터 타입을 일반화하는 것을 의미합니다. 즉, 제네릭이란 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법입니다. 제네릭을 하지 않을 경우에는 안정성이 많이 떨어지고, 타입 변환과 검사에 들어가는 시간과 노력을 줄일 수 있습니다. 프로그래밍에 실수가 있을 시 알기가 쉬운 코드가 품질이 좋은 코드이기 때문에 제네릭의 존재를 인지하고 있는 것이 좋습니다. 아래는 제네릭을 사용하지 않았을 시의 코드입니다. class Apple { public String toString() { return "I am an apple."; } } class Orange { public String toString() { return "I am an orange."; } ..

자바 기초 공부 일지 34. 문자열 토큰

파이썬에서 문자열을 구분하는 방법으로 split()함수가 있었습니다. https://blue-dot.tistory.com/12 파이썬 공부일지 9. 숫자 · 문자열 함수! 수업은 끝났으나 자습이 남아 있습니다. 8시간 내리 수업을 듣는 것보다, 지금까지 들었던 수업들을 정리할 수 있는 시간이 있다는 것이 얼마나 감사한 일인지 모르겠어요. 누군가에게 배우는 blue-dot.tistory.com 자바에서도 동일한 역할을 하는 문자열 토큰이라는 기능이 있는데, 문자열에서 기준자가 되는 것을 기준으로 슬라이싱 하는 (문자열을 나누는) 기능입니다.ㅜ PM:08:45 이 문자열이 있을 때 문자열의 구분자가 : 콜론 일 경우 토큰은 다음 세 가지입니다. PM 08 45 위와 같이 토큰을 나누는 방법으로는 자바의 유틸..

자바 기초 공부 일지 33. 난수(Random)

난수란 정의된 범위 내에서 무작위로 추출된 수입니다. 다음에 무슨 수가 나올지 알 수 없는 수, 즉 랜덤Random 수를 난수라고 합니다. 난수를 생성하는 구문은 다음과 같습니다. Random rand = new Random(); 각 랜덤 기능별 키워드는 다음과 같습니다. public boolean nextBoolean() boolean형 난수 반환 public int nextInt() int형 난수 반환 public long nextLong() long형 난수 반환 public int nextInt(int bound) 0 이상 bound 미만 범위의 int형 난수 반환 public float nextFloat() 0.0 이상 1.0 미만의 float형 난수 반환 public double nextDoub..

자바 기초 공부 일지 32. BigInteger 클래스, BigDecimal 클래스, Math 클래스

● BigInteger () 클래스 바이트형 정수는 비트가 8개입니다. 그 중 맨 왼쪽은 부호 비트이므로 나머지 7개가 숫자를 결정합니다. 그러므로 바이트로 표현할 수 있는 숫자는 127입니다. (최댓값) https://blue-dot.tistory.com/39?category=975496 자바 기초 공부 일지 3. 자바 변수 선언하기, 정수의 표현 방법(2진법 표현식) ● 자바는 변수를 선언할 때 변수의 이름과 용도를 같이 선언해야 합니다. ex) int num1; 최초로 변수를 만들 때 어떤 역할을 할지 적어주어야 합니다. (변수의 선언) int num1; // 변수 num1의 선언 num1 = blue-dot.tistory.com package day17; import java.math.BigInt..

자바 기초 공부 일지 31. 래퍼 클래스, Number 클래스

● 래퍼 클래스 class UseWrapperClass { public static void showData(Object obj) { System.out.println(obj); } 상기의 코드를 보면 클래스 안에 인스턴스를 요구하는 메소드가 있습니다. 이 메소드의 인수 타입 중 Object 타입은 int, float 등 과는 다른 타입이기 때문에 이 메소드를 통해서 정수 혹은 실수를 출력하려면 해당 값을 인스턴스화 해야 합니다. public static void main(String[] args) { Integer iInst = new Integer(3); // 기본 자료형을 감싸는 클래스 래퍼 클래스 showData(iInst); showData(new Double(7.15)); // 기본 자료형을 ..

자바 기초 공부 일지 30. clone 메소드

Obejct 클래스에는 clone() 메소드가 정의되어 있습니다. clone 메소드는 해당하는 객체의 모든 필드를 복사하여 새로운 객체에 넣어 반환하는 동작을 수행합니다. 즉, 대상을 똑같이 만들어주는 기능입니다. 여기에는 의무사항이 있는데, clone 메소드의 호출을 허용하려면 Cloneable 인터페이스를 구현해야 합니다. class Point implements Cloneable { // 복사할 수 있는 Point 클래스 생성 private int xPos; // 변수 xpos; 선언 private int yPos; // 변수 ypos; 선언 이렇게 클론 메소드의 호출을 허용하려는 클래스에는 Clonable 인터페이스를 구현해야 합니다. protected native Object clone() th..

자바 기초 공부 일지 29. 자바 가상머신의 메모리 할당

운영체제 입장에서 자바 가상머신은 일반프로그램과 동일한 프로그램 중 하나이므로 자바 프로그램이 두 개 실행되면, 가상머신도 두 개가 실행 됩니다. 각 가상머신마다 운영체제가 메모리를 할당합니다. 자바는 해당 메모리를 효율적으로 관리하기 위해 영역을 나눕니다. - 메소드 영역 (Method Area) - 메소드의 바이트코드, static 변수 - 스택 영역 (Stack Area) - 지역변수, 매개변수 - 힙 영역 (Heap Area) - 인스턴스 - 코드 영역(Code Area) - 실행할 프로그램의 코드가 저장되는 영역, 텍스트 영역 각 영역을 자세하게 살펴볼게요. ● 메소드 영역 class Boy { static int average = 0; public void Run() {....} } class..

자바 기초 공부 일지 28. 예외의 처리 try~catch 구문

파이썬에서 exception 처럼, 자바에서 예외의 상황을 차리 하기 위한 클래스가 있습니다. https://blue-dot.tistory.com/28 파이썬 공부 요약 노트 4. 예외, 오류 ● 오류의 종류 - 구문 오류 : 문법이 잘못 되어서 실행할 수 없는 문제 -> 코드를 다시 써야 해결 된다. - 실행 예외 : 문법은 맞지만 논리가 잘못 되어서 실행할 수 없는 문제 -> 예외. 앞뒤로 코드 blue-dot.tistory.com 우선 자바에서 예외를 알리기 위한 클래스가 다음과 같습니다. java.lang.ArithmeticException 수학 연산에서의 오류 상황을 의미하는 예외 클래스 java.util.InputMismatchException 클래스 Scanner를 통한 값의 입력에서의 오류..

자바 기초 공부 일지 27. 추상 클래스

추상 클래스란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드입니다. 추상 클래스 만들 때의 조건은 하나 이상의 추상 메소드를 포함시키는 것입니다. 즉, 추상 메소드를 하나 이상 포함하는 클래스가 추상클래스입니다. abstract class Tree{ abstract void makeFruit(); } - 추상 클래스 : 추상 메소드를 하나 이상 포함하는 클래스, 클래스의 앞에도 abstract 를 작성해주어야 합니다. - 추상 메소드 : 몸통이 없고, 앞에는 abstract가 붙는 메소드 입니다. 추상 클래스도 참조 변수를 만들지만, 인스턴스 생성은 불가합니다. 추상 클래스는 일반 메소드도 자유롭게 추가할 수 있습니다. 인터페이스 변수는 정적인 상수이나, 추상 클래스 변수는 그냥 변수입니..

반응형